U ovom projektu koristimo koncept ADC (analogna u digitalnu konverziju) u ARDUINO UNO. Za mjerenje jačine polja magneta upotrijebit ćemo Hall Effect senzor i Arduino uno. Ovdje smo upotrijebili senzor UGN3503U. Ovo je Hall-ov senzor koji osjeća jačinu magnetskog polja i daje promjenjivi napon na izlazu proporcionalan jačini polja. Ovaj senzor uzima snagu polja u jedinicama ' GAUSS '.

Tako ćemo s ovim senzorom imati jačinu polja kao različiti napon. Korištenjem značajke ADC pretvorit ćemo ovaj napon u broj. Ovaj broj predstavlja jačinu polja i prikazan je na LCD-u.
Arduino ima šest ADC kanala. U njima se bilo koji ili jedan od njih mogu koristiti kao ulazi za analogni napon. UNO ADC ima 10-bitnu razlučivost (dakle, cijele vrijednosti iz (0- (2 ^ 10) 1023)). To znači da će preslikati ulazne napone između 0 i 5 volti u cjelobrojne vrijednosti između 0 i 1023. Dakle, za svaki (5/1024 = 4,9 mV) po jedinici.
U svemu tome povezat ćemo potenciometar ili lonac na kanal 'A0', a rezultat ADC prikazat ćemo na jednostavnom zaslonu. Jednostavni zasloni su prikazne jedinice 16x1 i 16x2. Prikazna jedinica 16x1 imat će 16 znakova i nalazi se u jednom retku. 16x2 će imati 32 znakova u ukupnom 16in 1. st linije i još 16 u 2 nd liniji. Ovdje moramo shvatiti da u svakom znaku ima 5x10 = 50 piksela, pa da bi se prikazao jedan znak, svih 50 piksela mora raditi zajedno, ali ne moramo se o tome brinuti jer u jedinici zaslona postoji drugi kontroler (HD44780) koji vrši posao kontrole piksela (možete ga vidjeti na LCD jedinici, to je crno oko straga).
Komponente potrebne
Hardver: ARDUINO UNO, napajanje (5v), JHD_162ALCD (16x2LCD), kondenzator 100uF (2komad), UGn3503U.
Softver: arduino IDE (Arduino svake noći)
Kružni dijagram i objašnjenje

Gornja slika prikazuje shemu spojeva za mjerenje magnetskog polja pomoću arduino uno.
Na LCD zaslonu 16x2 postoji 16 pinova ako postoji pozadinsko svjetlo, a ako nema pozadinskog svjetla, bit će 14 pinova. Može se napajati ili ostaviti igle stražnjeg svjetla. Sada u 14 pinova postoji 8 podatkovnih pinova (7-14 ili D0-D7), 2 pina za napajanje (1 i 2 ili VSS & VDD ili GND & + 5v), treći pinski za kontrolu kontrasta (VEE - kontrolira koliko debeli znakovi trebaju biti prikazano) i 3 upravljačka zatiča (RS & RW & E).
U gornjem krugu možete primijetiti da sam uzeo samo dvije kontrolne igle, kontrastni bit i READ / WRITE se ne koriste često, tako da se mogu kratko spojiti na masu. Ovo LCD postavlja u najveći kontrast i način čitanja. Samo trebamo kontrolirati ENABLE i RS igle da bi u skladu s tim slali znakove i podatke.
Priključci koji se rade za LCD prikazani su u nastavku:
PIN1 ili VSS na masu
PIN2 ili VDD ili VCC do + 5v snage
PIN3 ili VEE na zemlju (daje maksimalni kontrast najbolji za početnike)
PIN4 ili RS (Registriraj odabir) na PIN8 ARDUINO UNO
PIN5 ili RW (čitanje / pisanje) na masu (stavlja LCD u način čitanja olakšava komunikaciju za korisnika)
PIN6 ili E (Omogući) do PIN9 ARDUINO UNO
PIN11 ili D4 do PIN10 ARDUINO UNO
PIN12 ili D5 do PIN11 ARDUINO UNO
PIN13 ili D6 do PIN12 ARDUINO UNO
PIN14 ili D7 do PIN13 ARDUINO UNO
ARDUINO IDE omogućuje korisniku upotrebu LCD-a u 4-bitnom načinu. Ova vrsta komunikacije omogućuje korisniku da smanji upotrebu pin-a na ARDUINO, za razliku od drugih, ARDUINO ne mora biti programiran odvojeno za upotrebu u 4 it modu jer je ARDUINO prema zadanim postavkama postavljen za komunikaciju u 4 bitnom načinu. U krugu možete vidjeti da smo koristili 4-bitnu komunikaciju (D4-D7). Dakle, iz pukog promatranja iz gornje tablice povezujemo 6 pinova LCD-a s kontrolerom u kojem su 4 pina podatkovne i 2 pina za kontrolu.
Radno
Da bismo povezali LCD s ARDUINO UNO, moramo znati nekoliko stvari.
|
Prije svega UNO ADC kanali imaju zadanu referentnu vrijednost od 5V. To znači da možemo dati maksimalni ulazni napon od 5V za ADC pretvorbu na bilo kojem ulaznom kanalu. Budući da neki senzori pružaju napone od 0-2,5V, s referencom od 5V dobivamo manju točnost, pa imamo uputu koja nam omogućuje promjenu ove referentne vrijednosti. Dakle, za promjenu referentne vrijednosti imamo ("analogReference ();")
Prema zadanim postavkama dobivamo maksimalnu razlučivost ADC ploče, koja iznosi 10 bita, ova se razlučivost može mijenjati pomoću uputa („analogReadResolution (bitovi);“). Ova promjena rezolucije može dobro doći u nekim slučajevima.
Ako su gornji uvjeti postavljeni na zadane, možemo očitati vrijednost iz ADC-a kanala '0' izravnim pozivom funkcije "analogRead (pin);", ovdje "pin" predstavlja pin na koji smo spojili analogni signal, u ovom slučaju bi biti "A0". Vrijednost iz ADC-a može se pretvoriti u cijeli broj kao “int ADCVALUE = analogRead (A0); ", Ovom se uputom vrijednost nakon ADC-a sprema u cijeli broj" ADCVALUE ".
SADA razgovarajmo malo o LCD-u 16x2. Prvo moramo omogućiti datoteku zaglavlja ('#include
Drugo, moramo reći ploči koju vrstu LCD-a ovdje koristimo. Budući da imamo toliko različitih vrsta LCD-a (poput 20x4, 16x2, 16x1 itd.). Ovdje ćemo povezati LCD 16x2 s UNO-om, pa ćemo dobiti 'lcd.begin (16, 2);'. Za 16x1 dobivamo 'lcd.begin (16, 1);'.
U ovoj ćemo uputi reći ploči gdje smo spojili pinove. Priključci koji su spojeni trebaju biti predstavljeni redom kao „RS, En, D4, D5, D6, D7”. Ove pribadače treba ispravno predstaviti. Budući da smo RS povezali na PIN0 i tako dalje, kao što je prikazano na shemi spojeva, predstavljamo pin broj na ploči kao „LiquidCrystal lcd (0, 1, 8, 9, 10, 11);“.
Nakon što gore ostane samo poslati podatke, podaci koje treba prikazati na LCD-u trebaju biti zapisani kao „cd.print („ bok, svijete! “);“. Pomoću ove naredbe LCD prikazuje 'zdravo, svijet!'. Kao što vidite, ne trebamo se brinuti ni zbog čega drugog, samo moramo inicijalizirati i UNO će biti spreman za prikaz podataka. Ne moramo ovdje pisati programsku petlju da bismo ovdje slali podatke po BYTE.
Kad se magnet približi senzoru, senzor predstavlja napon na izlazu proporcionalan polju, Uno uzima ovu vrijednost i prikazuje na LCD-u. Rad ovog projekta mjerenja magnetskog polja dalje je objašnjen kroz donji C kod.
