Šioje pamokoje ketiname susieti 4x2 (8 klavišų) jutiklinę klaviatūrą su ATMEGA32A mikrovaldikliu. Mes visi žinome, kad klaviatūra yra vienas iš svarbiausių įvesties įrenginių, naudojamų elektronikos inžinerijoje. Šis modulis neturi tikrųjų klavišų, tačiau turi specialiai suprojektuotus talpinius metalinius įklotus, kurie yra labai jautrūs. Taigi, kai asmuo susisiekia su viena iš trinkelių, atitinkamoje kilpoje pasikeis talpinis pokytis, ir šį pokytį pajus modulio valdymo elektronika. Kaip atsakas į prisilietimą, atitinkamas pado išvesties kaištis eina aukštai.
Aštuonių klavišų jutikliniam kilimėliui turėsime aštuonis išėjimus. Nors šiame module yra ir kitų funkcijų, mes jų čia neaptarsime.
Būtini komponentai
Aparatūra: ATMEGA32 mikrovaldiklis, maitinimo šaltinis (5v), AVR-ISP PROGRAMMERIS, JHD_162ALCD (16x2LCD), 100uF kondensatorius, 100nF kondensatorius, 1KΩ rezistorius (2 vnt.), Jutiklinės klaviatūros modulis.
Programinė įranga: „ Atmel studio 6.1“ arba „Atmel studio 6.2“, „progisp“ arba „flash magic“.
Grandinės schema ir darbo paaiškinimas
ATMEGA32 PORTB grandinėje yra prijungtas prie duomenų prievado LCD. Čia reikia nepamiršti išjungti JTAG ryšį PORTC į ATMEGA, pakeičiant saugiklių baitus, jei norite naudoti PORTC kaip įprastą ryšio prievadą. 16x2 skystųjų kristalų skystųjų kristalų ekrane yra 16 kontaktų, jei yra užpakalinė lemputė, jei nėra užpakalinės šviesos, bus 14 kontaktų. Galima maitinti arba palikti galinio apšvietimo kaiščius. Dabar 14 kaiščių yra 8 duomenų kaiščiai (7-14 arba D0-D7), 2 elektros tiekimo kaiščių (1 & 2 arba Vss & VDD arba GND & + 5V), 3 -oji kaištis kontrasto valdymas (V formos,-kontroliuoja, kaip storio simboliai turėtų būti ir 3 valdymo kaiščiai (RS & RW & E)
Grandinėje galite pastebėti, kad aš paėmiau tik du valdymo kaiščius, tai suteikia lankstumo geriau suprasti, kontrasto bitai ir READ / WRITE nėra dažnai naudojami, todėl juos galima sutrumpinti. Tai padidina LCD kontrasto ir skaitymo režimą. Mes tiesiog turime valdyti ENABLE ir RS smeigtukus, kad galėtume atitinkamai siųsti simbolius ir duomenis.
LCD jungtys pateikiamos žemiau:
PIN1 arba VSS į žemę
PIN2 arba VDD arba VCC iki + 5v maitinimo
PIN3 arba VEE į žemę (suteikia maksimalų kontrastą pradedantiesiems)
PIN4 arba RS (registracijos pasirinkimas) į uC PD6
PIN5 arba RW (skaitymas / rašymas) į žemę (įjungus skystųjų kristalų ekraną skaitymo režimu, palengvinamas ryšys vartotojui)
PIN6 arba E (įjungti) į uC PD5
PIN7 arba D0 - PB0 iš uC
UC PIN8 arba D1 – PB1
PIN9 arba D2 – PB2 iš uC
U10 PIN10 arba D3 – PB3
PIN11 arba D4 – PB4 iš uC
U12 PIN12 arba D5 – PB5
U13 PIN13 arba D6 – PB6
U14 PIN14 arba D7 – PB7
Grandinėje matote, kad mes naudojome 8 bitų ryšį (D0-D7), tačiau tai nėra privaloma, mes galime naudoti 4 bitų ryšį (D4-D7), tačiau su 4 bitų ryšio programa tampa šiek tiek sudėtinga.
Taigi, stebėdami aukščiau pateiktą lentelę, mes prijungiame 10 LCD kontaktų su valdikliu, kuriame 8 kontaktai yra duomenų ir 2 kaiščiai valdymui.
Prieš einant toliau, svarbu žinoti, kad talpinis modulis veikia esant 2,5 V įtampai. Taip pat jutiklinio modulio srovė nėra didelė. Taigi, norėdami gauti 2,5 V moduliui nuo 5 V, mes naudosime įtampos skirstytuvo grandinę.
Rezistorių įtampos skirstytuvo grandinės formatorius parodytas paveikslėlyje žemiau.
Dabar įtampos daliklio grandinė suteikia žemą įtampą moduliams ir kitoms nuorodoms. Kaip parodyta paveiksle, išėjimo įtampa vidurio taške yra varžų santykis. Taigi, norėdami gauti 2,5 V iš 5 V, mes naudosime R1 = R2 = 1KΩ, taigi 5 V maitinimo įtampai vidurio taško įtampa bus 2,5 V žemės atžvilgiu. Ši įtampa iš skirstytuvo grandinės yra prijungta prie modulio. Per jį prijungtas kondensatorius, skirtas filtruoti harmonikams, kaip parodyta grandinės schemoje.
Jutiklinio modulio išvesties prievadas yra prijungtas prie atmega valdiklio, todėl palietus trinkelę, atitinkama kontaktų išvestis eina aukštai. Šį loginį pokytį pajunta valdiklis. Valdiklis rodo skaitmenį LCD ekrane pagal kaištį, kuris eina aukštai.
Saugumo dėlei galima modulio išvesties kaiščius nugriauti per žemę per 10K rezistorius, nors tai nėra privaloma.
„TOUCH KEAYPAD INTERFACE“ veikimas geriausiai paaiškinamas toliau pateiktu C kodu.