The MPX5100 series piezoresistive transducer is a state-of-the-art monolithic silicon pressure sensor designed for a wide range of applications, but particularly it is convenient to interface to microcontroller or microprocessor with A/D inputs. This is thin-film metallization, and bipolar processing to provide an accurate, high level analog output signal that is proportional to the applied pressure. More details can be found here MPXV5100
This sensor measures differential pressure comparing to atmospheric so when there is no pressure applied it shows 0kPa;
I was converting ADC value to pressure using this formula:
Pressure((((adc+0.3)/255)-0.04)/0.009); I didn’t make too much testing to tune it, I just calibrated it to zero by adding to ADC 0.3 value.
Here I will make example interfacing it to atmega8. Code is written in C using WINAVR toolkit and AVRLIB library. As you will see coding with AVLIB is very simple, just few lines, but compiled code is not very effective and takes lots of memory.
And here what results did I get:
Testing my lungs by blowing air to the straw. You can see 10 kPa.
Here I added archived demo WINAVR project. You can download and test it by your own.
Have fun.MPXV5100 pressure sensor to Atmega8