W tym samouczku zamierzamy połączyć klawiaturę dotykową 4x2 (8 klawiszy) z mikrokontrolerem ATMEGA32A. Wszyscy wiemy, że klawiatura jest jednym z najważniejszych urządzeń wejściowych stosowanych w inżynierii elektronicznej. Ten moduł nie ma rzeczywistych kluczy, ale ma specjalnie zaprojektowane pojemnościowe metalowe podkładki, które są bardzo czułe. Kiedy więc ktoś zetknie się z jednym z padów, nastąpi zmiana pojemności w odpowiedniej pętli i ta zmiana zostanie wykryta przez elektronikę sterującą w module. W odpowiedzi na dotyk odpowiedni pin wyjściowy padu przechodzi w stan wysoki.
W przypadku ośmioklawiszowego panelu dotykowego będziemy mieli osiem wyjść. Chociaż istnieją inne funkcje tego modułu, nie będziemy ich tutaj omawiać.
Wymagane składniki
Sprzęt: mikrokontroler ATMEGA32, zasilacz (5v), programator AVR-ISP, JHD_162ALCD (16x2LCD), kondensator 100uF, kondensator 100nF, rezystor 1KΩ (2 sztuki), moduł klawiatury dotykowej.
Oprogramowanie: Atmel studio 6.1 lub Atmel studio 6.2, progisp lub flash magic.
Schemat obwodu i objaśnienie robocze
W obwodzie PORTB ATMEGA32 jest podłączony do portu danych LCD. W tym miejscu należy pamiętać o wyłączeniu komunikacji JTAG w PORTC do ATMEGA poprzez zmianę bajtów bezpiecznika, jeśli chcemy używać PORTC jako normalnego portu komunikacyjnego. W 16x2 LCD jest 16 pinów, jeśli jest podświetlenie, jeśli nie ma podświetlenia, będzie 14 pinów. Można zasilać lub pozostawić piny podświetlenia. Teraz w 14 szpilki są kołki 8 danych (7-14 lub D0-D7), 2 szpilki zasilacza (1 i 2 lub VSS i VDD i GND i +5 V), 3 rd pin regulacji kontrastu (VEE umożliwia sprawdzenie grubości znaki powinny pokazano) i 3 piny sterujące (RS i RW i E)
W obwodzie można zauważyć, że wziąłem tylko dwa piny sterujące, co daje elastyczność lepszego zrozumienia, bit kontrastu i odczyt / zapis nie są często używane, więc można je zwierać do masy. Dzięki temu wyświetlacz LCD ma najwyższy kontrast i tryb odczytu. Musimy tylko sterować pinami ENABLE i RS, aby odpowiednio wysyłać znaki i dane.
Poniżej przedstawiono połączenia wykonane dla LCD:
PIN1 lub VSS do masy
PIN2 lub VDD lub VCC do + 5 V.
PIN3 lub VEE do ziemi (daje maksymalny kontrast najlepszy dla początkującego)
PIN4 lub RS (wybór rejestru) do PD6 uC
PIN5 lub RW (odczyt / zapis) do masy (przełącza wyświetlacz LCD w tryb odczytu, ułatwiając komunikację użytkownikowi)
PIN6 lub E (Włącz) do PD5 uC
PIN7 lub D0 do PB0 z uC
PIN8 lub D1 do PB1 uC
PIN9 lub D2 do PB2 uC
PIN10 lub D3 do PB3 uC
PIN11 lub D4 do PB4 uC
PIN12 lub D5 do PB5 uC
PIN13 lub D6 do PB6 uC
PIN14 lub D7 do PB7 uC
W układzie widać, że użyliśmy komunikacji 8-bitowej (D0-D7), jednak nie jest to obowiązkowe, możemy użyć komunikacji 4-bitowej (D4-D7), ale przy 4-bitowej komunikacji program staje się nieco skomplikowany.
Czyli obserwując powyższą tabelę podłączamy 10 pinów LCD do kontrolera, w których 8 pinów to pinów danych i 2 pinów do sterowania.
Zanim przejdziemy dalej, należy wiedzieć, że moduł pojemnościowy działa przy napięciu 2,5V. A także prąd pobierany przez moduł dotykowy nie jest wysoki. Aby uzyskać 2,5 V dla modułu z 5 V, użyjemy obwodu dzielnika napięcia.
Obwód dzielnika napięcia utworzony z rezystorów pokazano na poniższym rysunku.
Teraz obwód dzielnika napięcia zapewnia niskie napięcia dla modułów i innych odniesień. Jak pokazano na rysunku, napięcie wyjściowe w punkcie środkowym jest stosunkiem rezystancji. Tak więc, aby uzyskać 2,5 V z 5 V, użyjemy R1 = R2 = 1 KΩ, więc dla napięcia zasilania 5 V napięcie punktu środkowego będzie wynosić 2,5 V w stosunku do ziemi. To napięcie z obwodu dzielnika jest podłączone do modułu. Kondensator jest podłączony do niego w celu filtrowania harmonicznych, jak pokazano na schemacie obwodu.
Port wyjściowy modułu dotykowego jest podłączony do kontrolera Atmega, więc za każdym dotknięciem padu odpowiedni pin wyjściowy przechodzi w stan wysoki. Ta zmiana logiki jest wyczuwana przez kontroler. Sterownik pokazuje cyfrę na wyświetlaczu LCD na podstawie pinu, która idzie w górę.
Ze względów bezpieczeństwa można wyciągnąć wszystkie piny wyjściowe modułu do masy przez rezystory 10K, chociaż nie jest to obowiązkowe.
Działanie INTERFEJSU TOUCH KEAYPAD najlepiej wyjaśnić krok po kroku w kodzie C podanym poniżej.