Accueil > ARDUINO > Capteurs > Capteur pluie "raindrops module"
mercredi 16 décembre 2015, par
Ce capteur possède 2 sorties :
une sortie logique D0 qui permet une détection en tout ou rien (une vis permet de régler le seuil de détection). Cette sortie est à 1 lorsque la plaque de détection est sèche, et à 0 lorsque elle est mouillée,
une sortie analogique A0, qui varie de 0V (plaque complètement mouillée) à 5V (plaque sèche).
alimenter le capteur depuis la carte Arduino en 0v (broche gnd du capteur) et 5V (broche Vcc du capteur),
la sortie du capteur (D0 pour le premier programme puis A0 pour le second) sera reliée à l’entrée analogique A0 de la carte Arduino.
Lecture en toute ou rien
Dans un premier temps, on va utiliser la sortie logique D0.
Le programme suivant commande la led L (sortie 13) lorsque la plaque est humide.
Comme la sortie est active sur niveau bas ( sortie à 0 lorsque la plaque est humide) on va tester un niveau 0 sur l’entrée A0 de la carte Arduino.
int sortie=13; int capteur=A0; int detection; void setup() { pinMode(sortie,OUTPUT); // broche "sortie" (13) en SORTIE pinMode(capteur,INPUT); // broche "capteur" (A0) en ENTREE } void loop() { detection=digitalRead(capteur); // on lit la broche capteur // la sortie OUT du capteur est active sur niveau bas while (detection==0) { // objet détecté = niveau 0 sur OUT capteur detection=digitalRead(capteur); digitalWrite(sortie,1); // on commande la sortie 13 (diode L sur la carte) } digitalWrite(sortie,0); // on éteint L dès qu'il n'y a plus detection }
Lecture analogique du capteur.
On va maintenant utiliser la sortie analogique A0 du capteur et utiliser la broche A0 de la carte Arduino en lecture analogique. En effet, les entrées Ax de la carte Arduino sont équipées de Convertisseurs Analogiques Numériques (CAN en français ou ADC en anglais).
Pour lire la valeur sur l’entrée, on utilise "analogRead". La valeur obtenue "detection" est codée sur 10 bit (de 0 à 1023). À partir de cette valeur, on va commander la led L présente sur la carte avec une sortie PWM ("analogWrite"). Cependant, comme la sortie PWM est codée sur 8 bit ( de 0 à 255), on divise "détection" par 4.
On utilise la liaison série pour afficher la valeur de "detection" dans le moniteur série.
Mise en oeuvre :
téléverser le programme dans la carte arduino,
ouvrir le moniteur série ("outil -> moniteur série" ou loupe en haut à droite de l’interface),
humidifier plus ou moins la plaque de détection
int capteur=A0; int sortie=13; int detection; int cde_led; void setup() { pinMode(sortie,OUTPUT); // broche "sortie" (13) en SORTIE led L pinMode(capteur,INPUT); // broche "capteur" (A0) en ENTREE // initialisation de la liaison série à 9600 bits/seconde Serial.begin(9600); while (!Serial) { } // ne rien faire tant que la liaison série n'est pas établie (carte LEONARDO) } void loop() { detection=analogRead(capteur); // on lit la broche capteur "analogique" Serial.print("valeur capteur : "); Serial.println(detection); // afficher la valeur de detection sur la liison série cde_led=detection/4; // detection 10 bit (max 1023) -> cde_led 8 bit (max 255) analogWrite(sortie,cde_led); // on allume plus ou moins la LED L suivant cde_led delay(1000); // attendre 1s avant de refaire la mesure }