V tomto výučbe sa chystáme prepojiť dotykovú klávesnicu 4x2 (8 kláves) s mikrokontrolérom ATMEGA32A. Všetci vieme, že klávesnica je jedným z najdôležitejších vstupných zariadení používaných v elektronike. Tento modul nemá skutočné klávesy, ale má špeciálne navrhnuté kapacitné kovové podložky, ktoré sú veľmi citlivé. Takže keď sa človek dostane do kontaktu s jednou z podložiek, dôjde k kapacitnej zmene v zodpovedajúcej slučke a táto zmena bude snímaná riadiacou elektronikou v module. V reakcii na dotyk sa príslušný výstupný kolík podložky zvýši.
Pre dotykovú plochu s ôsmimi klávesmi budeme mať osem výstupov. Aj keď tento modul obsahuje aj ďalšie funkcie, nebudeme ich tu rozoberať.
Súčasti sú povinné
Hardvér: mikrokontrolér ATMEGA32, napájanie (5v), programátor AVR-ISP, JHD_162ALCD (16x2LCD), kondenzátor 100uF, kondenzátor 100nF, rezistor 1KΩ (2 kusy), modul dotykovej klávesnice.
Softvér: Atmel studio 6.1 alebo Atmel studio 6.2, progisp alebo flash magic.
Schéma zapojenia a pracovné vysvetlenie
V obvode PORTB ATMEGA32 je pripojený k dátovému portu LCD. Tu by ste si mali pamätať, že chcete deaktivovať komunikáciu JTAG v PORTC na ATMEGA zmenou bajtov poistky, ak chcete použiť PORTC ako normálny komunikačný port. 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 & VDD alebo gnd & + 5v), 3. kolík na 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, čo dáva flexibilitu lepšieho porozumenia, 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 PD6 uC
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 PD5 uC
PIN7 alebo D0 až PB0 uC
PIN8 alebo D1 až PB1 uC
PIN9 alebo D2 až PB2 uC
PIN10 alebo D3 až PB3 uC
PIN11 alebo D4 až PB4 uC
PIN12 alebo D5 až PB5 uC
PIN13 alebo D6 až PB6 uC
PIN14 alebo D7 až PB7 uC
V obvode, ktorý vidíte, sme použili 8-bitovú komunikáciu (D0-D7), nie je to však povinné, môžeme použiť 4-bitovú komunikáciu (D4-D7), ale so 4-bitovým komunikačným programom sa stáva trochu zložitejšou.
Podľa pozorovania vyššie uvedenej tabuľky teda pripájame 10 pinov LCD k radiču, v ktorých 8 pinov sú dátové piny a 2 piny pre riadenie.
Skôr ako ideme ďalej, je dôležité vedieť, že kapacitný modul pracuje na napätí 2,5 V. A tiež prúd, ktorý odoberá dotykový modul, nie je vysoký. Takže na získanie 2,5 V pre modul z 5 V použijeme obvod deliča napätia.
Tvarovač rozdeľovača napätia pomocou rezistorov je zobrazený na obrázku nižšie.
Teraz obvod rozdeľovača napätia poskytuje nízke napätie pre moduly a ďalšie referencie. Ako je znázornené na obrázku, výstupné napätie v strede je pomerom odporov. Takže na získanie 2,5 V z 5 V použijeme R1 = R2 = 1 KΩ, takže pre napájacie napätie 5 V bude stredné napätie 2,5 V vzhľadom na zem. Toto napätie z rozdeľovacieho obvodu je pripojené k modulu. Cez ňu je pripojený kondenzátor na filtrovanie harmonických, ako je znázornené na schéme zapojenia.
Výstupný port dotykového modulu je pripojený k ovládaču atmega, takže vždy, keď sa dotknete podložky, výstup príslušného kolíka sa zvýši. Táto logická zmena je snímaná regulátorom. Ovládač zobrazuje číslicu na LCD displeji na základe kolíka, ktorý ide vysoko.
Z bezpečnostných dôvodov je možné stiahnuť všetky výstupné piny modulu na zem cez 10K rezistory, aj keď to nie je povinné.
Fungovanie TOUCH KEAYPAD INTERFACE je najlepšie vysvetliť krok za krokom v C kóde uvedenom nižšie.