In deze tutorial gaan we een 4x2 (8-toets) aanraaktoetsenbord koppelen aan een ATMEGA32A-microcontroller. We weten allemaal dat het toetsenbord een van de belangrijkste invoerapparaten is die in de elektronica-engineering worden gebruikt. Deze module heeft geen echte toetsen, maar heeft speciaal ontworpen capacitieve metalen pads, en deze pads zijn erg gevoelig. Dus wanneer een persoon in contact komt met een van de pads, zal er een capacitieve verandering in de corresponderende lus optreden, en deze verandering zal worden waargenomen door de besturingselektronica in de module. Als reactie op de aanraking gaat de corresponderende pad-outputpin hoog.
Voor een touchpad met acht toetsen hebben we acht uitgangen. Hoewel er andere functies zijn met deze module, gaan we ze hier niet bespreken.
Componenten vereist
Hardware: ATMEGA32 microcontroller, voeding (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16x2LCD), 100uF condensator, 100nF condensator, 1KΩ weerstand (2 stuks), Touch toetsenbord module.
Software: Atmel studio 6.1 of Atmel studio 6.2, progisp of flash magie.
Schakelschema en werkuitleg
In circuit is PORTB van ATMEGA32 verbonden met datapoort LCD. Hier moet men onthouden om de JTAG-communicatie in PORTC naar ATMEGA uit te schakelen door de zekeringbytes te wijzigen, als men de PORTC als een normale communicatiepoort wil gebruiken. In 16x2 LCD zijn er in totaal 16 pinnen als er een achtergrondverlichting is, als er geen achtergrondverlichting is, zijn er 14 pinnen. Men kan de achterlichtpinnen van stroom voorzien of laten. Nu in de 14 pennen zijn er 8 datapennen (7-14 of D0-D7), 2 voedingspennen (1 & 2 of VSS en VDD en GND en + 5 V), 3 rd pin voor contrastregeling (VEE-bepaalt hoe dik de tekens moet afgebeeld), en 3 controlepennen (RS & RW & E)
In het circuit kun je zien dat ik maar twee controlepennen heb genomen, dit geeft de flexibiliteit van een beter begrip, het contrastbit en READ / WRITE worden niet vaak gebruikt, zodat ze kunnen worden kortgesloten naar aarde. Dit plaatst LCD in het hoogste contrast en leesmodus. We hoeven alleen de ENABLE- en RS-pinnen te bedienen om tekens en gegevens dienovereenkomstig te verzenden.
De aansluitingen die zijn gemaakt voor LCD worden hieronder gegeven:
PIN1 of VSS naar aarde
PIN2 of VDD of VCC tot + 5v vermogen
PIN3 of VEE naar aarde (geeft maximaal contrast het beste voor een beginner)
PIN4 of RS (registerselectie) naar PD6 van uC
PIN5 of RW (lezen / schrijven) naar aarde (zet LCD in leesmodus vereenvoudigt de communicatie voor de gebruiker)
PIN6 of E (inschakelen) naar PD5 van uC
PIN7 of D0 tot PB0 van uC
PIN8 of D1 tot PB1 van uC
PIN9 of D2 naar PB2 van uC
PIN10 of D3 naar PB3 van uC
PIN11 of D4 naar PB4 van uC
PIN12 of D5 naar PB5 van uC
PIN13 of D6 naar PB6 van uC
PIN14 of D7 naar PB7 van uC
In het circuit kun je zien dat we 8bit-communicatie (D0-D7) hebben gebruikt, maar dit is niet verplicht, we kunnen 4bit-communicatie gebruiken (D4-D7) maar met 4-bits communicatie wordt het programma een beetje ingewikkeld.
Dus door de bovenstaande tabel te observeren, verbinden we 10 pinnen van het LCD-scherm met de controller, waarbij 8 pinnen datapinnen zijn en 2 pinnen voor controle.
Voordat u verder gaat, is het belangrijk om te weten dat de capacitieve module werkt voor een spanning van 2,5V. En ook de stroom die door de aanraakmodule wordt getrokken, is niet hoog. Dus om 2.5V voor de module van 5V te krijgen, gaan we een spanningsdelercircuit gebruiken.
Het spanningsdelercircuit door weerstanden wordt weergegeven in de onderstaande afbeelding.
Nu levert het spanningsdelercircuit lage spanningen voor modules en andere referenties. Zoals weergegeven in de afbeelding, is de uitgangsspanning in het midden een verhouding van weerstanden. Dus om 2,5 V van 5 V te krijgen, gaan we R1 = R2 = 1 KΩ gebruiken, dus voor een voedingsspanning van 5 V is de middelpuntspanning 2,5 V ten opzichte van aarde. Deze spanning van het delercircuit is verbonden met de module. Daaroverheen is een condensator aangesloten voor het filteren van de harmonischen, zoals weergegeven in het schakelschema.
De output-poort van de aanraakmodule is verbonden met de atmega-controller, dus wanneer een pad wordt aangeraakt, gaat de bijbehorende pin-output hoog. Deze logische verandering wordt waargenomen door de controller. De controller toont het cijfer op het LCD-scherm op basis van de pin, die hoog gaat.
Om veiligheidsredenen kan men alle uitgangspennen van de module naar de aarde trekken via 10K-weerstanden, hoewel dit niet verplicht is.
De werking van TOUCH KEAYPAD INTERFACE kan het beste worden uitgelegd in de onderstaande C-code stap voor stap.