Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
2 Möglichkeiten, eine Tastatur mit 16 Tasten mit einem Minimum an Pins zu verwalten.
Schritt 1: Einführung
Ich habe vor kurzem daran gearbeitet, eine 4x4-Touch-Tastaturmatrix zu verwalten, die mit einem Arduino-Klon verbunden ist. Die Sollwerte waren:
-um nur 4+1 Pins statt 8 Pins auf dem atmega328p zu verwenden
-um ein LCD Display 4x20 CHAR Link über I2C (2 Pins) hinzuzufügen
-zur Steuerung von digitalen und analogen Ausgängen.
Also, eine Menge Dinge zu kontrollieren mit einer Sinus-Menge an I/O.
Schritt 2: Zu verwendende Dinge:
Ich habe ein LCD-Display mit 4x20 Zeichen und einen I2C-Moduladapter gekauft, um das Display mit SDA (A4) und SCL (A5) Pins an meinem Arduino-Klon zu verbinden.
Ich verwende das berühmte und mittlerweile veraltete MM74C922N: ein 8-auf-4-Wege-Konverter, der auf die 4x4-Matrix-Tastatur passt.
Ich habe einen Klon des Arduino basierend auf dem atmega328p erstellt und über einen HE10-Anschluss (SPI-Bus) und ein USBasp-Kabel programmiert.
Schritt 3: Schema und das Board:
Das Brett besteht aus:
-die LCD-Tastatur nur mit Arduino IDE verwenden, nicht mit LDmicro (Ladder-Programmierung) möglich
-die Karte MM74C922N: 16 Drucktasten, die auf 16 Binärwerten auf 4 Bit DCBA codiert sind. Wenn eine Taste gedrückt wird: Die blaue LED leuchtet und ein Wert erscheint auf DCBA (A ist das LSB). Wenn eine Taste losgelassen wird: Die blaue LED erlischt und der Wert wird am DCBA auf Null zurückgesetzt.
-das Arduino atmega238p Klonboard.
Schritt 4: Verwenden von LDmicro mit Leiterprogrammierung:
Der einzugebende Code besteht aus 4 Werten unter 16 Tastendrücken, also 16x16x16x16 Kombinationen.
Sobald Sie die SFC gezeichnet haben, müssen Sie sie mit der in einem meiner. angegebenen Methode in LADDER übersetzen
instructables:
www.instructables.com/id/Arduino-tomation-…
Nach der Eingabe kompilieren Sie es als xxxx.hex und laden Sie es dann mit dem KHAZAMA-Downloader herunter.
Das LCD-Display kann auf LDmicro nicht programmiert werden.
Ich gebe LDmicro zip mit der Skizze SERRURE.id und dem KHAZAMA Downloader.
Schritt 5: Verwenden von Arduino IDE 1.8.x mit Mightycore und SMlib:
Ich übersetze den SFC in eine Zustandsmaschine. Dann habe ich Arduino IDE mit der Mightycore- und SM-Bibliothek verwendet.
Ich zeige Meldungen wie: ERROR, WAITING, UNLOCK, State erreicht, Wert der gedrückten Taste auf dem LCD-Display an.
Ich gebe Ihnen die Skizze und die SM-Lib. Für Mightycore schau dir das an:
www.instructables.com/id/Arduino-18x-Clone…
Schritt 6: Zum Abschluss:
Dies sind zwei Möglichkeiten, die 16-Tastatur zu verwalten, und ich habe mehrere Stunden gebraucht, um die gute Sequenz zu finden, aber jetzt funktioniert es gut. Sie müssen diese Schritte beachten:
-1 erkennt einen Tastendruck an einer steigenden Flanke des DA-Pins
-2 den auf DCBA generierten Wert lesen und mit dem guten vergleichen
Es sei denn, es wird sicherlich nicht funktionieren.
Danke an alle interessanten Tutorials im Netz.