Metainformationen zur Seite
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
computer:basteln:led-matrix [2015/05/31 17:33] gaubes [Laufschrift] |
computer:basteln:led-matrix [2018/03/16 21:11] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
===== LED-Matrix ===== | ===== LED-Matrix ===== | ||
+ | Dieser Wikieintrag handelt von den selbstgebauten Matrizen, wie sie beispielsweise in [[computer:raspberrypi:projekte:matrix|diesem Artikel]] beschrieben werden.\\ | ||
+ | Den Eintrag zu den erworbenen Matrizen vom Typ max7219 findet man [[computer:basteln:led-matrix-max7219|hier]]. | ||
==== Laufschrift ==== | ==== Laufschrift ==== | ||
In diesem Beispiel, wie man eine Laufschrift auf eine LED-Matrix bekommen kann, bedienen wir uns dem Programm, | In diesem Beispiel, wie man eine Laufschrift auf eine LED-Matrix bekommen kann, bedienen wir uns dem Programm, | ||
Zeile 7: | Zeile 8: | ||
Computers auf den Arduino und damit auf die Matrix laden können. | Computers auf den Arduino und damit auf die Matrix laden können. | ||
- | Dieses Beispiel wird öfters auch bei Veranstaltungen, die sich um die Naturwissenschaften drehen, oder reine Infoveranstaltungen des öfteren präsentiert. Die zuständige Person kann Fragen, die beim Lesen nicht beantwortet werden klären. | + | Dieses Beispiel wird öfters auch bei Veranstaltungen, die sich um die Naturwissenschaften drehen, oder reine Infoveranstaltungen des öfteren präsentiert. Die zuständige Person kann Fragen, die beim Lesen nicht beantwortet werden, klären. |
=== Code-Anpassungen === | === Code-Anpassungen === | ||
Der (je nach Wunsch) anzupassende Code ist: | Der (je nach Wunsch) anzupassende Code ist: | ||
- | <codecpp> | + | <code cpp> |
const int zeilenstart=2; // Pin ab dem die Zeilen anfangen | const int zeilenstart=2; // Pin ab dem die Zeilen anfangen | ||
const int spaltenstart=10; // Pin ab dem die Spalten anfangen | const int spaltenstart=10; // Pin ab dem die Spalten anfangen | ||
Zeile 67: | Zeile 68: | ||
</code> | </code> | ||
- | Das Array <codec> int schrift[max_x] </code> | + | Das Array <code c> int schrift[max_x] </code> |
- | ist so zu ändern, dass die gewünschten Zahlen (siehe unten) eingetragen werden und letztendlich die Einträge | + | ist so zu ändern, dass die gewünschten Zahlen (siehe unten) eingetragen werden und die Einträge |
- | des Arrays gezählt werden und <codec> int max_x </code> auf diesen Wert gesetzt wird. | + | des Arrays müssen gezählt und <code c> int max_x </code> auf diesen gezählten Wert gesetzt werden. |
=== Codieren des Musters === | === Codieren des Musters === | ||
- | Der Code ist so geschrieben, dass sich die Spalten binär codiert sind. Die Matrix hat 8 Leds verbaut, also | + | Der Code ist so geschrieben, dass die Spalten binär codiert sind. Die Matrix hat 8x8 Leds verbaut, also |
insgesamt 8 Punkte der Spalte die "AN" oder "AUS" sein können. Von oben nach unten werden diese LEDs gedanklich durchnummeriert von 0 bis 7. | insgesamt 8 Punkte der Spalte die "AN" oder "AUS" sein können. Von oben nach unten werden diese LEDs gedanklich durchnummeriert von 0 bis 7. | ||
Das Muster der Spalte lässt sich dann ausdrücken als <latex>$\sum_{n=0 \ und \ n\ leuchtet}^{7}2^n</latex>. | Das Muster der Spalte lässt sich dann ausdrücken als <latex>$\sum_{n=0 \ und \ n\ leuchtet}^{7}2^n</latex>. | ||
- | In Worten ausgedrückt man Ordnet jeder LED die Zahl zu, die sie zur Summe beiträgt. Von oben nach unten ist dies: | + | In Worten ausgedrückt man ordnet jeder LED die Zahl zu, die sie zur Summe beiträgt. Von oben nach unten ist dies: |
<latex>2^0 =1</latex> für die erste LED | <latex>2^0 =1</latex> für die erste LED | ||
Zeile 87: | Zeile 88: | ||
<latex>2^7 =128</latex> für die unterste LED | <latex>2^7 =128</latex> für die unterste LED | ||
- | Wenn man seine Zeile dann fertig hat, so addiert man die Zahlen der LEDs, die leuchten sollen und gibt die Summe für die Spalte in das Array von oben ein. | + | Wenn man die Spalte dann fertig hat, so addiert man die Zahlen der LEDs, die leuchten sollen und gibt die Summe für die Spalte in das Array von oben ein. |
+ | Wem das zu kompliziert vorkommt, dem hilft vielleicht folgendes Bild: | ||
+ | |||
+ | {{computer:basteln:laufschrift_grafik.jpg |}} | ||
+ | Beispielsweise wäre <code c>int max_x = 8; </code> und <code c>int schrift[max_x]={ | ||
+ | 0,34,66,64,64,70,38,0 | ||
+ | };</code> | ||
+ | Jedoch sollte man beachten, dass die Laufschrift (nach obigem Code) sich immer wiederholt. | ||
+ | Daher kann es passieren, dass das Muster nicht mehr erkennbar wird, da das Ende mit dem Anfang verschmelzen kann. | ||
+ | Ein Tipp um das zu umgehen wäre, am Anfang oder am Ende 8 (weil es 8 Spalten sind) Nullen in das Array | ||
+ | //schrift// hinzuzufügen und dem entsprechend auch //max_x// zu ändern. Ebenso, könnte man sich in Kommentaren notieren, wie viele Zahlen man bereits eingetragen hat: | ||
+ | <code c> | ||
+ | ... | ||
+ | int max_x=16; | ||
+ | ... | ||
+ | int schrift[max_x]={ | ||
+ | 0,34,66,64,64,70,38,0 //8 | ||
+ | 0,0,0,0,0,0,0,0 //16 | ||
+ | }; | ||
+ | ... | ||
+ | </code> | ||
+ | |||
+ | So lässt sich schließlich eine beliebige 8x8 Laufschrift auf die LED-Matrix bringen. |