Thanks for all the input so far, folks.
I have built breakout boards for 4 MPXV series differential pressure sensors, 2 ea. 7007 and 2 ea. 7002.
They work. By having each sensor on a separate board, I can plug them in as needed.
Currently, I have a 20 X 4 LCD, 2 Max6675's, 2 LEDS, a thermistor, SD breakout board, and one Freescale MPXV7007DP hooked to my ATMega2560, powered from the USB cable.
New question 1.
Pressure sensor Calibration:
I read this article over and over. This isn't the same sensor that I am using, but I thought there'd be a lot of similarity:
http://spiffie.org/electronics/archives ... nsors.htmlBut the resolution and calibration seems a lot more complex than what I SEEM to need. I didn't do any of the reference setting that is described in this article and couldn't find reference to it in the datasheets for the sensors I am using. What am I missing?
Have the products changed since about 2009? When I fire up my circuit, I get a "0" reading every time. I just "map" to get a 1/4"wc resolution and divide by two for an offset to get into the middle since these are differential pressure sensors. I just chose a "map" range that gets me the resolution I need, while giving me the full scale limits of the sensor.
New Question 2.
I am new to Arduino, so I am borrowing code from everywhere. Right now my "root" program is an assemblage of at least a half dozen others. One of those programs does some sort of reference voltage calculation and then prints the result to the SD card and to the serial monitor.
Here's the first part of it:
//Code to prepare reference voltage to read and log
#define BANDGAPREF 14 // special indicator that we want to measure the bandgap
#define aref_voltage 3.3 // we tie 3.3V to ARef and measure it with a multimeter!
#define bandgap_voltage 1.1 // this is not super guaranteed but its not -too- off
-----------------------------------
Here's the rest of it:
// Log the estimated 'VCC' voltage by measuring the internal 1.1v ref
analogRead(BANDGAPREF);
delay(10);
int refReading = analogRead(BANDGAPREF);
float supplyvoltage = (bandgap_voltage * 1024) / refReading;
logfile.print(", ");
logfile.print(supplyvoltage);
#if ECHO_TO_SERIAL
Serial.print(", ");
Serial.print(supplyvoltage);
#endif // ECHO_TO_SERIAL
logfile.println();
#if ECHO_TO_SERIAL
Serial.println();
----------------------------------------
The number it prints is in the range of 2.5 volts and seems to vary from about 2.48 to 2.6 over many hours.
I have noted, however, that, when I vary the pressure to a sensor, that voltage drops to as low as about 2.25 volts.
---Does this mean that the Freescale sensor is taking a lot of current to do its thing?
---And, more importantly is this affecting the accuracy of my readings? ---Maybe the linearity?
---Finally, is it time to plug the 9 volt wall wart into my ATMega2560? (I have avoided doing this cuss I don't want to blow anything up!)
Pete Stanaitis
----------------