Nota
Ciao, benvenuto nella comunità di appassionati di SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Immergiti nel mondo affascinante di Raspberry Pi, Arduino e ESP32 insieme ad altri appassionati.
Perché unirti a noi?
Supporto esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra comunità e del nostro team.
Impara e condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime esclusive: Ottieni accesso anticipato a nuovi annunci di prodotti e contenuti esclusivi.
Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni festive e concorsi: Partecipa a concorsi e promozioni speciali durante le festività.
👉 Sei pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi!
1.5 Lettura Analogica (Analog Read)
Panoramica
Puoi utilizzare il comando analogRead() per leggere un ingresso analogico dal mondo fisico attraverso un pin analogico. Questo comando è adatto per elementi di ingresso analogico come potenziometri, fotoresistenze, sensori di livello dell’acqua, e così via. In questo articolo utilizzeremo un potenziometro come esempio per leggere il valore analogico della sua uscita.
Componenti Necessari
Circuito con Fritzing
In questo esempio, utilizziamo il pin analogico (A0) per leggere il valore del potenziometro. Collega i pin alle estremità del potenziometro a 5V e GND rispettivamente. Collega il pin centrale ad A0.
La tensione del pin centrale sarà inviata alla scheda Mega2560 come valore analogico. Ruotando l’asse del potenziometro, puoi modificare la tensione sul pin centrale e, di conseguenza, il valore analogico letto da A0.
Schema del Circuito
Codice
Nota
Puoi aprire direttamente il file
1.5_analogRead.inoche si trova nel percorsosunfounder_vincent_kit_for_arduino\code\1.5_analogRead.Oppure copia questo codice nell’Arduino IDE.
Dopo aver caricato il codice sulla scheda Mega2560, puoi aprire il monitor seriale per vedere il valore letto dal pin. Ruotando l’asse del potenziometro, il monitor seriale stamperà un valore che varia tra «0» e «1023».
Analisi del Codice
Per consentire all’Arduino IDE di stampare il valore trasmesso dal componente elettronico alla scheda Mega2560, devi avviare la comunicazione seriale in setup() e impostare la velocità di trasmissione a 9600.
Serial.begin(9600);
Utilizza il comando analogRead() in loop() per leggere lo stato di livello acquisito dal pin analogico A0 e dichiara una variabile per memorizzarlo.
int sensorValue = analogRead(A0);
Stampa il valore memorizzato nella variabile sul monitor seriale.
Serial.println(sensorValue);
Utilizza il comando delay() per rendere i risultati stampati più facili da osservare.
delay(1);
※ Convertitore Analogico-Digitale
L’Arduino dispone di un circuito interno chiamato convertitore analogico-digitale (ADC) che legge questa tensione variabile e la converte in un numero compreso tra 0 e 1023. Quando l’asse viene ruotato completamente in una direzione, ci sono 0 volt sul pin e il valore di ingresso è 0. Quando l’asse viene ruotato completamente nella direzione opposta, ci sono 5 volt sul pin e il valore di ingresso è 1023. Nei valori intermedi, analogRead() restituisce un numero compreso tra 0 e 1023 proporzionale alla quantità di tensione applicata al pin.
Immagine del Fenomeno