Photorésistance

Connexion avec un diviseur de tension

La photorésistance nécessite un circuit de diviseur de tension pour être connectée à l'Arduino. Connecter le OUT à une entrée analogique de l'Arduino.

Idendification (à gauche) et schéma (à droite) du circuit du diviseur de tension (le 5V et le GND peuvent être échangés et la photorésistance n'a pas de sens)
Idendification (à gauche) et schéma (à droite) du circuit du diviseur de tension (le 5V et le GND peuvent être échangés et la photorésistance n'a pas de sens)

Information complémentaire sur les diviseurs de tension

Micro-soudure de la photorésistance

Étapes pour effectuer la micro-soudure de deux câbles à une photorésistance
Étapes pour effectuer la micro-soudure de deux câbles à une photorésistance

Effectuer la lecture d'une entrée analogique

Pour effectuer la mesure analogique de la tension électrique présente à une broche, on utilison la paire de fonctions suivantes :

  1. Configurer la broche maBrocheAnalogique en mode entrée avec INPUT :
pinMode( maBrocheAnalogique , INPUT );
  1. Effectuer la lecture de la broche maBrocheAnalogique avec analogRead() :
int maLectureAnalogique = analogRead( maBrocheAnalogique );

La fonction analogRead() mesure une tension entre 0V et 5V et retourne une valeur entre 0 et 1023 (4095 dans le cas de l'ESP32) proportionnelle.

Broches pouvant effectuer une entrée analogique

Broches pouvant effectuer une lecture analogique
Broches pouvant effectuer une lecture analogique

Debogage d'une entrée analogique

Dans le code suivant, nous déboguons l'entrée analogique 1 :

int maBrocheEntreeAnalogique = 1; int maValeurPrecedente; // VALEUR PRÉCÉDENTE DE L'ENTRÉE ANALOGIQUE unsigned long monChronoDepart = 0; // DEPART DE MON CHRONOMÈTRE void setup() { // AU DÉMARRAGE Serial.begin(115200); // CONFIGURER LA COMMUNICATION SÉRIE pinMode( maBrocheEntreeAnalogique , INPUT); // CONFIGURER LA BROCHE DE L'ENTRÉE ANALOGIQUE EN ENTRÉE } void loop() { // RÉPÉTER LE PLUS VITE POSSIBLE unsigned long monChronoEcoule = millis() - monChronoDepart; // TEMPS ÉCOULÉ DE MON CHRONOMÈTRE unsigned long monChronoIntervalle = 20; // INTERVALLE DE TEMPS EN MILLISECONDES if ( monChronoEcoule >= monChronoIntervalle ) { // SI 20 MS SE SONT ECOULEES... monChronoDepart = millis(); // ...REDÉMARRER LE CHRONOMÈTRE... int maNouvelleValeur = analogRead( maBrocheEntreeAnalogique ); // LECTURE DE TENSION if ( maNouvelleValeur != maValeurPrecedente ) { // SI LA NOUVELLE VALEUR EST DIFFERENTE DE LA PRÉCÉDENTE Serial.print( "Valeur analogique : " ); // ENVOYER UNE EN-TÊTE DE MESSAGE Serial.print( maNouvelleValeur ); // ENVOYER LA VALEUR Serial.println(); // TERMINER LE MESSAGE } maValeurPrecedente = maNouvelleValeur; // METTRE EN MÉMOIRE LA NOUVELLE VALEUR } }

Résultat du débogage analogique dans le moniteur série
Résultat du débogage analogique dans le moniteur série

Corrélation de la luminosité d'une DEL en de la lumière ambiante