Entrée analogique

Broches pouvant effectuer une lecture analogique
Broches pouvant effectuer une lecture 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 avec une résolution de 1024 seuils. La valeur retournée par analogRead() est toujours entre 0 et 1023.

Debogage d'une entrée analogique

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

int maBrocheEntreeAnalogique = A1; 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