In diesem Tutorial werden wir mit Arduino Uno ein 8x8 LED Matrix Scrolling Display entwerfen, das scrollende Alphabete anzeigt.
Die 8x8-LED-Matrix enthält 64 LEDs (Leuchtdioden), die in Form einer Matrix angeordnet sind. Daher lautet der Name LED-Matrix. Wir werden diese Matrix herstellen, indem wir diese 64 LEDs auf das Perfboard oder die DOT-Platine löten. Die LEDs können jede Farbe haben. Wählen Sie die LEDs aus, die bei Ihnen erhältlich sind. Dann werden wir ein Programm für Arduino schreiben, um diese 64-LED-Matrix zu steuern. Die UNO aktiviert laut Programm die entsprechenden LEDs, um Zeichen im Bildlauf anzuzeigen.
Erforderliche Komponenten:
- Arduino Uno
- 64 LEDs
- Perfboard mit anderen Lötwerkzeugen
- 1KΩ Widerstand (8 Stück)
- Stromversorgung (5V)
Schaltung und Funktionserklärung:
Es gibt 64 LEDs, die in einer Matrixform angeordnet sind. Wir haben also 8 Spalten und 8 Zeilen. Ü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 gezeigt, haben 8 LEDs von D57 bis D64 einen gemeinsamen positiven Anschluss und sind mit 'POSITIVE0' gekennzeichnet. Wenn wir nun eine oder alle LEDs in der ersten Reihe der Matrix leuchten lassen möchten, sollten wir die PIN0 der LED-Matrix mit Strom versorgen. Wenn wir eine LED (oder alle) in einer REIHE leuchten lassen möchten, müssen wir den entsprechenden Common Positive Terminal Pin der jeweiligen Zeile mit Strom versorgen.
Dies ist noch nicht vorbei und nur die MATRIX ROWS mit positivem Angebot zu belassen, bringt nichts. Wir müssen die Negative der LEDs erden, damit sie leuchten. In der 8x8-LED-Matrix werden also alle negativen Anschlüsse der LEDs in einer beliebigen Spalte zu acht gemeinsamen negativen Anschlüssen zusammengeführt , so wie alle negativen Anschlüsse in der ersten Spalte mit der PIN-A1 (NEGATIVE7) verbunden sind. Dies ist in der folgenden Abbildung dargestellt:
Man sollte auf diese Stifte achten, wenn man die LEDs auf Perfboard löte.
Wenn wir nun eine LED in der ersten Spalte erden müssen, erden wir die PIN-A1 (NEGATIVE7) der MATRIX und erden alle LEDs in der ersten Spalte. Der gleiche Vorgang gilt für alle anderen sieben gemeinsamen negativen Spalten.
Seitdem wissen Sie, wie Common Positive und Common Negative funktionieren. Lassen Sie uns sie zusammenfügen, um zu sehen, wie sie zusammenarbeiten, und die endgültige 8x8-LED-Matrixanzeige für das Scrollen sieht folgendermaßen aus:
Fahren einer 8x8 LED Matrix mit Multiplexing:
Nehmen wir nun an, wir möchten LED57 einschalten, dann müssen wir PIN0 von UNO mit Strom versorgen und PIN-8 von UNO erden. Um nun sowohl LED57 als auch LED50 einzuschalten, müssen wir PIN0, PIN1 mit Strom versorgen und PIN8, PIN9 erden. Dadurch werden jedoch nicht nur D57, D50, sondern auch D49, D58 eingeschaltet. Um dies zu vermeiden, verwenden wir eine Technik namens Multiplexing. Wir haben diese Multiplex-Technik bereits in der 8x8-LED-Matrix ausführlich besprochen. Lesen Sie diesen Artikel für eine detaillierte Erklärung. Hier erklären wir kurz das Multiplexing.
Das menschliche Auge kann eine Frequenz von mehr als 30 Hz nicht erfassen. 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 und die LED leuchtet tatsächlich ständig ein und aus. Diese Technik wird als Multiplexing bezeichnet.
Nehmen wir zum Beispiel an, wir möchten nur LED57 und LED50 einschalten, ohne D49 und D58 einzuschalten. Der Trick ist, wir werden zuerst die erste Reihe mit Strom versorgen, um LED57 einzuschalten und auf 1 ms zu warten, und dann werden wir sie ausschalten. Dann versorgen wir die zweite Reihe mit Strom, um LED50 einzuschalten, warten auf 1 ms und schalten sie dann aus. Der Zyklus läuft kontinuierlich mit hoher Frequenz und LED57 und LED50 werden schnell ein- und ausgeschaltet und beide LEDs scheinen für unser Auge kontinuierlich zu leuchten. Dies bedeutet, dass wir jeweils nur eine Reihe mit Strom versorgen, wodurch die Möglichkeit ausgeschlossen wird, andere LEDs in anderen Reihen einzuschalten. Wir werden diese Technik verwenden, um alle Zeichen anzuzeigen.
Es gibt auch eine Bibliothek namens LedControlMS.h , um all diese Komplexität des Multiplexens zu bewältigen. Sie müssen nur das Zeichen oder die Zahl eingeben, die Sie auf die LED-Matrix drucken möchten. Weitere Informationen finden Sie in dieser Arduino LED-Matrix mit dem MAX7219-Projekt.
Programmiererklärung:
In unserem Code haben wir für jedes Zeichen einen Dezimalwert geschrieben und diese Werte in das Arduino programmiert. Das Programm hat geschrieben, um diese Werte alle 0,2 Sekunden in die nächste Zeile zu verschieben. Dies wird als Scrollen der Zeichen nach oben angesehen. Es ist sehr einfach.
Um die anzuzeigenden Zeichen zu ändern, ersetzen Sie einfach den Wert im char ALPHA- Array gemäß den unten angegebenen Zeichenwerten.
24,60,102,126,102,102,102,0,0,0, // A 124,102,102,124,102,102,124,0,0,0, // B 60,102,96,96,96,102,60,0, 0,0, // C 120,108,102,102,102,108,120,0, 0,0, // D 126,96,96,120,96,96,126,0, 0,0, // E 126,96,96,120,96,96,96,0, 0,0, // F 60,102,96,110,102,102,60, 0, 0,0, // G 102,102,102,126,102,102,102,0, 0,0, // H 60,24,24,24,24,24,60,0, 0,0, // I 30,12,12,12 12,108,56,0, 0,0, // J 102,108,120,112,120,108,102,0, 0,0, // K 96,96,96,96,96,96,126,0, 0,0, // L 99,119,127,107,99, 99,99,0, 0,0, // M 102,118,126,126,110,102,102,0, 0,0, // N 60,102,102,102,102,102,60,0, 0,0, // O 124,102,102,124,96,96,96,0, 0,0, // P 60,102,102,102,102,60,14,0, 0,0, // Q 124,102,102,124,120,108,102,0, 0,0, // R 60,102,96,60,6,102,60,0, 0,0, // S 126, 24,24,24,24,24,24,0, 0,0, // T 102,102,102,102,102,102,60,0, 0,0, // U 102,102,102,102,102,60,24,0, 0,0, // V. 99,99,99,107,127,119,99,0, 0,0, // W 102,102,60,24,60,102,102,0, 0,0, // X 102,102,102,60,24,24,24,0, 0,0, // Y 126,6,12 24,48,96,126,0, 0,0, // Z.
Wenn Sie beispielsweise DAD in der LED-Matrix anzeigen möchten, ersetzen Sie zuerst die Zeichenwerte im char ALPHA- Array, indem Sie Werte für die Zeichen D, A und D aus der obigen Liste eingeben:
char ALPHA = {0,0,0,0,0,0,0,0,0,0,0, 120,108,102,102,102,108,120,0,0,0, 24,60,102,126,102,102,102,0,0,0, 120,108,102,102,102,108,120,0,0, 0, 0,0,0,0,0,0,0,0,0,0,0};
Die Gesamtwerte betragen jetzt 5 * 10 = 50 Werte
Ersetzen Sie für (int x = 0; x <142; x ++) // 150-8 (um den Überlauf zu stoppen) {…….. durch, für (int x = 0; x <42; x ++) // 50-8 (um den Überlauf zu stoppen) {……..
Sie müssen also nur die Nummer ändern.
Damit haben Sie die Programmierung getan und jetzt können Sie einen beliebigen Text Blättern Sie auf der 8x8 LED - Matrix, überprüfen Sie den vollständigen Code unten mit einer Demonstration Video.