Arduino - Lecture de la tension analogique

Cet exemple vous montrera comment lire une entrée analogique sur la broche analogique 0. L'entrée est convertie de analogRead () en tension, et imprimée sur le moniteur série du logiciel Arduino (IDE).

Composants requis

Vous aurez besoin des composants suivants -

  • 1 × planche à pain
  • 1 × Arduino Uno R3
  • Résistance variable 1 × 5K (potentiomètre)
  • 2 × cavalier

Procédure

Suivez le schéma de circuit et connectez les composants sur la carte d'expérimentation comme indiqué dans l'image ci-dessous.

Potentiomètre

Un potentiomètre (ou pot) est un simple transducteur électromécanique. Il convertit le mouvement rotatif ou linéaire de l'opérateur d'entrée en un changement de résistance. Ce changement est (ou peut être) utilisé pour contrôler n'importe quoi, du volume d'un système hi-fi à la direction d'un énorme porte-conteneurs.

Le pot tel que nous le connaissons était à l'origine connu sous le nom de rhéostat (essentiellement une résistance bobinée variable). La variété des pots disponibles est maintenant assez étonnante, et il peut être très difficile pour le débutant (en particulier) de déterminer quel type convient à une tâche donnée. Quelques types de pots différents, qui peuvent tous être utilisés pour la même tâche, rendent le travail plus difficile.

L'image de gauche montre le symbole schématique standard d'un pot. L'image de droite est le potentiomètre.

Esquisser

Ouvrez le logiciel Arduino IDE sur votre ordinateur. Le codage en langage Arduino contrôlera votre circuit. Ouvrez un nouveau fichier d'esquisse en cliquant sur Nouveau.

Code Arduino

/*
   ReadAnalogVoltage
   Reads an analog input on pin 0, converts it to voltage, 
   and prints the result to the serial monitor.
   Graphical representation is available using serial plotter (Tools > Serial Plotter menu)
   Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.
*/

// the setup routine runs once when you press reset:

void setup() {
   // initialize serial communication at 9600 bits per second:
   Serial.begin(9600);
}

// the loop routine runs over and over again forever:

void loop() {
   // read the input on analog pin 0:
   int sensorValue = analogRead(A0);
   // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
   float voltage = sensorValue * (5.0 / 1023.0);
   // print out the value you read:
   Serial.println(voltage);
}

Code à noter

Dans le programme ou l'esquisse ci-dessous, la première chose que vous faites dans la fonction de configuration est de commencer les communications série, à 9600 bits par seconde, entre votre carte et votre ordinateur avec la ligne -

Serial.begin(9600);

Dans la boucle principale de votre code, vous devez établir une variable pour stocker la valeur de résistance (qui sera entre 0 et 1023, parfait pour un type de données int) provenant de votre potentiomètre -

int sensorValue = analogRead(A0);

Pour changer les valeurs de 0-1023 à une plage qui correspond à la tension, la broche lit, vous devez créer une autre variable, un flottant, et faire un petit calcul. Pour mettre à l'échelle les nombres entre 0,0 et 5,0, divisez 5,0 par 1023,0 et multipliez cela par sensorValue -

float voltage= sensorValue * (5.0 / 1023.0);

Enfin, vous devez imprimer ces informations dans votre fenêtre série. Vous pouvez le faire avec la commande Serial.println () dans votre dernière ligne de code -

Serial.println(voltage)

Maintenant, ouvrez Serial Monitor dans l'IDE Arduino en cliquant sur l'icône sur le côté droit de la barre verte supérieure ou en appuyant sur Ctrl + Maj + M.

Résultat

Vous verrez un flux constant de nombres allant de 0,0 à 5,0. Lorsque vous tournez le potentiomètre, les valeurs changent, correspondant à la tension à la broche A0.