In questo tutorial interfacciamo una tastiera touch 4x2 (8 tasti) con il microcontrollore ATMEGA32A. Sappiamo tutti che la tastiera è uno dei più importanti dispositivi di input utilizzati nell'ingegneria elettronica. Questo modulo non ha tasti effettivi, ma ha pad capacitivi in metallo appositamente progettati e questi pad sono molto sensibili. Quindi, quando una persona entra in contatto con uno degli elettrodi, si verificherà un cambiamento capacitivo nel loop corrispondente, e questo cambiamento verrà rilevato dall'elettronica di controllo nel modulo. In risposta al tocco, il pin di uscita del pad corrispondente diventa alto.
Per un touch pad a otto tasti avremo otto uscite. Sebbene ci siano altre funzionalità con questo modulo, non le discuteremo qui.
Componenti richiesti
Hardware: microcontrollore ATMEGA32, alimentatore (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16x2LCD), condensatore 100uF, condensatore 100nF, resistenza 1KΩ (2 pezzi), modulo tastiera touch.
Software: Atmel studio 6.1 o Atmel studio 6.2, progisp o flash magic.
Schema del circuito e spiegazione del funzionamento
Nel circuito PORTB di ATMEGA32 è collegato alla porta dati LCD. Qui bisogna ricordarsi di disabilitare la comunicazione JTAG in PORTC ad ATMEGA cambiando i fuse bytes, se si vuole usare il PORTC come una normale porta di comunicazione. In 16x2 LCD ci sono 16 pin in tutto se c'è una retroilluminazione, se non c'è retroilluminazione ci saranno 14 pin. Si può alimentare o lasciare i perni della retroilluminazione. Ora nei 14 pin ci sono 8 pin dati (7-14 o D0-D7), 2 pin di alimentazione (1 & 2 o VSS & VDD o gnd & + 5v), 3 ° pin per il controllo del contrasto (VEE-controlla quanto dovrebbero essere spessi i caratteri mostrato) e 3 pin di controllo (RS & RW & E)
Nel circuito, puoi osservare che ho preso solo due pin di controllo, questo dà la flessibilità di una migliore comprensione, il bit di contrasto e READ / WRITE non sono usati spesso in modo che possano essere cortocircuitati a massa. Questo mette l'LCD nel più alto contrasto e modalità di lettura. Abbiamo solo bisogno di controllare i pin ENABLE e RS per inviare caratteri e dati di conseguenza.
Di seguito sono riportati i collegamenti effettuati per l'LCD:
PIN1 o VSS a terra
Alimentazione da PIN2 o VDD o VCC a + 5v
PIN3 o VEE a massa (offre il massimo contrasto migliore per un principiante)
PIN4 o RS (selezione registro) a PD6 di uC
PIN5 o RW (lettura / scrittura) a massa (mette l'LCD in modalità di lettura facilita la comunicazione per l'utente)
PIN6 o E (Abilita) a PD5 di uC
PIN7 o D0 a PB0 di uC
PIN8 o D1 a PB1 di uC
PIN9 o D2 a PB2 di uC
PIN10 o D3 a PB3 di uC
PIN11 o D4 a PB4 di uC
PIN12 o D5 a PB5 di uC
PIN13 o D6 a PB6 di uC
PIN14 o D7 a PB7 di uC
Nel circuito si può vedere che abbiamo utilizzato la comunicazione a 8 bit (D0-D7) tuttavia questo non è obbligatorio, possiamo usare la comunicazione a 4 bit (D4-D7) ma con la comunicazione a 4 bit il programma diventa un po 'complesso.
Quindi, osservando la tabella sopra, stiamo collegando 10 pin dell'LCD al controller in cui 8 pin sono pin dati e 2 pin per il controllo.
Prima di andare oltre, è importante sapere che il modulo capacitivo funziona per una tensione di 2,5 V. E anche la corrente assorbita dal modulo touch non è elevata. Quindi, per ottenere 2,5 V per il modulo da 5 V, utilizzeremo il circuito divisore di tensione.
Il circuito divisore di tensione che forma i resistori è mostrato nella figura seguente.
Ora il circuito del divisore di tensione fornisce basse tensioni per i moduli e altri riferimenti. Come mostrato in figura, la tensione di uscita nel punto medio è un rapporto di resistenze. Quindi per ottenere 2,5 V da 5 V utilizzeremo R1 = R2 = 1 KΩ, quindi per una tensione di alimentazione di 5 V la tensione del punto medio sarà 2,5 V rispetto a terra. Questa tensione dal circuito divisore è collegata al modulo. Un condensatore è collegato attraverso di esso per filtrare le armoniche, come mostrato nello schema del circuito.
La porta di uscita del modulo touch è collegata al controller atmega, quindi ogni volta che viene toccato un pad l'uscita del pin corrispondente diventa alta. Questo cambiamento logico viene rilevato dal controller. Il controller mostra la cifra sul display LCD in base al pin, che va in alto.
Per sicurezza, è possibile abbassare tutti i pin di uscita del modulo a terra tramite resistori da 10K, sebbene non sia obbligatorio.
Il funzionamento dell'interfaccia TOUCH KEAYPAD è meglio spiegato passo dopo passo del codice C indicato di seguito.