En aquest tutorial introduïm el concepte d’ADC (conversió analògica a digital) a ARDUINO UNO. La placa Arduino té sis canals ADC, com es mostra a la figura següent. Entre tots, qualsevol o tots es poden utilitzar com a entrades de tensió analògica. L' Arduino Uno ADC té una resolució de 10 bits (per tant, els valors enters de (0- (2 ^ 10) 1023)). Això significa que maparà les tensions d'entrada entre 0 i 5 volts en valors enters entre 0 i 1023. Així doncs, per a cada (5/1024 = 4,9 mV) per unitat.

En tot això, connectarem un potenciòmetre o pot al canal 'A0', i mostrarem el resultat ADC en una pantalla senzilla. Les pantalles senzilles són 16x1 i 16x2. La pantalla de 16x1 tindrà 16 caràcters i es troben en una línia. El 16x2 tindrà 32 caràcters en total en la primera línia i 16 en la segona línia. Aquí s’ha d’entendre que a cada caràcter hi ha 5x10 = 50 píxels, de manera que per mostrar un caràcter tots els 50 píxels han de treballar junts, però no ens hem de preocupar d’això perquè hi ha un altre controlador (HD44780) a la pantalla que fa tasca de controlar els píxels (es pot veure a la unitat LCD, és l'ull negre a la part posterior).
Components necessaris
Maquinari: ARDUINO UNO, font d'alimentació (5v), JHD_162ALCD (16x2LCD), condensador 100uF, pot o potenciómetre de 100KΩ, condensador 100nF.
Programari: arduino IDE (Arduino nocturn)
Diagrama del circuit i explicació
A la pantalla LCD de 16 x 2 hi ha 16 pins si hi ha llum de fons, si no hi ha llum de fons hi haurà 14 pins. Es pot alimentar o deixar els passadors de llum de fons. Ara als 14 pins hi ha 8 pins de dades (7-14 o D0-D7), 2 pins de font d'alimentació (1 i 2 o VSS i VDD o GND i + 5v), 3r pin per controlar el contrast (VEE controla el gruix dels caràcters mostrat), i 3 pins de control (RS & RW & E).
Al circuit, podeu observar que només he pres dos pins de control, el bit de contrast i LLEGIR / ESCRIURE no s’utilitzen sovint, de manera que es poden fer curtcircuits a terra. D’aquesta manera, la pantalla LCD té un contrast i un mode de lectura més alts. Només hem de controlar els pins ENABLE i RS per enviar caràcters i dades en conseqüència.
Les connexions que es fan per a LCD es donen a continuació:
PIN1 o VSS a terra
PIN2 o VDD o VCC a una potència de + 5v
PIN3 o VEE a terra (proporciona el màxim contrast possible per a principiants)
PIN4 o RS (Selecció de registre) al PIN8 de ARDUINO UNO
PIN5 o RW (lectura / escriptura) a terra (posa la pantalla LCD en mode lectura facilita la comunicació per a l'usuari)
PIN6 o E (Habilita) a PIN9 de ARDUINO UNO
PIN11 o D4 a PIN10 de ARDUINO UNO
PIN12 o D5 a PIN11 de ARDUINO UNO
PIN13 o D6 a PIN12 de ARDUINO UNO
PIN14 o D7 a PIN13 de ARDUINO UNO
L'IDE ARDUINO permet a l'usuari utilitzar LCD en mode de 4 bits. Aquest tipus de comunicació permet a l'usuari reduir l'ús de pins a ARDUINO, a diferència d'altres, ARDUINO no ha de ser programat per separat per utilitzar-lo en mode 4 it perquè, per defecte, ARDUINO està configurat per comunicar-se en mode de 4 bits. Al circuit podeu veure que hem utilitzat la comunicació de 4 bits (D4-D7).
Així doncs, a partir de la simple observació de la taula superior, connectem 6 pins de pantalla LCD al controlador en què 4 pins són pins de dades i 2 pins per al control.

La figura anterior mostra el diagrama c ircuit de ADC de ARDUINO UNO.
Treball
Per connectar una pantalla LCD a ARDUINO UNO, hem de saber algunes coses.
|
En primer lloc, els canals UNO ADC tenen un valor de referència per defecte de 5V. Això significa que podem donar un voltatge màxim d'entrada de 5V per a la conversió ADC en qualsevol canal d'entrada. Com que alguns sensors proporcionen tensions de 0-2,5 V, amb una referència de 5 V obtenim una precisió menor, de manera que tenim una instrucció que ens permet canviar aquest valor de referència. Per tant, per canviar el valor de referència que tenim (“analogReference ();”)
Per defecte obtenim la resolució ADC màxima de la placa que és de 10 bits, aquesta resolució es pot canviar mitjançant la instrucció ("analogReadResolution (bits);"). Aquest canvi de resolució pot ser útil en alguns casos.
Ara, si les condicions anteriors s’estableixen per defecte, podem llegir el valor de l’ADC del canal '0' trucant directament a la funció "analogRead (pin);", aquí "pin" representa el pin on hem connectat el senyal analògic, en aquest cas seria sigueu "A0". El valor de l'ADC es pot prendre en un enter com a "int ADCVALUE = analogRead (A0); ", Mitjançant aquesta instrucció, el valor després de l'ADC s'emmagatzema a l'enter" ADCVALUE ".
ARA parlem una mica de la pantalla LCD de 16x2. Primer hem d’habilitar el fitxer de capçalera ('#include
En segon lloc, hem d’indicar a la placa quin tipus de pantalla LCD estem utilitzant aquí. Com que tenim tants tipus diferents de LCD (com ara 20x4, 16x2, 16x1, etc.). Aquí farem una interfície LCD de 16x2 amb la UNO, de manera que obtindrem 'lcd.begin (16, 2);'. Per a 16x1 obtenim "lcd.begin (16, 1);".
En aquesta instrucció li direm a la placa on hem connectat els pins. Els pins connectats s'han de representar en ordre com "RS, En, D4, D5, D6, D7". Aquests pins s'han de representar correctament. Com que hem connectat RS a PIN0 i així successivament, tal com es mostra al diagrama de circuits, representem el número de pin a la placa com a "LiquidCrystal lcd (0, 1, 8, 9, 10, 11);".
Després de tot allà, només queda enviar dades, les dades que s'han de mostrar en pantalla LCD s'han d'escriure com a "cd.print (" hola, món! ");". Amb aquesta ordre, la pantalla LCD mostra "hola, món!".
Com podeu veure, no ens hem de preocupar per res més, només hem d’inicialitzar i l’ONU estarà preparada per mostrar les dades. No hem d’escriure un bucle de programa per enviar les dades BYTE per BYTE aquí.
L’ús d’ADC d’Arduino Uno s’explica pas a pas al programa C que es mostra a continuació.
