Potentiomètre

Le potentiomètre

Connexion

Connectez le OUT du potentiomètre à une entrée analogique de l'Arduino.

Schéma du potentiomètre à gauche et identification des broches à droite (le 5V et le GND peuvent être échangés)

Microsoudure du potentiomètre

Un potentiomètre 100k

Poser des bulles de métal sur les trois pattes du potentiomètre

Effectuer la microsoudure de trois câbles aux pattes

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