Advertisement
Drakkheen

Untitled

Mar 10th, 2021
853
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const byte zeile[] = {4, 5, 6, 7, 8};
  2. const byte spalte[] = {9, 10, 11, 12, 13};
  3.  
  4. unsigned long LastAction = 0;
  5. unsigned long CurrentTime = 0;
  6.  
  7. const byte charTable[][30] = {
  8.   {0b01100, 0b10010, 0b11110, 0b10010, 0b10010},          //A
  9.   {0b11100, 0b10010, 0b11110, 0b10010, 0b11100},          //B
  10.   {0b01110, 0b10000, 0b10000, 0b10000, 0b01110},          //C
  11.   {0b11100, 0b10010, 0b10010, 0b10010, 0b11100},          //D
  12.   {0b11110, 0b10000, 0b11100, 0b10000, 0b11110},          //E
  13.   {0b11110, 0b10000, 0b11100, 0b10000, 0b10000},          //F
  14.   {0b01110, 0b10000, 0b10110, 0b10010, 0b11110},          //G
  15.   {0b10010, 0b10010, 0b11110, 0b10010, 0b10010},          //H
  16.   {0b00100, 0b00100, 0b00100, 0b00100, 0b00100},          //I
  17.   {0b00100, 0b00100, 0b00100, 0b10100, 0b11100},          //J
  18.   {0b10010, 0b10100, 0b11000, 0b10100, 0b10010},          //K
  19.   {0b10000, 0b10000, 0b10000, 0b10000, 0b11110},          //L
  20.   {0b10001, 0b11011, 0b10101, 0b10001, 0b10001},          //M
  21.   {0b10010, 0b11010, 0b10110, 0b10010, 0b10010},          //N
  22.   {0b01100, 0b10010, 0b10010, 0b10010, 0b01100},          //O
  23.   {0b11100, 0b10010, 0b10010, 0b11100, 0b10000},          //P
  24.   {0b01110, 0b10001, 0b10101, 0b10010, 0b01101},          //Q
  25.   {0b11100, 0b10010, 0b11100, 0b10010, 0b10010},          //R
  26.   {0b11110, 0b10000, 0b11110, 0b00010, 0b11110},          //S
  27.   {0b11111, 0b00100, 0b00100, 0b00100, 0b00100},          //T
  28.   {0b10010, 0b10010, 0b10010, 0b10010, 0b01100},          //U
  29.   {0b10001, 0b10001, 0b10001, 0b01010, 0b00100},          //V
  30.   {0b10001, 0b10001, 0b10101, 0b10101, 0b01110},          //W
  31.   {0b10010, 0b10010, 0b01100, 0b10010, 0b10010},          //X
  32.   {0b10001, 0b10001, 0b01110, 0b00100, 0b00100},          //Y
  33.   {0b11110, 0b00010, 0b00100, 0b01000, 0b11110},          //Z
  34.   {0b00000, 0b00000, 0b00000, 0b00000, 0b00000},          //EX
  35.   {0b11111, 0b11111, 0b11111, 0b11111, 0b11111},          //ALL
  36.   {0b01010, 0b00000, 0b00100, 0b10001, 0b01110},          //smile
  37.   {0b10001, 0b00100, 0b00000, 0b01110, 0b10001},          //frown
  38. };
  39.  
  40. const byte firstChar = 'A';                            // mit welchem Zeichen beginnt der charTable
  41.  
  42. void setup() {
  43.   Serial.begin(9600);
  44.  
  45.   for (size_t i = 0; i < sizeof(zeile); i++) {       // aufpassen, das klappt erst nach umstellen der Variable zeile auf byte!
  46.     pinMode(zeile[i], OUTPUT);
  47.   }
  48.   for (size_t i = 0; i < sizeof(spalte); i++) {
  49.     pinMode(spalte[i], OUTPUT);
  50.   }
  51. }
  52.  
  53. void loop() {
  54.   char myStr[] = "CD"; // Variable mit dem anzuzeigenden Text
  55.  
  56.  
  57.   wort(myStr, sizeof(myStr) - 1);
  58. }
  59.  
  60. void wort(char *toPrint, size_t len)
  61. {
  62.   CurrentTime = millis();
  63.  
  64.   for (size_t i = 0; i < len; i++)
  65.   {
  66.  
  67.     // convert character to a variable
  68.     byte myIndex = toPrint[i] - firstChar; // ASCII minus erstem Zeichen somit 0 für das erste Zeichen in deinem Char-Table
  69.  
  70.     if (CurrentTime - LastAction < 1000) {
  71.  
  72.       zeige(charTable[myIndex]);
  73.       LastAction = CurrentTime;
  74.     }
  75.  
  76.   }
  77.  
  78.   // evtl eine Zeitsteuerung, oder eine Verzögerung zwischen den Buchstaben
  79. }
  80.  
  81.  
  82.  
  83. // ***** Ausgabe an die 5x5 LED MAtrix ******
  84. void zeige(const byte buffer2[]) {
  85.   for (int a = 0; a <= 4; a++) {
  86.     digitalWrite(zeile[a], 1);
  87.     for (int i = 0; i < 5; i++) {
  88.       digitalWrite(spalte[i], bitRead (buffer2[a], i));
  89.       digitalWrite(spalte[i], 0);
  90.     }
  91.     digitalWrite(zeile[a], 0);
  92.   }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement