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)

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

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

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

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