Inhaltsverzeichnis:

Drucktasten-LED-Matrix - Gunook
Drucktasten-LED-Matrix - Gunook

Video: Drucktasten-LED-Matrix - Gunook

Video: Drucktasten-LED-Matrix - Gunook
Video: PixBlock - 8x8 LED Matrix Display von fab4U - Grundlagen 2024, November
Anonim
Taster-LED-Matrix
Taster-LED-Matrix

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

Schritt 1: Erstellen einer LED-Matrix
Schritt 1: Erstellen einer LED-Matrix
Schritt 1: Erstellen einer LED-Matrix
Schritt 1: Erstellen einer LED-Matrix
Schritt 1: Erstellen einer LED-Matrix
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

Schritt 2: Verdrahten der Drucktasten und Schieberegister
Schritt 2: Verdrahten der Drucktasten und Schieberegister
Schritt 2: Verdrahten der Drucktasten und Schieberegister
Schritt 2: Verdrahten der Drucktasten und Schieberegister
Schritt 2: Verdrahten der Drucktasten und Schieberegister
Schritt 2: Verdrahten der Drucktasten und Schieberegister
Schritt 2: Verdrahten der Drucktasten und Schieberegister
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