In dieser Sitzung werden wir ein 8x8-LED-Display mit 8x8-LED-Matrix und ATmega8-Mikrocontroller entwerfen, das Alphabete oder Namen anzeigen kann. Eine typische 8x8-LED-Matrix ist unten dargestellt:
Eine 8x8-LED-Matrix enthält 64 LED (Light Emitting Diodes), die in Form einer Matrix angeordnet sind, daher der Name LED-Matrix. Diese Matrizen können durch Schalten von 64 LEDs hergestellt werden; Dieser Vorgang ist jedoch zeitaufwändig. Heute sind sie in kompakten Formen erhältlich (siehe Abbildung). Diese kompakten Module sind in verschiedenen Größen und vielen Farben erhältlich. Man kann sie bequem auswählen.
Die Kosten für das Modul entsprechen den Kosten für 64 LED. Für einen Bastler ist dies am einfachsten zu bearbeiten. Die PIN-Konfiguration des Moduls entspricht der Abbildung. Die PINs sollten genau wie in der Abbildung gezeigt nummeriert sein, um Fehler zu vermeiden. Wir werden die interne Schaltungskonfiguration des Moduls in der Beschreibung ausführlich diskutieren.
Komponenten
Hardware: ATMEGA8, Netzteil (5 V), AVR-ISP-PROGRAMMER, 100-uF-Kondensator (über das Netzteil angeschlossen), 1 kΩ-Widerstand (8 Stück).
Software: Atmel Studio 6.1, Progisp oder Flash Magic.
Schaltplan und Arbeitsweise
Die Verbindungen, die zwischen ATMEGA8 und LED-Matrixmodul hergestellt werden, sind in der folgenden Abbildung dargestellt.
PORTD, PIN0 ------------------ PIN13 des LED-Moduls
PORTD, PIN1 ------------------ PIN03 des LED-Moduls
PORTD, PIN2 ------------------ PIN04 des LED-Moduls
PORTD, PIN3 ------------------ PIN10 des LED-Moduls
PORTD, PIN4 ------------------ PIN06 des LED-Moduls
PORTD, PIN5 ------------------ PIN11 des LED-Moduls
PORTD, PIN6 ------------------ PIN15 des LED-Moduls
PORTD, PIN7 ------------------ PIN16 des LED-Moduls
PORTB, PIN0 ------------------ PIN09 des LED-Moduls
PORTB, PIN1 ------------------ PIN14 des LED-Moduls
PORTB, PIN2 ------------------ PIN08 des LED-Moduls
PORTB, PIN3 ------------------ PIN12 des LED-Moduls
PORTC, PIN0 ------------------ PIN01 des LED-Moduls
PORTC, PIN1 ------------------ PIN07 des LED-Moduls
PORTC, PIN2 ------------------ PIN02 des LED-Moduls
PORTC, PIN3 ------------------ PIN05 des LED-Moduls
Das Schaltbild der 8x8-LED-Matrixanzeige ist in der folgenden Abbildung dargestellt.
Es gibt 64 LED in Matrixform. Wir haben also 8 Spalten und 8 Zeilen, wie in der Abbildung gezeigt. Über diese Zeilen und Spalten werden alle positiven Anschlüsse in einer Zeile zusammengeführt. Für jede Zeile gibt es einen gemeinsamen positiven Anschluss für alle 8 LEDs in dieser Zeile. Es ist in der folgenden Abbildung dargestellt:
Für 8 Zeilen haben wir also 8 gemeinsame positive Anschlüsse. Betrachten Sie die erste Zeile. Wie in der Abbildung zu sehen ist, haben die LEDs von D1 bis D8 einen gemeinsamen Pluspol und werden als PIN9 aus dem LED-MODUL herausgeführt.
Es sollte beachtet werden, dass alle gemeinsamen Positiven von Zeilen nicht in geordneter Weise aus dem LED-MODUL herausgebracht werden. In jedem Fall gibt es an gemeinsamen Terminals sehr Unregelmäßigkeiten. Dies sollte beim Anschließen des Terminals beachtet werden.
Wenn eine oder alle LEDs in der ersten Reihe der Matrix eingeschaltet sein sollen, sollten wir die PIN9 des LED-MATRIX-MODULS und nicht die PIN0 mit Strom versorgen.
Wenn eine oder alle LEDs in der dritten Zeile der Matrix eingeschaltet sein sollen, sollten wir die PIN8 des LED-MATRIX-MODULS und nicht die PIN2 mit Strom versorgen.
Wenn also eine oder alle LEDs in einer REIHE leuchten sollen, wird der entsprechende Pin des LED-MODULS mit Strom versorgt.
Dies ist noch nicht vorbei, wenn man nur die Power ROWS verlässt, ergibt sich nichts. Wir müssen das andere Ende erden. Wir werden es unten diskutieren.
In diesem Fall ignorieren wir die gemeinsamen positiven Zeilen und konzentrieren uns auf gemeinsame negative Spalten.
In diesem Modul werden also alle negativen Anschlüsse der ersten Spalte zur PIN13 zusammengeführt. Dies ist in der folgenden Abbildung dargestellt.
Auch hier gibt es Unregelmäßigkeiten im PIN-AUSGANG des Moduls. Das gemeinsame Negativ der LEDs der ersten Spalte wird an PIN13 angezeigt. Das gemeinsame Negativ der zweiten Spalte der LEDs wird an PIN3 angezeigt.
Man sollte beim Anschließen auf die Stifte achten. Wenn nun eine oder alle LEDs in der ersten Spalte geerdet werden sollen, muss PIN13 des MATRIX-MODULS geerdet werden. Dieser Weg führt alle zu den anderen sieben gemeinsamen negativen Spalten. Wenn beide Fälle zusammengefügt werden, stoßen wir auf eine Schaltung, wie unten gezeigt.
Die obige Schaltung ist das vollständige interne Diagramm des LED-MODULS. Angenommen, wir möchten die LED D10 in der Matrix einschalten, müssen wir die PIN14 des Moduls mit Strom versorgen und die PIN3 am Modul erden. Damit schaltet sich der D10 ein. Dies ist in der folgenden Abbildung dargestellt. Dies sollte zuerst überprüft werden, ob MATRIX alles in der richtigen Reihenfolge weiß.
Wenn wir D1 einschalten möchten, müssen wir die PIN9 der Matrix mit Strom versorgen und die PIN13 erden. Mit dieser LED leuchtet D1. Die aktuelle Richtung für diesen Fall ist in der folgenden Abbildung dargestellt.
Betrachten wir nun den kniffligen Teil, wir möchten sowohl D1 als auch D10 gleichzeitig einschalten. Wir versorgen also sowohl PIN9, PIN14 als auch PIN13, PIN3. Damit haben wir D2 und D9 zusammen mit D1 und D10 eingeschaltet. Es ist, weil sie gemeinsame Terminals teilen. Wenn wir also LEDs entlang der Diagonale einschalten möchten, müssen wir alle LEDs auf dem Weg einschalten. Dies ist in der folgenden Abbildung dargestellt.
Um dieses Problem zu beheben, schalten wir jeweils nur eine LED ein. Sagen wir bei t = 0m SEC, LED D1 ist eingeschaltet. Bei t = 1 m SEC wird die LED D1 ausgeschaltet und die LED D2 eingeschaltet. Wieder bei t = 2 m SEC wird die LED D2 ausgeschaltet und die LED D1 eingeschaltet. Das geht weiter.
Der Trick ist nun, dass das menschliche Auge eine Frequenz von mehr als 30 Hz nicht erfassen kann. Dies ist der Fall, wenn eine LED kontinuierlich mit einer Frequenz von 30 Hz oder mehr ein- und ausgeschaltet wird. Das Auge sieht die LED als dauerhaft an. Dies ist jedoch nicht der Fall. Die LED leuchtet ständig ein und aus. Diese Technik wird als Multiplexing bezeichnet.
Durch Multiplexing werden jeweils nur eine Zeile gedreht, und die 8 Zeilen werden kontinuierlich umrundet. Dies wird als vollständig eingeschaltete Matrix für ein bloßes Auge dargestellt.
Angenommen, wir möchten "A" in der Matrix anzeigen.
Wie gesagt, wir werden gleich eine Zeile einschalten, Bei t = 0 m SEC wird PIN09 zu diesem Zeitpunkt auf HIGH gesetzt (andere ROW-Pins sind zu diesem Zeitpunkt LOW). PIN3, PIN4, PIN10, PIN6, PIN11, PIN15 sind geerdet (andere COLUMN-Pins sind zu diesem Zeitpunkt HIGH).
Bei t = 1 m SEC wird PIN14 zu diesem Zeitpunkt auf HIGH gesetzt (andere ROW-Pins sind zu diesem Zeitpunkt LOW). PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 sind geerdet (andere COLUMN-Pins sind zu diesem Zeitpunkt HIGH)
Bei t = 2 m SEC wird PIN08 zu diesem Zeitpunkt auf HIGH gesetzt (andere ROW-Pins sind zu diesem Zeitpunkt LOW), PIN13, PIN3, PIN15, PIN16 sind geerdet (andere COLUMN-Pins sind zu diesem Zeitpunkt HIGH).
Bei t = 3 m SEC wird PIN12 zu diesem Zeitpunkt auf HIGH gesetzt (andere ROW-Pins sind zu diesem Zeitpunkt LOW), PIN13, PIN3, PIN15, PIN16 sind geerdet (andere COLUMN-Pins sind zu diesem Zeitpunkt HIGH).
Bei t = 4 m SEC wird PIN01 zu diesem Zeitpunkt auf HIGH gesetzt (andere ROW-Pins sind zu diesem Zeitpunkt LOW). PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 sind geerdet (andere COLUMN-Pins sind zu diesem Zeitpunkt HIGH)
Bei t = 5 m SEC wird PIN07 zu diesem Zeitpunkt auf HIGH gesetzt (andere ROW-Pins sind zu diesem Zeitpunkt LOW). PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 sind geerdet (andere COLUMN-Pins sind zu diesem Zeitpunkt HIGH)
Bei t = 6 m SEC wird PIN02 zu diesem Zeitpunkt auf HIGH gesetzt (andere ROW-Pins sind zu diesem Zeitpunkt LOW), PIN13, PIN3, PIN15, PIN16 sind geerdet (andere COLUMN-Pins sind zu diesem Zeitpunkt HIGH).
Bei t = 7 m SEC wird PIN05 zu diesem Zeitpunkt auf HIGH gesetzt (andere ROW-Pins sind zu diesem Zeitpunkt LOW), PIN13, PIN3, PIN15, PIN16 sind geerdet (andere COLUMN-Pins sind zu diesem Zeitpunkt HIGH).
Bei dieser Geschwindigkeit wird auf dem Display kontinuierlich das Zeichen „A“ angezeigt. Es ist in der Abbildung dargestellt.
So werden alle Zeichen angezeigt. Nach ordnungsgemäßem Anschluss des Stromkreises, wie im Schaltplan gezeigt. Wir können dem Controller direkt Anweisungen geben, um das Multiplexen in geordneter Weise durchzuführen, damit der Name angezeigt wird.