|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
#include "RTClib.h" #include "Adafruit_IS31FL3741.h" RTC_PCF8523 rtc; Adafruit_IS31FL3741_QT matrix; // Farben #define SCHWARZ 0x0000 #define WEISS 0xFFFF #define BLAU 0x001F #define ROT 0xF800 #define GRUEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define GELB 0xFFE0 #define BRAUN 0x9A60 #define GRAU 0x7BEF #define GRUENGELB 0xB7E0 #define DUNKELCYAN 0x03EF #define ORANGE 0xFDA0 #define PINK 0xFE19 #define BORDEAUX 0xA000 #define HELLBLAU 0x867D #define VIOLETT 0x915C #define SILBER 0xC618 #define GOLD 0xFEA0 void setup() { Serial.begin(9600); while (!Serial); delay(1000); // RTC starten Wire1 -> QWIIC if (!rtc.begin(&Wire1)) { Serial.println("RTC konnte nicht gestartet werden!"); Serial.println("Programm wird beendet!"); while (1); } else Serial.println("RTC verbunden!"); // Zeitpunkt der Kompilierung String Zeitpunkt = (F(__DATE__), F(__TIME__)); Serial.println("Zeitpunkt des Kompilierens: " + Zeitpunkt); // Zeit aus dem Zeitpunkt des Kompilierens setzen rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); rtc.start(); // Matrix starten -Wire1 -> QWIIC if (!matrix.begin(IS3741_ADDR_DEFAULT, &Wire1)) { Serial.println("Matrix nicht verbunden"); Serial.println("Programm wird beendet!"); while (1); } else Serial.println("Matrix verbunden!"); matrix.fill(0); // Matrix aktivieren matrix.enable(true); matrix.setRotation(0); // Leuchtstärke (0-255) matrix.setLEDscaling(50); matrix.setGlobalCurrent(50); } void loop() { DatenAnzeigen(); } void DatenAnzeigen() { // aktuelle Zeit holen DateTime aktuell = rtc.now(); // formatiertes char-Array für die Zeit char Zeit[] = "hh:mm:ss"; // Stunden aus Zeit extrahieren String Stunden = String(aktuell.toString(Zeit)); Stunden = Stunden.substring(0, 2); // Minuten aus Zeit extrahieren String Minuten = String(aktuell.toString(Zeit)); Minuten = Minuten.substring(3, 5); Serial.println(aktuell.toString(Zeit)); // Stunde aanzeigen matrix.setCursor(0, 2); matrix.setTextColor(BLAU, 0); for (int i = 0; i < Stunden.length(); i++) { matrix.print(Stunden[i]); } delay(2000); // Minute anzeigen matrix.setCursor(0, 2); matrix.setTextColor(GELB, 0); for (int i = 0; i < Minuten.length(); i++) { matrix.print(Minuten[i]); // write the letter } delay(2000); } |