En aquest projecte estem utilitzant el concepte ADC (conversió analògica a digital) a ARDUINO UNO. Utilitzarem un sensor d’efecte Hall i un Arduino uno per mesurar la intensitat del camp d’un imant. El sensor que hem utilitzat aquí és UGN3503U. Es tracta d’un sensor de sala que detecta la intensitat del camp magnètic i proporciona una tensió variable a la sortida proporcional a la intensitat del camp. Aquest sensor capta la intensitat del camp a les unitats de " GAUSS ".

Així doncs, amb aquest sensor tindrem intensitat de camp com a tensió variable. Mitjançant la funció ADC convertirem aquest voltatge en un nombre. Aquest número representa la intensitat del camp i es mostra a la pantalla LCD.
Arduino té sis canals ADC. En aquelles, qualsevol o totes es poden utilitzar com a entrades de tensió analògica. L'ADC UNO 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 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 (2 peces), UGn3503U.
Programari: arduino IDE (Arduino nocturn)
Diagrama del circuit i explicació

La figura anterior mostra el diagrama de circuits per a la mesura del camp magnètic mitjançant arduino uno.
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 mostrats) i 3 pins de control (RS & RW & E).
Al circuit anterior, es pot observar que només he pres dos pins de control, el bit de contrast i READ / WRITE no s’utilitzen sovint, de manera que es poden reduir 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 necessita 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.
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í.
Una vegada que s’apropa un imant al sensor, el sensor representa un voltatge a la sortida proporcional al camp, Uno pren aquest valor i es mostra en pantalla LCD. El funcionament d’aquest projecte de mesura de camp magnètic s’explica a més a través del següent codi C.
