Conversione da analogico a digitale (lettura seriale analogica) - Nozioni di base su Arduino

Prova Il Nostro Strumento Per Eliminare I Problemi





In queste nozioni di base su Arduino cerchiamo di comprendere la procedura di implementazione del codice in cui un segnale analogico esterno viene inviato all'ingresso analogico di Arduino e tradotto o convertito in una lettura digitale proporzionata. Qui utilizziamo una resistenza variabile nella forma di un vaso come sorgente del segnale analogico.

Seriale di lettura analogica

In questo esempio apprendiamo il metodo di lettura di un ingresso analogico da un dispositivo esterno come un potenziometro, che è un dispositivo elettromeccanico progettato per implementare una resistenza variabile in un circuito attraverso il funzionamento manuale.



Un Arduino può essere utilizzato per misurare l'ampiezza della tensione che esce da un potenziometro al fine di leggere e identificare la sua resistenza corrispondentemente variabile. Questo può essere fatto inserendo la tensione nella porta di ingresso analogico di Arduino come valore analogico.

Qui vedremo come viene applicato quanto sopra dopo aver stabilito la comunicazione seriale tra Arduino e il computer collegato.



Hardware richiesto

Scheda Arduino

Potenziometro da 10 kilohm

Funzionamento del circuito

Come illustrato nello schema sopra, collega i tre fili che escono dalla pentola alle porte Arduino.

Il filo da uno dei conduttori esterni della pentola è assegnato con il terreno o la linea negativa della scheda.

L'altro cavo dell'estremità esterna dell'estremità libera viene collegato al + 5V della scheda.

Ciò che rimane è il cavo centrale del piatto, che viene terminato con l'ingresso analogico della scheda Arduino.

Quando l'albero della pentola viene ruotato, la resistenza attraverso il cavo centrale e il terminale esterno si sposta da superiore a inferiore e viceversa a seconda del lato a cui si avvicina il braccio del cursore.

Ad esempio, quando il braccio del cursore viene ruotato verso la derivazione + 5V, la derivazione centrale si avvicina a 5V e tende ad acquisire l'intero valore quando tocca la derivazione 5V assegnata. Allo stesso modo, quando l'albero del cursore viene spostato verso il conduttore di terra del vaso, il conduttore centrale tende a raggiungere un potenziale zero.

La tensione di alimentazione che varia linearmente sopra sul conduttore centrale del potenziometro viene letta dall'ingresso analogico di arduino per interpretarla in una corrispondente resistenza variabile del potenziometro.

L'Arduino racchiude un circuito convertitore analogico-digitale interno che interpreta efficacemente il movimento del vaso sopra e lo converte in numeri compresi tra 0 e 1023.

Una posizione particolare sull'albero del potenziometro fa sì che Arduino traduca un numero proporzionale compreso tra 0 e 1023 e per i valori finali di 5V e zero volt le interpretazioni sono ovviamente 0 e 1023.

Nel programma indicato la funzione di configurazione deve essere attivata esclusivamente per l'avvio delle comunicazioni seriali, la velocità è di 9600 bit di dati al secondo, sulla scheda Arduino e sul computer.

Il comando previsto è nella forma:

Serial.begin (9600)

Successivamente, nel loop principale del tuo codice, applichiamo una variabile per fissare il valore di resistenza (che sarebbe come discusso tra 0 e 1023, adatto solo per un tipo di dati int) ricevuto dai pot lead:

int sensorValue = analogRead (A0)

Per concludere, stampa queste informazioni sulla tua finestra seriale come valore decimale (DEC). È possibile utilizzare il comando Serial.println () per implementarlo nell'ultima riga di codice:

Serial.println (sensorValue, DEC)

Dopodiché, ogni volta che Serial Monitor viene avviato nel dominio di sviluppo di Arduino (questo viene fatto facendo clic sul pulsante che si trova immediatamente a destra del pulsante 'Carica' ​​nell'intestazione del programma).

vedremmo una catena consistente di cifre che vanno da 0-1023, corrispondenti alla posizione di rotazione variabile dell'albero del vaso.

Se interrompiamo la rotazione dell'asta della pentola in un istante, il numero istantaneo corrispondente verrà visualizzato sullo schermo di Arduino, questo cambierebbe di nuovo proporzionalmente mentre continuiamo a cambiare la posizione dell'asta della pentola.

Il codice

/ *
AnalogReadSerial
Legge un ingresso analogico sul pin 0, stampa il risultato sul monitor seriale.
Collegare il pin centrale di un potenziometro al pin A0 e i pin esterni a + 5V e massa.

Questo codice di esempio è di pubblico dominio.
* /

// la routine di installazione viene eseguita una volta quando si preme reset:
void setup () {
// inizializza la comunicazione seriale a 9600 bit al secondo:
Serial.begin (9600)
}

// la routine loop viene eseguita più e più volte per sempre:
void loop () {
// legge l'ingresso sul pin analogico 0:
int sensorValue = analogRead (A0)
// stampa il valore che leggi:
Serial.println (sensorValue)
delay (1) // ritardo tra le letture per la stabilità
}




Precedente: Monitoraggio dello stato di uno switch (lettura seriale digitale) - Nozioni di base su Arduino Avanti: Circuito regolatore di tensione regolabile da 1,25 V a 120 V.