Capteur de pression différentiel SDP6xx

Matériel testé : Sensirion SDP610 500Pa
Bibliothèque nécessaire : SDP6xx
Ce composant permet de mesurer une différence de pression. Ses principaux atouts sont :
- Grande sensibilité : ±25 Pa, ±125 Pa ou ±500 Pa selon les modèles
- Communication I2C
Attention !! Ce capteur doit être alimenté en 3,3V !! Il faut impérativement employer les résistances Pull Up de 4,7k Ω préconisées dans l’exemple de câblage ci-dessous. (voir I2C bi-directional level shifter pour en savoir plus)
Tube de pitot
Anémomètre
C’est un capteur idéal pour réaliser un capteur de vitesse, ou un anémomètre, par tube de pitot !
$v^2=\frac{2\left(p_t-p_s\right)}{\rho}$
Câblage
Remarque : sur Arduino UNO, SDA = A4 et SCL = A5.
Programmation
L’exemple fourni dans la bibliothèque est suffisant pour obtenir des valeurs « brutes ».
Pour obtenir une valeur de pression, un facteur d’échelle est à appliquer :
| modèle | facteur d’échelle |
| 500 Pa | 60 |
| 125 Pa | 240 |
| 25 Pa | 1200 |
Mesure d’une vitesse (avec tube de pitot)
Le code suivant utilise la bibliothèque de lissage de signal RunningAverage.
#include <Wire.h>
#include <SDP6xx.h>
#include <RunningAverage.h>
RunningAverage MoyGliss(20); // objet "Moyenne Glissante" avec nombre d'échantillons pour le calcul
float moyenne = 0; // la moyenne glissante des échantillons
void setup() {
Wire.begin();
Serial.begin(115200);
MoyGliss.clear();
}
void loop() {
MoyGliss.addValue((float)SDP6xx.readPA());
moyenne = MoyGliss.getAverage();
moyenne = moyenne/60; // Convertion en Pa (modèle 500 Pa)
moyenne = sqrt(2*moyenne/1.293); // Conversion en m/s
Serial.println(moyenne);
delay(10);
}
Réalisation
Anémomètre portable de précision


