In questo tutorial stiamo introducendo il concetto di ADC (Analog to Digital Conversion) in ARDUINO UNO. La scheda Arduino ha sei canali ADC, come mostrato nella figura seguente. Tra questi uno o tutti possono essere utilizzati come ingressi per la tensione analogica. L' ADC Arduino Uno ha una risoluzione di 10 bit (quindi i valori interi da (0- (2 ^ 10) 1023)). Ciò significa che mapperà le tensioni di ingresso tra 0 e 5 volt in valori interi compresi tra 0 e 1023. Quindi per ogni (5/1024 = 4,9 mV) per unità.
In tutto questo collegheremo un potenziometro o potenziometro al canale "A0" e mostreremo il risultato dell'ADC su un semplice display. I display semplici sono unità di visualizzazione 16x1 e 16x2. Il display 16x1 avrà 16 caratteri e sarà su una riga. 16x2 avrà 32 caratteri in totale 16in 1 ° linea e un altro 16 a 2 ° linea. Qui si deve capire che in ogni carattere ci sono 5x10 = 50 pixel quindi per visualizzare un carattere tutti i 50 pixel devono lavorare insieme, ma non dobbiamo preoccuparci perché c'è un altro controller (HD44780) nell'unità di visualizzazione che fa il lavoro di controllo dei pixel (puoi vederlo nell'unità LCD, è l'occhio nero sul retro).
Componenti richiesti
Hardware: ARDUINO UNO, alimentatore (5v), JHD_162ALCD (16x2LCD), condensatore 100uF, potenziometro o potenziometro 100KΩ, condensatore 100nF.
Software: IDE arduino (Arduino notturno)
Schema del circuito e spiegazione
In 16x2 LCD ci sono 16 pin in tutto se c'è una retroilluminazione, se non c'è retroilluminazione ci saranno 14 pin. Si può alimentare o lasciare i perni della retroilluminazione. Ora nei 14 pin ci sono 8 pin dati (7-14 o D0-D7), 2 pin di alimentazione (1 & 2 o VSS & VDD o GND & + 5v), 3 ° pin per il controllo del contrasto (VEE-controlla lo spessore dei caratteri mostrato) e 3 pin di controllo (RS & RW & E).
Nel circuito, puoi osservare che ho preso solo due pin di controllo, il bit di contrasto e READ / WRITE non vengono usati spesso, quindi possono essere cortocircuitati a massa. Questo mette l'LCD nel più alto contrasto e modalità di lettura. Abbiamo solo bisogno di controllare i pin ENABLE e RS per inviare caratteri e dati di conseguenza.
Di seguito sono riportati i collegamenti effettuati per l'LCD:
PIN1 o VSS a terra
Alimentazione da PIN2 o VDD o VCC a + 5v
PIN3 o VEE a massa (offre il massimo contrasto migliore per un principiante)
PIN4 o RS (Register Selection) al PIN8 di ARDUINO UNO
PIN5 o RW (lettura / scrittura) a massa (mette l'LCD in modalità di lettura facilita la comunicazione per l'utente)
PIN6 o E (Enable) al PIN9 di ARDUINO UNO
PIN11 o D4 al PIN10 di ARDUINO UNO
PIN12 o D5 al PIN11 di ARDUINO UNO
PIN13 o D6 al PIN12 di ARDUINO UNO
PIN14 o D7 al PIN13 di ARDUINO UNO
L'IDE ARDUINO consente all'utente di utilizzare LCD in modalità 4 bit. Questo tipo di comunicazione consente all'utente di diminuire l'utilizzo dei pin su ARDUINO, a differenza di altri l'ARDUINO non necessita di essere programmato separatamente per usarlo in modalità 4 it perché di default ARDUINO è predisposto per comunicare in modalità 4 bit. Nel circuito puoi vedere che abbiamo usato la comunicazione a 4 bit (D4-D7).
Quindi dalla semplice osservazione dalla tabella sopra stiamo collegando 6 pin dell'LCD al controller in cui 4 pin sono pin dati e 2 pin per il controllo.
La figura sopra mostra il diagramma del circuito dell'ADC di ARDUINO UNO.
Lavorando
Per interfacciare un LCD all'ARDUINO UNO, abbiamo bisogno di sapere alcune cose.
|
Prima di tutto i canali UNO ADC hanno un valore di riferimento predefinito di 5V. Ciò significa che possiamo fornire una tensione di ingresso massima di 5 V per la conversione ADC su qualsiasi canale di ingresso. Poiché alcuni sensori forniscono tensioni da 0-2,5 V, con un riferimento di 5 V otteniamo una minore precisione, quindi abbiamo un'istruzione che ci consente di modificare questo valore di riferimento. Quindi per cambiare il valore di riferimento abbiamo ("analogReference ();")
Come impostazione predefinita, otteniamo la massima risoluzione dell'ADC della scheda che è 10 bit, questa risoluzione può essere modificata utilizzando l'istruzione ("analogReadResolution (bits);"). Questa modifica alla risoluzione può tornare utile in alcuni casi.
Ora, se le condizioni di cui sopra sono impostate come predefinite, possiamo leggere il valore dall'ADC del canale '0' chiamando direttamente la funzione "analogRead (pin);", qui "pin" rappresenta il pin a cui abbiamo collegato il segnale analogico, in questo caso sarebbe essere "A0". Il valore di ADC può essere preso in un numero intero come "int ADCVALUE = analogRead (A0); ", Con questa istruzione il valore dopo che ADC viene memorizzato nell'intero" ADCVALUE ".
ORA parliamo un po 'di LCD 16x2. Per prima cosa dobbiamo abilitare il file di intestazione ('#include
Secondo, dobbiamo dire alla scheda quale tipo di LCD stiamo usando qui. Dal momento che abbiamo così tanti diversi tipi di LCD (come 20x4, 16x2, 16x1 ecc.). Qui andremo a interfacciare un LCD 16x2 a UNO in modo da ottenere 'lcd.begin (16, 2);'. Per 16x1 otteniamo 'lcd.begin (16, 1);'.
In questa istruzione diremo alla scheda dove abbiamo collegato i pin. I pin che sono collegati devono essere rappresentati in ordine come “RS, En, D4, D5, D6, D7”. Questi pin devono essere rappresentati correttamente. Poiché abbiamo collegato RS al PIN0 e così via come mostrato nello schema del circuito, rappresentiamo il numero di pin da bordo come "LiquidCrystal lcd (0, 1, 8, 9, 10, 11);".
Dopodiché non resta che inviare i dati, i dati che devono essere visualizzati nell'LCD dovrebbero essere scritti come "cd.print (" ciao mondo! ");". Con questo comando il display LCD visualizza "ciao mondo!".
Come puoi vedere non dobbiamo preoccuparci di nient'altro, dobbiamo solo inizializzare e UNO sarà pronto per visualizzare i dati. Non è necessario scrivere un ciclo di programma per inviare i dati BYTE da BYTE qui.
L'uso dell'ADC di Arduino Uno è spiegato passo dopo passo nel programma C fornito di seguito.