Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- char meinText[] = "TEST_]"; // Variable mit dem anzuzeigenden Text
- const int Geschwindigkeit = 400; // Buchstabenwechsel nach xx Millisekunden
- const byte zeile[] = {8, 7, 6, 5, 4}; // PINs für die Zeilen der Matrix (GND)
- const byte spalte[] = {9, 10, 11, 12, 13}; // PINs für die Spalten der Matrix (VCC)
- // Buchstabentabelle
- const byte charTable[][5] = {
- {0b01100, 0b10010, 0b11110, 0b10010, 0b10010}, //A
- {0b11100, 0b10010, 0b11110, 0b10010, 0b11100}, //B
- {0b01110, 0b10000, 0b10000, 0b10000, 0b01110}, //C
- {0b11100, 0b10010, 0b10010, 0b10010, 0b11100}, //D
- {0b11110, 0b10000, 0b11100, 0b10000, 0b11110}, //E
- {0b11110, 0b10000, 0b11100, 0b10000, 0b10000}, //F
- {0b01110, 0b10000, 0b10110, 0b10010, 0b11110}, //G
- {0b10010, 0b10010, 0b11110, 0b10010, 0b10010}, //H
- {0b00100, 0b00100, 0b00100, 0b00100, 0b00100}, //I
- {0b00100, 0b00100, 0b00100, 0b10100, 0b11100}, //J
- {0b10010, 0b10100, 0b11000, 0b10100, 0b10010}, //K
- {0b10000, 0b10000, 0b10000, 0b10000, 0b11110}, //L
- {0b10001, 0b11011, 0b10101, 0b10001, 0b10001}, //M
- {0b10010, 0b11010, 0b10110, 0b10010, 0b10010}, //N
- {0b01100, 0b10010, 0b10010, 0b10010, 0b01100}, //O
- {0b11100, 0b10010, 0b10010, 0b11100, 0b10000}, //P
- {0b01110, 0b10001, 0b10101, 0b10010, 0b01101}, //Q
- {0b11100, 0b10010, 0b11100, 0b10010, 0b10010}, //R
- {0b11110, 0b10000, 0b11110, 0b00010, 0b11110}, //S
- {0b11111, 0b00100, 0b00100, 0b00100, 0b00100}, //T
- {0b10010, 0b10010, 0b10010, 0b10010, 0b01100}, //U
- {0b10001, 0b10001, 0b10001, 0b01010, 0b00100}, //V
- {0b10001, 0b10001, 0b10101, 0b10101, 0b01110}, //W
- {0b10010, 0b10010, 0b01100, 0b10010, 0b10010}, //X
- {0b10001, 0b10001, 0b01110, 0b00100, 0b00100}, //Y
- {0b11110, 0b00010, 0b00100, 0b01000, 0b11110}, //Z
- {0b10001, 0b00100, 0b00000, 0b01110, 0b10001}, // [ => frown
- {0b00000, 0b00000, 0b00000, 0b00000, 0b00000}, // <== don't use \ kicks you out
- {0b01010, 0b00000, 0b00100, 0b10001, 0b01110}, // ] => smile
- {0b11111, 0b11111, 0b11111, 0b11111, 0b11111}, // ^ => full => type ^
- {0b00000, 0b00000, 0b00000, 0b00000, 0b00000}, // _ => space
- };
- const byte firstChar = 'A'; // mit welchem Zeichen beginnt die Buchstabentabelle
- unsigned long LastAction = 0; // Variable zur Messung der Zeit zwischen zwei Buchstaben
- unsigned long CurrentTime = 0; // Variable zur Messung der Zeit zwischen zwei Buchstaben
- void setup() {
- for (int i = 4; i < 14; i++) { // zählt von 4 bis 14
- pinMode(i, OUTPUT); // setzt den PIN auf Ausgang
- }
- }
- void loop() {
- wort(meinText, sizeof(meinText) - 1); // ruft die Unterfunktion zur "Textzerlegung" auf
- }
- // Unterfunktion zum Zerlegen des Textes in einzelne Buchstaben
- void wort(char *toPrint, size_t len)
- {
- static size_t i = 0;
- CurrentTime = millis(); // Timer initialisieren
- // wandelt den Buchstaben in eine Indexvariable für die Buchstabentabelle um
- byte myIndex = toPrint[i] - firstChar; // ASCII minus erstem Zeichen somit 0 für das erste Zeichen in der Buchstabentabelle
- if (CurrentTime - LastAction > Geschwindigkeit) { // Timer Funktion Anfang
- i++; // erhöht den Zähler für die Buchstaben in wort()
- if (i == len) { // wenn der Zähler gleich ist mit der Wortlänge
- i = 0; // wird er wieder auf 0 gesetzt
- }
- LastAction = CurrentTime; // Timer aktualisieren
- }
- zeige(charTable[myIndex]); // ruft die Funktion zeige() zum Anzeigen des Buchstaben auf
- }
- // Unterfunktion zur Ausgabe eines Buchstaben an die 5x5 LED Matrix
- void zeige(const byte buffer2[]) {
- for (int a = 0; a <= 4; a++) {
- digitalWrite(zeile[a], 1);
- for (int i = 0; i < 5; i++) {
- digitalWrite(spalte[i], bitRead (buffer2[a], i));
- digitalWrite(spalte[i], 0);
- }
- digitalWrite(zeile[a], 0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement