Guten Abend Zusammen, ich habe mir eine 8x32 bzw. 4x8x8 Led-Dot-Matrix gekauft. Ich habe sie soweit auch zum laufe gebracht (mithilfe der "LedControl" Libary). Dabei habe ich eine Arduino Uno verwendet. Jetzt will ich aber eine leichtere Möglichkeit finden einen Text auf dieser Matrix anzuzeigen. Ich habe hierzu keine Möglichkeit gefunden, wie man einen String darauf abbilden kann. Habt ihr eine Idee wie ich am Einfachsten z.B. "Hallo" in meinen Programm definiere und dieser dann auf meiner Matrix angezeigt wird? Gibt es hierzu eine bessere Libary? Welche Erfahrungen habt ihr mit so einer Matrix gemacht? Dieser Text soll sich auch im Laufe des Programms ändern. Am Schluss würde ich gerne eine Uhr daraus basteln. Vielen Dank für eure Hilfe.
:
Bearbeitet durch User
Hi Wie werden die Pixel in die Matrix reingeschoben? Sind die ersten 64 Bit die erste 8x8-Matrix? Wenn die 'Byte' immer eine senkrechte Reihe darstellen, musst Du 'nur' die 5 Bytes pro Zeichen definieren und entsprechend in die Matrix reintakten. 'Nach Hinten' schieben müsste gehen, wenn die Anzeige aber 'nach Vorne' gescrollt werden soll, wird der aktuelle Inhalt komplett erneut gesendet werden müssen - ist ja 'nur' ein Schieberegister und kein eigenständiger µC, Welcher Sich um die Darstellung kümmert. MfG
Es handelt sich um folgende Matrix: https://www.amazon.de/gp/aw/d/B06XJ9ZX17/ref=mp_s_a_1_2?__mk_de_DE=ÅMÅZÕÑ&qid=1509569541&sr=8-2&pi=AC_SX236_SY340_QL65&keywords=8x8+led+matrix&dpPl=1&dpID=51omLWzGN%2BL&ref=plSrch Ich würde hierbei schon gerne einen Mikrokontroller verwenden da dieser noch mehrere Aufgaben erledigen soll.
Ja, die Zauber-librarys... Hier findest du Anregungen: Beitrag "Zeichensatz 8x5 für Led Display" Trenne die Teilaufgaben. Der erste Teil besteht darin, einen RAM-Bereich (32Byte) vie SPI aufs Display zu schreiben. Jedem gesetzten Bit entspricht eine leuchtende LED. Die Ausgaben kann man zyklisch machen oder eben nur, wenn sich was ändern soll. Die zeitkritischen Sachen nimmt dir schon der MAX7219 ab. Der zweite Schritt wäre dann dann das erstellen (oder finden) eines passenden Zeichsatzes. Und der dritte Schritt wäre dann das Erstellen einer Routine, die einen string (den du z.B. mit sprintf() erhälst umcodiert, in den RAM schreibst und ausgibst. Ja, ist einiges an Arbeit, aber du wirst viel lernen dabei. Mehr, als eine fertige lib zu benutzen, falls es die gibt.
Hallo, ich hab eine Uhr mit genau dem Prinzp realisiert, siehe youtube: https://www.youtube.com/watch?v=rP4nDXz-_9c Falls gewünscht kann ich den Quellcode zur Verfügung stellen. Es sind 28 MAX7219 drin (7x4). Das kann aber auch gekürzt werden auf nur vier. Gruß Thomas
Hi Lukas, ganz einfach: Genial!! Hehe... ;-) Aber im Ernst: Die MAX sind kaskadiert und werden seriell beschrieben wie vorgesehen. Das geht mit DREI Drähten (ja, nur drei!) Im Flash sind alle ASCII Zeichen abgelegt als Bitmuster, auch das 'ä' im März. Ich hab eine Funktion die als Parameter das darzustellende Zeichen, X,Y und einen Scrollwert bekommt. Damit kann ich jedes Zeichen an jede Stelle das Displays schreiben, auch verteilt auf mehrere MAX. Diese Funktion holt also das entsprechende Zeichen ausm Flash und schreibt es an die richtige Position im Display Array. Das ist ein Datenfeld wo ich zuerst die einzelnen Pixel als Bytemuster abspeichere, da mische ich also Temp, Zeit und Datumstring 20 mal pro Sekunde. Das Feld 7x32 Bytes. Dann wird das gesamte Array rausgeschoben in der richtigen Reihenfolge und wieder neu berechnet. Wenn du willst kann ich dir die Dokumentation als Mail schicken. Kannst mich kontaktieren unter thomas.schattat (at) gmail.com. Gruß Thomas
Lukas B. schrieb: > Es handelt sich um folgende Matrix: > > https://www.amazon.de/gp/aw/d/B06XJ9ZX17/ref=mp_s_a_1_2?__mk_de_DE=ÅMÅZÕÑ&qid=1509569541&sr=8-2&pi=AC_SX236_SY340_QL65&keywords=8x8+led+matrix&dpPl=1&dpID=51omLWzGN%2BL&ref=plSrch > > Ich würde hierbei schon gerne einen Mikrokontroller verwenden da dieser > noch mehrere Aufgaben erledigen soll. gugst du hier: http://tronixstuff.com/2013/10/11/tutorial-arduino-max7219-led-display-driver-ic/
OK. Das sieht so ähnlich aus wie bei mir. Was ist nun die Frage? Die Matrizen werden als gemeinsame Andoe oder gemeinsame Kathode verkauft. Keine Ahnung was das soll, alle haben gemeinsame Anoden und geinsame Kathoden. Meine sind so verdrahtet, dass die Bytes vom MAX zeilenweise angezeigt werden, links MSB, rechts LSB. Zeile 0 ist oben, Zeile 7 ganz unten. Das Schaltbild ist evenuell anders. Es macht Sinn zu verstehen wie das geht und nicht irgendwelche fertigen Module an einen Arduino zu hängen und fertige Libraries zu laden. Fang einfach mal mit einem 8x8 Quadrat an und schieb da Daten rein. Dann sieht man welche Bits welche Pixel ansteuern. Wo klemmt es denn nun anfänglich? Was klappt und was nicht? Niemand wird hier fertigen Code mundgerecht erstellen.
Thomas S. schrieb: > Es sind 28 MAX7219 drin (7x4). Hast Du im Lotto gewonnen? Die Dinger sind doch sündhaft teuer.
Dieter W. schrieb: > Thomas S. schrieb: > Es sind 28 MAX7219 drin (7x4). > > Hast Du im Lotto gewonnen? Die Dinger sind doch sündhaft teuer. Ja ebay China 50 Stück für ca. 15€
LOL!!! Beim Chinamann für ein paar Cents zu haben!! Schau mal bei Aliexpress rein, da gibt es die für kleines Geld. Auch wenns Kopien sind, die funktionieren bei mir seit 3 Jahren ohne Ausfall.
GukstDu hier; Beitrag "MAX7219_MaxMatrix_Scrolltext_without_Delay" ein gut funktionierendes Beispiel......
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.