Le capteur de pression MPX4250AP utilise l'entrée A0 et est alimenté entre GND et 5V.
Le moniteur série affiche la tension renvoyée par le capteur et la pression en hPa.
Sortie série
L’affichage de la sortie série peut se faire en utilisant le moniteur série de l’IDE arduino, accessible par CTRL+MAJ+M
Code à téléverser
/**
* mesure_pression.ino
* On utilise un capteur de pression MPX4250AP
* La datasheet donne : tension (V) = Vréf * ( 0.004 P (kPa) - 0.04 )
* Soit, avec Vréf = 5.0 V : P (hPa) = 500 × tension (V) + 100
* On affiche la tension renvoyée par le capteur et la pression.
*/
// 1. Déclarations des constantes et variables globales
// Capteur de pression
const byte PRESSURE_SENSOR_PIN = A0; // Capteur Pin1 A0, Pin2 GND et Pin3 5 V.
// La pression en hPa est P (hPa) = PENTE × tension (V) + OFFSET
const float PENTE = 500.0; // Coefficient directeur PENTE (hPa/V) – Fourni par la datasheet
const float OFFSET = 100.0; // Ordonnée à l'origine OFFSET (hPa) – Fourni par la datasheet
// 2. Setup − Exécuté une seule fois
void setup() {
Serial.begin(9600);
}
// 3. Loop − Boucle infinie
void loop() {
// Détermination de la pression
int pressureSensorRawValue = averageAnalogRead(PRESSURE_SENSOR_PIN, 30); // Moyenne de 30 valeurs entre 0 et 1023
float pressureSensorVoltage = pressureSensorRawValue * 5.0 / 1023.0; // Valeur de la tension en volts
float pressure = PENTE * pressureSensorVoltage + OFFSET; // Pression en hPa
// Affichage de la valeur
Serial.print(pressureSensorVoltage,2);
Serial.print('\t');
Serial.println(pressure,1);
// On attend une seconde
delay(1000);
}
// 4. Fonctions
/* Cette fonction effectue une moyenne sur les sampleCount valeurs
renvoyées par analogRead(pin) */
int averageAnalogRead(byte pin, byte sampleCount) {
long sum = 0;
for(byte i = 0; i < sampleCount; i++){
sum = sum + analogRead(pin);
}
return sum / sampleCount;
}