Accueil > ARDUINO > Capteurs > Capteur pluie "raindrops module"

Capteur pluie "raindrops module"

mercredi 16 décembre 2015, par thebault

Présentation

JPEG - 39 ko

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).

Branchements

- 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.

JPEG - 80.9 ko

Programmes 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.

  1. int sortie=13;
  2. int capteur=A0;
  3. int detection;
  4.  
  5. void setup() {
  6. pinMode(sortie,OUTPUT); // broche "sortie" (13) en SORTIE
  7. pinMode(capteur,INPUT); // broche "capteur" (A0) en ENTREE
  8. }
  9.  
  10. void loop() {
  11. detection=digitalRead(capteur); // on lit la broche capteur
  12. // la sortie OUT du capteur est active sur niveau bas
  13. while (detection==0) { // objet détecté = niveau 0 sur OUT capteur
  14. detection=digitalRead(capteur);
  15. digitalWrite(sortie,1); // on commande la sortie 13 (diode L sur la carte)
  16. }
  17. digitalWrite(sortie,0); // on éteint L dès qu'il n'y a plus detection
  18. }

Télécharger


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

  1. int capteur=A0;
  2. int sortie=13;
  3. int detection;
  4. int cde_led;
  5.  
  6. void setup() {
  7. pinMode(sortie,OUTPUT); // broche "sortie" (13) en SORTIE led L
  8. pinMode(capteur,INPUT); // broche "capteur" (A0) en ENTREE
  9. // initialisation de la liaison série à 9600 bits/seconde
  10. Serial.begin(9600);
  11. while (!Serial) {
  12. } // ne rien faire tant que la liaison série n'est pas établie (carte LEONARDO)
  13. }
  14.  
  15. void loop() {
  16. detection=analogRead(capteur); // on lit la broche capteur "analogique"
  17. Serial.print("valeur capteur : ");
  18. Serial.println(detection); // afficher la valeur de detection sur la liison série
  19. cde_led=detection/4; // detection 10 bit (max 1023) -> cde_led 8 bit (max 255)
  20. analogWrite(sortie,cde_led); // on allume plus ou moins la LED L suivant cde_led
  21. delay(1000); // attendre 1s avant de refaire la mesure
  22. }

Télécharger

JPEG - 98.8 ko
SPIP | | Plan du site | Suivre la vie du site RSS 2.0
Habillage visuel © digitalnature sous Licence GPL