Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
2 sposoby zarządzania 16-przyciskową klawiaturą z minimalną liczbą pinów.
Krok 1: Wprowadzenie
Ostatnio pracowałem nad sposobem zarządzania matrycą klawiatury dotykowej 4x4 podłączoną do klonu Arduino. Ustalone punkty to:
-użycie tylko 4+1 pinów zamiast 8 pinów na atmega328p
-dodanie wyświetlacza LCD 4x20 CHAR link przez I2C (2 piny)
-do sterowania wyjściami cyfrowymi i analogowymi.
Tak więc, posiadanie wielu rzeczy do kontrolowania przy grzesznej ilości I/O.
Krok 2: Rzeczy do użycia:
Kupiłem wyświetlacz LCD 4x20 znaków i adapter modułu I2C do połączenia wyświetlacza z pinami SDA (A4) i SCL (A5) na moim klonie arduino.
Używam słynnego i już przestarzałego MM74C922N: konwertera 8 na 4 sposoby pasującego do matrycy 4x4.
Stworzyłem klon arduino oparty na atmega328p i zaprogramowany poprzez złącze HE10 (magistrala SPI) i kabel USBasp.
Krok 3: Schemat i tablica:
Tablica wykonana jest z:
- klawiatura LCD działa tylko z Arduino IDE, nie jest możliwa z LDmicro (programowanie drabinkowe)
-płyta MM74C922N: 16 przycisków zakodowanych na 16 wartościach binarnych na 4 bitach DCBA. Po naciśnięciu przycisku: zapala się niebieska dioda, a na DCBA pojawia się wartość (A to LSB). Po zwolnieniu przycisku: niebieska dioda LED zgaśnie, a wartość zostanie wyzerowana na DCBA.
-Płytka klonowania Arduino atmega238p.
Krok 4: Używanie LDmicro z programowaniem drabinkowym:
Kod do wprowadzenia składa się z 4 wartości spośród 16 naciśniętych klawiszy, czyli 16x16x16x16 kombinacji.
Kiedy już narysujesz SFC, musisz przetłumaczyć go na DRABINĘ za pomocą metody podanej w jednym z moich
instrukcje:
www.instructables.com/id/Arduino-tomation-…
Po wpisaniu skompiluj go jako xxxx.hex, a następnie pobierz za pomocą programu do pobierania KHAZAMA.
Wyświetlacza LCD nie można zaprogramować na LDmicro.
Daję LDmicro zip ze szkicem SERRURE.id w nim i downloaderem KHAZAMA.
Krok 5: Używanie Arduino IDE 1.8.x z Mightycore i SMlib:
Tłumaczę SFC na maszynę stanów. Następnie użyłem Arduino IDE z biblioteką Mightycore i SM w środku.
Na wyświetlaczu LCD wyświetlam komunikat typu: ERROR, WAITING, UNLOCK, stan osiągnięty, wartość naciśniętego klawisza.
Daję ci szkic i bibliotekę SM. Dla Mightycore spójrz na to:
www.instructables.com/id/Arduino-18x-Clone…
Krok 6: Podsumowując:
Są to dwa sposoby zarządzania klawiaturą 16 i zajęło mi kilka godzin, aby znaleźć dobrą sekwencję, ale teraz działa dobrze. Musisz przestrzegać tych kroków:
-1 wykryj klawisz naciśnięty na rosnącej krawędzi szpilki DA
-2 odczytaj wartość wygenerowaną na DCBA i porównaj z dobrą
Chyba że na pewno nie zadziała.
Dzięki wszystkim ciekawym tutorialem w sieci.