În acest tutorial vom interfața o tastatură tactilă 4x2 (8 taste) cu microcontroler ATMEGA32A. Știm cu toții tastatura este unul dintre cele mai importante dispozitive de intrare utilizate în ingineria electronică. Acest modul nu are chei reale, dar are tampoane metalice capacitive special concepute, iar aceste tampoane sunt foarte sensibile. Deci, atunci când o persoană intră în contact cu unul dintre tampoane, va avea loc o schimbare capacitivă în bucla corespunzătoare, iar această modificare va fi sesizată de controlul electronic din modul. Ca răspuns la atingere, pinul de ieșire al padului corespunzător crește.
Pentru un touchpad cu opt taste vom avea opt ieșiri. Deși există alte caracteristici cu acest modul, nu vom discuta aici.
Componente necesare
Hardware: microcontroler ATMEGA32, sursă de alimentare (5v), PROGRAMATOR AVR-ISP, JHD_162ALCD (16x2LCD), condensator 100uF, condensator 100nF, rezistor 1KΩ (2 bucăți), modul tastatură tactilă.
Software: Atmel studio 6.1 sau Atmel studio 6.2, progisp sau flash magic.
Diagrama circuitului și explicația de lucru
În circuitul PORTB al ATMEGA32 este conectat la portul de date LCD. Aici ar trebui să vă amintiți să dezactivați comunicarea JTAG în PORTC în ATMEGA prin schimbarea octeților siguranței, dacă doriți să utilizați PORTC ca un port de comunicație normal. În ecranul LCD 16x2 există 16 pini peste tot dacă există o lumină din spate, dacă nu există lumină din spate vor exista 14 pini. Se poate alimenta sau lăsa pinii luminii din spate. Acum, în cele 14 pinii există 8 pini de date (7-14 sau D0-D7), 2 pini de alimentare (1 & 2 sau VSS & VDD sau gnd & + 5v), 3 rd pini pentru controlul contrastului (VEE-control cât de gros personajele ar trebui să fie afișat) și 3 pini de control (RS & RW & E)
În circuit, puteți observa că am luat doar doi pini de control, ceea ce oferă flexibilitatea unei mai bune înțelegeri, bitul de contrast și CITIREA / SCRIEREA nu sunt utilizate adesea, astfel încât acestea pot fi scurtcircuitate la masă. Acest lucru pune LCD în cel mai mare contrast și modul de citire. Trebuie doar să controlăm ENABLE și pinii RS pentru a trimite caractere și date în consecință.
Conexiunile care se fac pentru LCD sunt date mai jos:
PIN1 sau VSS la masă
PIN2 sau VDD sau VCC la + 5v putere
PIN3 sau VEE la sol (oferă un contrast maxim optim pentru un începător)
PIN4 sau RS (Selectare înregistrare) la PD6 de uC
PIN5 sau RW (citire / scriere) la masă (pune LCD în modul de citire facilitează comunicarea pentru utilizator)
PIN6 sau E (Activare) la PD5 de uC
PIN7 sau D0 la PB0 de uC
PIN8 sau D1 la PB1 de uC
PIN9 sau D2 până la PB2 de uC
PIN10 sau D3 până la PB3 de uC
PIN11 sau D4 la PB4 de uC
PIN12 sau D5 până la PB5 de uC
PIN13 sau D6 la PB6 de uC
PIN14 sau D7 la PB7 de uC
În circuit puteți vedea că am folosit comunicația pe 8 biți (D0-D7), totuși acest lucru nu este obligatoriu, putem folosi comunicația pe 4 biți (D4-D7), dar cu programul de comunicație pe 4 biți devine un pic complex.
Deci, observând tabelul de mai sus, conectăm 10 pini de LCD la controler, în care 8 pini sunt pini de date și 2 pini pentru control.
Înainte de a merge mai departe, este important să știm că modulul capacitiv funcționează pentru o tensiune de 2,5V. Și, de asemenea, curentul tras de modulul tactil nu este mare. Deci, pentru a obține 2,5V pentru modul de la 5V, vom folosi circuitul de divizare a tensiunii.
Circuitul divizor de tensiune format de rezistențe este prezentat în figura de mai jos.
Acum, circuitul divizor de tensiune asigură tensiuni reduse pentru module și alte referințe. Așa cum se arată în figură, tensiunea de ieșire la punctul mediu este un raport de rezistențe. Deci, pentru a obține 2,5V de la 5V vom folosi R1 = R2 = 1KΩ, deci pentru o tensiune de alimentare de 5V tensiunea punctului mediu va fi de 2,5V față de sol. Această tensiune din circuitul divizor este conectată la modul. Un condensator este conectat peste el pentru filtrarea armonicelor, așa cum se arată în schema circuitului.
Portul de ieșire al modulului tactil este conectat la controlerul atmega, deci ori de câte ori este atins un pad, ieșirea pin corespunzătoare crește. Această schimbare logică este sesizată de controler. Controlerul afișează cifra de pe ecranul LCD pe baza pinului, care se ridică.
Din punct de vedere al securității, se pot trage în jos toți pinii de ieșire ai modulului la sol prin rezistențe de 10K, deși nu sunt obligatorii.
Funcționarea interfeței TOUCH KEAYPAD este cel mai bine explicată pas cu pas din codul C dat mai jos.