Outils pour utilisateurs

Outils du site


arduino:photoresistance

Contrôler un éclairage avec une photorésistance : les entrées analogiques


Objectif

Nous allons allumer ou éteindre une LED en fonction de la lumière reçue par une photorésistance.



La photorésistance

Une photorésistance est un composant dont la valeur de la résistance change en fonction de l'intensité de la lumière qu'elle reçoit.
Plus une photorésistance est éclairée, plus la valeur de sa résistance diminue et inversement.

Le montage

La photorésistance doit être connectée à une entrée analogique (A0) et nécessite un diviseur de tension réalisé avec une résistance de 1 KΩ (marron / noir / rouge).

Une tension de 5V est introduite dans le circuit depuis l'Arduino. On relie le point entre les deux résistances à une broche analogique de l'Arduino et on mesure la tension par la fonction analogRead(A0). Tout changement de la tension mesurée est dû à la photorésistance puisque c’est la seule qui change dans ce circuit, en fonction de la lumière.

Les entrées analogiques

De nombreux capteurs fournissent un signal analogique (photorésistance, capteur de température…)

Un signal analogique est un signal pouvant prendre une infinité de valeurs contrairement à un signal numérique qui ne peut prendre que deux états binaires : haut (HIGH) ou bas (LOW).



La carte Arduino Uno possède 6 entrées analogiques, A0, A1, .. , A5.

Une entrée analogique se comporte comme un voltmètre. La carte mesure la tension entre le fil qui est connecté sur l’entrée analogique et la masse (broche GND).

Cette tension mesurée est une grandeur analogique, elle doit être convertie en grandeur numérique pour pouvoir être exploitée par la carte Arduino.

Les cartes Arduino contiennent un convertisseur analogique-numérique (CAN) 10 bits. Il permet de convertir le signal analogique en un signal numérique.

Pour en savoir plus sur la conversion analogique / numérique : http://culturesciencesphysique.ens-lyon.fr/ressource/principe-numerisation.xml

Le convertisseur analogique / numérique 10 bit d'un Arduino convertira les tensions d'entrée comprises entre 0 et la tension de fonctionnement (5V ou 3,3V) en valeurs entières comprises entre 0 et 1023, soit (210 - 1 = 1023).

Exemple :

Sur un Arduino UNO, nous aurons une résolution de 5 volts / 1024 = 0,0049 volts par unité. (voir tableau ci-contre)

Pour connaître la tension mesurée sur l'entrée analogique connaissant la valeur retournée par le CAN, il faut utiliser la relation suivante :

tension = valeur retournée par le CAN x 5/1023


Pour une tension de… Résultats du CAN
0 V 0
0,0049 V 1
0,0098 V 2
5 V 1023



Pour lire une entrée analogique, il faut utiliser la fonction analogRead().

La fonction analogRead()

Cette fonction permet de lire le résultat de la conversion analogique numérique de la tension présente sur l’entrée analogique sélectionnée.
La donnée retournée étant comprise entre 0 et 1023, elle doit être de type int.

 int valeur = analogRead(A0);  // la variable valeur contient le résultat de la conversion analogique / numérique de l’entrée A0

Pour mieux comprendre le fonctionnement d'une photorésistance et de la fonction analogRead(), nous allons afficher dans le moniteur série les valeurs lue sur la broche analogique A0.

void setup() {
    Serial.begin(9600);  // Initialise la communication avec l'ordinateur
}
 
void loop() { 
  int valeur = analogRead(A0);  // Mesure la tension sur la broche A0
  Serial.println(valeur);  // Affiche la mesure sur l'ordinateur
  delay(250);
}

La fonction analogRead(A0) a bien renvoyé via le convertisseur analogique / numérique des valeurs dépendantes de la luminosité :

  • plus la luminosité est forte, plus la valeur est proche de 1023, valeur maximale ;
  • plus la luminosité est faible, plus elle est proche de zéro.


A faire vous-même 1

Compléter le montage et le code afin de répondre à l'objectif de départ, c'est à dire allumer une DEL en l'absence (ou en faible lumière) et l'éteindre dans le cas contraire.

Attention, il faudra définir une valeur seuil à partir de laquelle la lampe doit s'allumer ou s'éteindre.


arduino/photoresistance.txt · Dernière modification: 13/08/2019 09:07 par Stéphane LAURENT