Arduino - Lettura della tensione analogica

Questo esempio ti mostrerà come leggere un ingresso analogico sul pin analogico 0. L'ingresso viene convertito da analogRead () in tensione e stampato sul monitor seriale del software Arduino (IDE).

Componenti richiesti

Avrai bisogno dei seguenti componenti:

  • 1 × Breadboard
  • 1 × Arduino Uno R3
  • 1 × 5 K variabile resistore (potenziometro)
  • 2 × Ponticello

Procedura

Seguire lo schema del circuito e collegare i componenti sulla breadboard come mostrato nell'immagine sotto.

Potenziometro

Un potenziometro (o potenziometro) è un semplice trasduttore elettromeccanico. Converte il movimento rotatorio o lineare dall'operatore di input in un cambiamento di resistenza. Questa modifica è (o può essere) utilizzata per controllare qualsiasi cosa, dal volume di un sistema hi-fi alla direzione di un'enorme nave portacontainer.

Il vaso come lo conosciamo era originariamente noto come reostato (essenzialmente un resistore a filo avvolto variabile). La varietà di pentole disponibili è ora piuttosto sorprendente e può essere molto difficile per il principiante (in particolare) capire quale tipo è adatto per un determinato compito. Alcuni tipi di pentola diversi, che possono essere utilizzati per lo stesso compito, rendono il lavoro più difficile.

L'immagine a sinistra mostra il simbolo schematico standard di una pentola. L'immagine a destra è il potenziometro.

Schizzo

Apri il software IDE Arduino sul tuo computer. La codifica nella lingua Arduino controllerà il tuo circuito. Aprire un nuovo file di schizzo facendo clic su Nuovo.

Codice 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);
}

Codice da notare

Nel programma o nello schizzo fornito di seguito, la prima cosa da fare nella funzione di configurazione è avviare le comunicazioni seriali, a 9600 bit al secondo, tra la scheda e il computer con la linea -

Serial.begin(9600);

Nel ciclo principale del tuo codice, devi stabilire una variabile per memorizzare il valore di resistenza (che sarà compreso tra 0 e 1023, perfetto per un tipo di dati int) proveniente dal tuo potenziometro -

int sensorValue = analogRead(A0);

Per modificare i valori da 0-1023 a un intervallo che corrisponde alla tensione, il pin sta leggendo, è necessario creare un'altra variabile, un float, e fare un piccolo calcolo. Per scalare i numeri tra 0,0 e 5,0, dividere 5,0 per 1023,0 e moltiplicarlo per sensorValue -

float voltage= sensorValue * (5.0 / 1023.0);

Infine, è necessario stampare queste informazioni sulla finestra seriale. Puoi farlo con il comando Serial.println () nell'ultima riga di codice -

Serial.println(voltage)

Ora apri Serial Monitor nell'IDE di Arduino facendo clic sull'icona a destra della barra verde in alto o premendo Ctrl + Maiusc + M.

Risultato

Vedrai un flusso costante di numeri che vanno da 0,0 a 5,0. Ruotando il potenziometro, i valori cambieranno, corrispondenti alla tensione sul pin A0.