Capteur de pression différentiel SDP6xx
[latexpage]
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)
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