Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Schritt 1: Erstellen einer LED-Matrix
- Schritt 2: Schritt 2: Verdrahten der Drucktasten und Schieberegister
- Schritt 3: Schritt 3: Hochladen des Codes
- Schritt 4: Zusätzliche Informationen/Ressourcen
Video: Drucktasten-LED-Matrix - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Dieses Projekt kann als ein weiteres einführendes Arduino-Projekt angesehen werden, das etwas fortgeschrittener ist als Ihr typisches "Blinken einer LED" -Projekt. Dieses Projekt enthält eine LED-Matrix, Drucktasten, Schieberegister (die Pins auf Ihrem Arduino-Board sparen können) und ein Schlüsselkonzept namens Multiplexing. Ich hoffe, dass Sie das Tutorial aufschlussreich finden und sich selbst herausfordern, es zu verbessern!
Lieferungen
(1x) Arduino Uno
(5x) Taktile Drucktasten
(2x) 0,1 uF Kondensatoren
(2x) 1 uF Kondensatoren
(8x) 1k Widerstände
(5x) 10k Widerstände
(2x) 74HC595 Schieberegister
Überbrückungsdrähte
Schwarzes Kabel
Rotes Kabel
Schritt 1: Schritt 1: Erstellen einer LED-Matrix
Das Tutorial, mit dem ich die 8x8-LED-Matrix in diesem Projekt erstellt habe, finden Sie hier. Es gibt gängige Konfigurationen für eine LED-Matrix:
a) Gemeinsame Reihenanode
b) Gemeinsame Reihenkathode
Da ich die Common Row Cathode-Anordnung der Matrix verwendet habe, werde ich sie hier hauptsächlich diskutieren und Sie können die gleiche Logik auf die Common Row Anode-Anordnung erweitern. In der Common Row Cathode-Anordnung sind die Kathoden der LEDs (oder die negativen Anschlüsse, die der kürzere Schenkel einer LED ist) in Reihen miteinander verbunden, während die Anoden (oder die positiven Anschlüsse, der längere Schenkel einer LED) in Spalten miteinander verbunden sind. Um eine bestimmte LED anzusprechen, ziehen Sie die Kathodenzeile, bei der die LED-Kathode auf Low ist, und ziehen Sie die Anodenspalte, bei der die LED-Anode auf High ist.
Hinweis: Wenn Sie die im obigen Link gezeigte LED-Matrix herstellen, stellen Sie sicher, dass Sie die Anodenspalten mit den 1k-Ohm-Widerständen verbinden, bevor Sie eine Spannung an die LEDs anlegen.
Schritt 2: Schritt 2: Verdrahten der Drucktasten und Schieberegister
Die Verdrahtung für die Taster und Schieberegister ist oben dargestellt. Ich möchte darauf hinweisen, dass die Schieberegister im Schaltplan die Pins für Masse (Pin 8 des IC) und Vcc oder Stromversorgung (Pin 16 des IC) für die Chips nicht anzeigen; Der Massestift ist mit dem GND-Pin des Arduino-Boards verbunden und Vcc ist mit dem 5V-Pin des Arduino-Boards verbunden. Der Vcc-Pin jedes Schieberegisters ist auch mit einem 0,1uF-Kondensator verbunden, der mit Masse verbunden ist.
Hinweis: Die Ausgänge jedes Schieberegisters werden als QA bis QH aufgelistet (QH ignorieren*). Sie werden in Bezug auf das niedrigstwertige Bit (LSB) (für QA) bis zum höchstwertigen Bit (MSB) (für QH) aufgelistet, d. h. QA würde die 0. Reihe oder Spalte usw. steuern.
Schritt 3: Schritt 3: Hochladen des Codes
Der Code zur Steuerung der LED-Matrix ist diesem Tutorial beigefügt. Ich habe versucht, so viel wie möglich vom Code zu kommentieren, damit es sehr klar ist, wie das Programm funktioniert. Die Hauptgrundlage des Programms ist eine Matrix, die verfolgt, welche LEDs ein- oder ausgeschaltet werden sollen. Um die verschiedenen LEDs korrekt anzeigen zu lassen, ohne versehentlich unerwünschte Dioden einzuschalten, verwenden Sie ein Konzept namens Multiplexing. Beim Multiplexen leuchten im Wesentlichen einzelne LEDs in einer bestimmten Reihe auf, während alle anderen LEDs in anderen Reihen aufleuchten, und dann dasselbe für die verbleibenden Reihen. Der Trick besteht darin, dass Ihre Augen erkennen können, dass einzelne Reihen nacheinander beleuchtet werden, wenn die LEDs schnell genug durch die Reihen schalten. Wenn Sie weitere Möglichkeiten erkunden möchten, wie Sie Ihre Augen mit LEDs austricksen können, sollten Sie sich das Konzept der Persistenz des Sehvermögens ansehen (leicht auf Google oder Instructables durchsuchbar).
Die Aktualisierung der Anodenspalten und Kathodenzeilen erfolgt über eine benutzerdefinierte Funktion namens 'UpdateShiftRegisters'. Diese Funktion schaltet zuerst den Latch-Pin, der steuert, ob ein neues Byte (8 Bit) an den Ausgang gesendet wird, auf Low, sodass keine Änderungen an den Ausgängen möglich sind, während neue Bits auf den Chip geschrieben werden. Dann schreibt das Programm mit einer eingebauten Arduino-Funktion namens 'ShiftOut', die speziell das Senden von Daten an Schieberegister behandelt, welche (Kathoden-)Zeile niedrig und welche (Anoden-)Spalten hoch sein sollten. Schließlich wird der Verriegelungsstift hochgezogen, um den Ausgang (die LEDs) zu aktualisieren.
Schritt 4: Zusätzliche Informationen/Ressourcen
Hier sind einige Links zu Websites oder Büchern, die möglicherweise zusätzliche Informationen zu diesem Projekt enthalten:
learn.adafruit.com/adafruit-arduino-lesson-4-eight-leds/arduino-code
www.arduino.cc/en/tutorial/ShiftOut
www.ti.com/lit/ds/symlink/sn74hc595.pdf
www.youtube.com/watch?v=7VYxcgqPe9A
www.youtube.com/watch?v=VxMV6wGS3NY
Erste Schritte mit Arduino, 2. Auflage von Massimo Banzi