Description
Tutorial penggunaan MPX5010DP dengan Arduino
Konfigurasi kaki/ pinout dari sensor MPX5050DP (kaki nomor 1 ditunjukkan dengan coak) :
Output signal : 0.2V to 4.7V (analog output),
Measuring range : 0kPa to 50kPa Gage Automotive 6-Pin
Temperature working range = -40C ~ 125C
Contoh Pembacaan Sensor MPX5050DP dengan Arduino, untuk mengukur ketinggian air/ volume dalam suatu tangki :
Rangkaian dengan Arduino :
Script Code Versi 1 :
// Catatan : nilai berikut ini perlu dirubah untuk mengkalibrasi/ menggunakan tipe sensor dengan kemampuan baca yang berbeda.
// 50kPa = 5.10 mH20 (meter of water column) max water column depth (http://www.convert-measurement-units.com/conversion-calculator.php?type=pressure)
// If max v of 4.5v = 50kPa, then sensorValue of 921 (920.7) = 50kPa
int sensorPin = A0;
int sensorValue = 0, sensorMax = 1023, sensorOffset = 52;
float voltage = 0, kpa = 0, voltageMax = 5.0, kpaRangeTopVoltage = 4.5;
void setup() {
Serial.begin(9600);
}
void loop() {
sensorValue = analogRead(sensorPin) – sensorOffset; // Read sensor & adjust with offset
Serial.print(“sensorValue (offset “);
Serial.print(sensorOffset, DEC);
Serial.print(“): “);
Serial.println(sensorValue, DEC);
if (sensorValue == 0) {
kpa = 0;
voltage = 0;
} else {
voltage = sensorValue * (voltageMax / sensorMax);
kpa=((voltage/kpaRangeTopVoltage)-0.04)/0.018;
}
Serial.print(“voltage: “);
Serial.println(voltage, 3);
Serial.print(“kpa: “);
Serial.println(kpa, 1);
Serial.println(“”);
delay(1000);
}
Script Code Versi 2 :
// Pin 1 (notch) – Analog output
// Pin 2 – Gnd
// Pin 3 – 5V
int sensorPin = A0; // Select input pin for the potentiometer
// int sensorValue = 0; // Variable stores value coming from the sensor
double sensorValue = 0;
double voltage = 0;
double kpa = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
// sensorValue = analogRead(sensorPin); // Read sensor
sensorValue = (double) analogRead(sensorPin);
Serial.print(“sensorValue: “);
Serial.println(sensorValue, 1); // Display result
voltage = sensorValue * (5.0 / 1023.0);
Serial.print(“voltage: “);
Serial.println(voltage, 1); // Display result
kpa=((voltage/5.0)-0.04)/0.018;
Serial.print(“kpa: “);
Serial.println(kpa, 1); // Display result
Serial.println(“”);
delay(1000); // Wait 400 milliseconds
}
Script Code Versi 3 :
// NOTES
// 50kPa = 5.10 mH20 max water column depth (http://www.convert-measurement-units.com/conversion-calculator.php?type=pressure)
// If max v of 4.5v = 50kPa, then sensorValue of 921 (920.7) = 50kPa
int sensorPin = A0;
int sensorValue = 0, sensorMax = 1023, sensorOffset = 52;
float voltage = 0, kpa = 0, voltageMax = 5.0, kpaRangeTopVoltage = 4.5;
void setup() {
Serial.begin(9600);
}
void loop() {
sensorValue = analogRead(sensorPin) – sensorOffset; // Read sensor & adjust with offset
Serial.print(“sensorValue (offset “);
Serial.print(sensorOffset, DEC);
Serial.print(“): “);
Serial.println(sensorValue, DEC);
if (sensorValue == 0) {
kpa = 0;
voltage = 0;
} else {
voltage = sensorValue * (voltageMax / sensorMax);
kpa=((voltage/kpaRangeTopVoltage)-0.04)/0.018;
}
Serial.print(“voltage: “);
Serial.println(voltage, 3);
Serial.print(“kpa: “);
Serial.println(kpa, 1);
Serial.println(“”);
delay(1000);
}