Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- char meinText[] = "HEL[LO[WORLD["; // Variable mit dem anzuzeigenden Text
- const int Geschwindigkeit = 500; // Buchstabenwechsel nach xx Millisekunden
- const byte zeile[9] = {2, 3, 4, 5, 6, 7, 8, 9, 10}; // PINs für die Zeilen der Matrix (GND)
- const byte spalte[9] = {19, 18, 17, 16, 15, 14, 13, 12, 11}; // PINs für die Spalten der Matrix (VCC)
- // Buchstabentabelle
- const byte charTable[][9] = {
- {0b000111000, 0b001000100, 0b011000110, 0b011000110, 0b011111110, 0b011111110, 0b011000110, 0b011000110, 0b011000110}, //A
- {0b001111100, 0b001100010, 0b001100010, 0b001100010, 0b001111100, 0b001111100, 0b001100010, 0b001100010, 0b001111100}, //B
- {0b000111000, 0b001111100, 0b001100100, 0b001100000, 0b001100000, 0b001100000, 0b001100100, 0b001111100, 0b000111000}, //C
- {0b001111100, 0b001100010, 0b001100010, 0b001100010, 0b001100010, 0b001100010, 0b001100010, 0b001100010, 0b001111100}, //D
- {0b001111100, 0b001100000, 0b001100000, 0b001100000, 0b001111100, 0b001111100, 0b001100000, 0b001100000, 0b001111100}, //E
- {0b001111100, 0b001100000, 0b001100000, 0b001100000, 0b001111000, 0b001111000, 0b001100000, 0b001100000, 0b001100000}, //F
- {0b000111000, 0b001111100, 0b001100100, 0b001100000, 0b001101100, 0b001100100, 0b001100100, 0b001111100, 0b000111000}, //G
- {0b011000110, 0b011000110, 0b011000110, 0b011000110, 0b011111110, 0b011000110, 0b011000110, 0b011000110, 0b011000110}, //H
- {0b000111000, 0b000010000, 0b000010000, 0b000010000, 0b000010000, 0b000010000, 0b000010000, 0b000010000, 0b000111000}, //I
- {0b001100000, 0b001100000, 0b001100000, 0b001100000, 0b001100000, 0b001100100, 0b001100100, 0b001111100, 0b000111000}, //J
- {0b001100010, 0b001100110, 0b001101100, 0b001111000, 0b001110000, 0b001111000, 0b001101100, 0b001100110, 0b001100010}, //K
- {0b001100000, 0b001100000, 0b001100000, 0b001100000, 0b001100000, 0b001100000, 0b001100000, 0b001111100, 0b001111100}, //L
- {0b010000010, 0b011000110, 0b011101110, 0b011010110, 0b011010110, 0b011000110, 0b011000110, 0b011000110, 0b011000110}, //M
- {0b010000110, 0b011000110, 0b011100110, 0b011110110, 0b011011110, 0b011001110, 0b011000110, 0b011000110, 0b011000110}, //N
- {0b001111100, 0b011000110, 0b011000110, 0b011000110, 0b011000110, 0b011000110, 0b011000110, 0b011000110, 0b001111100}, //O
- {0b011111000, 0b011000100, 0b011000100, 0b011000100, 0b011000100, 0b011111000, 0b011000000, 0b011000000, 0b011000000}, //P
- {0b001111100, 0b011000110, 0b011000110, 0b011000110, 0b011000110, 0b011010110, 0b011001110, 0b011000100, 0b001111010}, //Q
- {0b011111000, 0b011000100, 0b011000100, 0b011000100, 0b011000100, 0b011111000, 0b011001000, 0b011000100, 0b011000100}, //R
- {0b001111100, 0b010000010, 0b010000000, 0b010000000, 0b001111100, 0b000000010, 0b000000010, 0b010000010, 0b001111100}, //S
- {0b011111110, 0b000010000, 0b000010000, 0b000010000, 0b000010000, 0b000010000, 0b000010000, 0b000010000, 0b000010000}, //T
- {0b011000110, 0b011000110, 0b011000110, 0b011000110, 0b011000110, 0b011000110, 0b011000110, 0b011000110, 0b001111100}, //U
- {0b011000110, 0b011000110, 0b011000110, 0b011000110, 0b011000110, 0b001000100, 0b001101100, 0b000111000, 0b000010000}, //V
- {0b011000110, 0b011000110, 0b011000110, 0b011000110, 0b011010110, 0b011010110, 0b001010100, 0b001010100, 0b000111000}, //W
- {0b010000010, 0b011000110, 0b001000100, 0b001111100, 0b000111000, 0b001111100, 0b001000100, 0b011000110, 0b010000010}, //X
- {0b010000010, 0b011000110, 0b001000100, 0b001101100, 0b000111000, 0b000010000, 0b000010000, 0b000010000, 0b000010000}, //Y
- {0b011111110, 0b000000010, 0b000000100, 0b000001000, 0b000010000, 0b000100000, 0b001000000, 0b010000000, 0b011111110}, //Z
- {0b000000000, 0b000000000, 0b000000000, 0b000000000, 0b000000000, 0b000000000, 0b000000000, 0b000000000, 0b000000000}, //[
- };
- 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() {
- Serial.begin(9600);
- for (int i = 0; i < 9; i++) { // zählt von 0 bis 8
- pinMode(zeile[i], OUTPUT); // setzt den PIN auf Ausgang
- pinMode(spalte[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 9x9 LED Matrix
- void zeige(const byte buffer2[]) {
- for (int a = 0; a < 9; a++) {
- // Serial.print("Zeilenpin=");
- // Serial.println(zeile[a]);
- digitalWrite(zeile[a], 1);
- for (int i = 0; i < 9; i++) {
- // Serial.print("Spaltenpin=");
- // Serial.println(spalte[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