V tomto tutoriáli predstavujeme koncept ADC (Analog to Digital Conversion) v ARDUINO UNO. Doska Arduino má šesť ADC kanálov, ako je znázornené na obrázku nižšie. Jeden alebo všetky z nich môžu byť použité ako vstupy pre analógové napätie. Arduino Uno ADC je 10-bitovým rozlíšením (takže celočíselné hodnoty od (0- (2 ^ 10), 1023)). To znamená, že bude mapovať vstupné napätie medzi 0 a 5 voltami na celočíselné hodnoty medzi 0 a 1023. Takže pre každú (5/1024 = 4,9 mV) na jednotku.
V tomto všetkom pripojíme potenciometer alebo potenciometr na kanál „A0“ a ukážeme výsledok ADC na jednoduchom displeji. Jednoduché displeje sú zobrazovacie jednotky 16x1 a 16x2. Zobrazovacia jednotka 16x1 bude mať 16 znakov a je v jednom riadku. 16x2 bude mať 32 znakov v celkovej 16in 1 prvom riadku a ďalšie 16 v 2 nd línie. Tu je potrebné pochopiť, že v každom znaku je 5x10 = 50 pixelov, takže na zobrazenie jedného znaku musí všetkých 50 pixelov spolupracovať, ale nemusíme sa toho obávať, pretože v zobrazovacej jednotke je ďalší radič (HD44780), ktorý ovládanie pixelov (vidíte to na LCD jednotke, je to čierne oko vzadu).
Súčasti sú povinné
Hardvér: ARDUINO UNO, napájanie (5v), JHD_162ALCD (16x2LCD), kondenzátor 100uF, potenciometer alebo potenciometer 100KΩ, kondenzátor 100nF.
Softvér: arduino IDE (Arduino v noci)
Schéma zapojenia a vysvetlenie
Na 16x2 LCD displeji je 16 pinov, ak je podsvietenie, ak nie je podsvietenie, bude 14 pinov. Jeden môže napájať alebo nechať kolíky podsvietenia. Teraz v 14 kolíkoch je 8 dátových kolíkov (7-14 alebo D0-D7), 2 kolíky napájacieho zdroja (1 a 2 alebo VSS a VDD alebo GND a + 5v), 3. kolík pre kontrolu kontrastu (VEE - určuje, aké silné by mali byť znaky) (zobrazené na obrázku) a 3 ovládacie kolíky (RS & RW & E).
V obvode môžete pozorovať, že som vzal iba dva ovládacie piny, kontrastný bit a READ / WRITE sa často nepoužívajú, takže môžu byť skratované k zemi. Toto nastavuje LCD do najvyššieho kontrastu a režimu čítania. Potrebujeme iba ovládať piny ENABLE a RS, aby sme mohli zodpovedajúcim spôsobom odosielať znaky a údaje.
Pripojenia, ktoré sa vykonávajú pre LCD, sú uvedené nižšie:
PIN1 alebo VSS na zem
PIN2 alebo VDD alebo VCC na napájanie + 5 V.
PIN3 alebo VEE na zem (poskytuje maximálny kontrast najlepšie pre začiatočníkov)
PIN4 alebo RS (výber registra) na PIN8 spoločnosti ARDUINO UNO
PIN5 alebo RW (čítanie / zápis) na zem (prepnutie LCD do režimu čítania uľahčuje komunikáciu pre používateľa)
PIN6 alebo E (povoliť) na PIN9 produktu ARDUINO UNO
PIN11 alebo D4 až PIN10 spoločnosti ARDUINO UNO
PIN12 alebo D5 až PIN11 spoločnosti ARDUINO UNO
PIN13 alebo D6 až PIN12 spoločnosti ARDUINO UNO
PIN14 alebo D7 až PIN13 spoločnosti ARDUINO UNO
ARDUINO IDE umožňuje užívateľovi používať LCD v 4 bitovom režime. Tento typ komunikácie umožňuje užívateľovi znížiť využitie pinov na ARDUINO, na rozdiel od iných nemusí byť ARDUINO naprogramované osobitne pre použitie v režime 4 it, pretože ARDUINO je štandardne nastavené na komunikáciu v 4 bitovom režime. V obvode vidíte, že sme použili 4bitovú komunikáciu (D4-D7).
Takže iba z pozorovania z vyššie uvedenej tabuľky pripájame 6 pinov LCD k ovládaču, v ktorom 4 piny sú dátové piny a 2 piny pre riadenie.
Vyššie uvedený obrázok zobrazuje diagram obvodu ADC ARDUINO UNO.
Pracovne
Pre prepojenie LCD s ARDUINO UNO musíme vedieť niekoľko vecí.
|
Najskôr majú kanály UNO ADC predvolenú referenčnú hodnotu 5 V. To znamená, že môžeme poskytnúť maximálne vstupné napätie 5 V pre prevod ADC na ktoromkoľvek vstupnom kanáli. Pretože niektoré snímače poskytujú napätie od 0 do 2,5 V, pri referenčnej hodnote 5 V dostaneme menšiu presnosť, takže máme inštrukciu, ktorá nám umožňuje zmeniť túto referenčnú hodnotu. Takže pre zmenu referenčnej hodnoty, ktorú máme („analogReference ();“)
Ako predvolené nastavenie dostaneme maximálne rozlíšenie ADC na doske, ktoré je 10 bitov, toto rozlíšenie je možné zmeniť pomocou inštrukcie („analogReadResolution (bits);“). Táto zmena rozlíšenia sa môže v niektorých prípadoch hodiť.
Teraz, ak sú vyššie uvedené podmienky nastavené na predvolené, môžeme načítať hodnotu z ADC kanálu „0“ priamym volaním funkcie „analogRead (pin);“, tu „pin“ predstavuje pin, kam sme pripojili analógový signál, v takom prípade by byť „A0“. Hodnotu z ADC možno vziať do celého čísla ako „int ADCVALUE = analogRead (A0); ”, Touto inštrukciou sa hodnota po ADC uloží do celého čísla“ ADCVALUE ”.
Teraz si povieme niečo o 16x2 LCD. Najprv musíme povoliť hlavičkový súbor ('#include
Po druhé musíme doske povedať, aký typ LCD tu používame. Pretože máme toľko rôznych typov displejov LCD (napríklad 20x4, 16x2, 16x1 atď.). Tu budeme prepojovať 16x2 LCD s UNO, aby sme dostali 'lcd.begin (16, 2);'. Pre 16x1 dostaneme 'lcd.begin (16, 1);'.
V tejto inštrukcii povieme doske, kde sme pripojili kolíky. Kolíky, ktoré sú pripojené, majú byť zobrazené v poradí ako „RS, En, D4, D5, D6, D7“. Tieto špendlíky majú byť zobrazené správne. Pretože sme pripojili RS k PIN0 a tak ďalej, ako je znázornené na schéme zapojenia, reprezentujeme číslo kolíka na doske ako „LiquidCrystal lcd (0, 1, 8, 9, 10, 11);“.
Potom už len zostáva odosielať údaje, ktoré je potrebné zobraziť na LCD, by sa mali zapísať ako „cd.print („ ahoj, svet! “);“. Týmto príkazom sa na displeji LCD zobrazí „ahoj, svet!“.
Ako vidíte, o nič viac sa nemusíte starať, musíme iba inicializovať a UNO bude pripravená na zobrazenie údajov. Na to, aby sme tu odosielali údaje BYTE po BYTE, nemusíme písať programovú slučku.
Používanie ADC v Arduino Uno je vysvetlené krok za krokom v programe C uvedenom nižšie.