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.