Software auf neue LED-Aufteilung der Wortfolie angepasst (104 LEDs, Streifen pro Wort im Zickzack)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
lukarioandClaude Sonnet 5.5 committed 2026-10-19 18:59:46 +02:00
1 parent f072bbf575
commit ca0e6afa8f
2 files changed
+66 -48

No files matched your search

+33 -24
View File
@@ -8,7 +8,11 @@
// ================= LED ================= // ================= LED =================
#define LED_PIN D4 #define LED_PIN D4
#define NUMPIXELS 110 // Neue Aufteilung (cad/openscad/gemeinsam.scad): je Wort ein LED-Streifen mit einer
// LED pro Buchstabe, Zickzack durch die Zeilen. Zeile 0 laeuft links->rechts, Zeile 1
// rechts->links usw. Die Fuellbuchstaben gibt es nicht, nur die Woerter (inkl. NTP,
// API, RTC, ESP). Minutenpunkte sind abgeschaltet.
#define NUMPIXELS 104
Adafruit_NeoPixel pixels(NUMPIXELS, LED_PIN, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel pixels(NUMPIXELS, LED_PIN, NEO_GRB + NEO_KHZ800);
// ================= SERVER & NTP ================= // ================= SERVER & NTP =================
@@ -181,29 +185,34 @@ void fadeToTargetSmooth(int steps = 30, int delayMs = 15){
} }
// ================= WORTUHR LOGIK ================= // ================= WORTUHR LOGIK =================
void word_ES(){ setRange(0,1); } // LED-Indizes in Kettenreihenfolge (Zeilen im Zickzack, Woerter je Zeile in Laufrichtung)
void word_IST(){ setRange(3,5); } void word_ES(){ setRange(0,1); } // Zeile 0 (links->rechts)
void word_FUENF_M(){ setRange(7,10); } void word_IST(){ setRange(2,4); }
void word_ZEHN_M(){ setRange(18,21); } void word_FUENF_M(){ setRange(5,8); }
void word_ZWANZIG(){ setRange(11,17); } void word_ZEHN_M(){ setRange(9,12); } // Zeile 1 (rechts->links)
void word_VIERTEL(){ setRange(22,28); } void word_ZWANZIG(){ setRange(13,19); }
void word_VOR(){ setRange(30,32); } void word_VIERTEL(){ setRange(20,26); } // Zeile 2
void word_NACH(){ setRange(40,43); } void word_VOR(){ setRange(27,29); }
void word_HALB(){ setRange(33,36); } void word_NACH(){ setRange(30,33); } // Zeile 3 (rechts->links)
void word_EINS(){ setRange(62,65); } // NTP 34-36
void word_EIN(){ setRange(62,64); } void word_HALB(){ setRange(37,40); }
void word_ZWEI(){ setRange(55,58); } void word_NEUN(){ setRange(41,44); } // Zeile 4
void word_DREI(){ setRange(66,69); } // API 45-47
void word_VIER(){ setRange(73,76); } void word_FUENF_H(){ setRange(48,51); }
void word_FUENF_H(){ setRange(51,54); } void word_EINS(){ setRange(52,55); } // Zeile 5 (rechts->links): S, EIN, RTC, ZWEI
void word_SECHS(){ setRange(83,87); } void word_EIN(){ setRange(53,55); }
void word_SIEBEN(){ setRange(88,93); } // RTC 56-58
void word_ACHT(){ setRange(77,80); } void word_ZWEI(){ setRange(59,62); }
void word_NEUN(){ setRange(44,47); } void word_DREI(){ setRange(63,66); } // Zeile 6
void word_ZEHN_H(){ setRange(106,109); } // ESP 67-69
void word_ELF(){ setRange(103,105); } void word_VIER(){ setRange(70,73); }
void word_ZWOELF(){ setRange(94,98); } void word_SECHS(){ setRange(74,78); } // Zeile 7 (rechts->links)
void word_UHR(){ setRange(99,101); } void word_ACHT(){ setRange(79,82); }
void word_SIEBEN(){ setRange(83,88); } // Zeile 8
void word_ZWOELF(){ setRange(89,93); }
void word_ZEHN_H(){ setRange(94,97); } // Zeile 9 (rechts->links)
void word_ELF(){ setRange(98,100); }
void word_UHR(){ setRange(101,103); }
String getTimeText(int h, int m){ String getTimeText(int h, int m){
int m5 = (m/5)*5; int m5 = (m/5)*5;
+33 -24
View File
@@ -8,7 +8,11 @@
// ================= LED ================= // ================= LED =================
#define LED_PIN D4 #define LED_PIN D4
#define NUMPIXELS 110 // Neue Aufteilung (cad/openscad/gemeinsam.scad): je Wort ein LED-Streifen mit einer
// LED pro Buchstabe, Zickzack durch die Zeilen. Zeile 0 laeuft links->rechts, Zeile 1
// rechts->links usw. Die Fuellbuchstaben gibt es nicht, nur die Woerter (inkl. NTP,
// API, RTC, ESP). Minutenpunkte sind abgeschaltet.
#define NUMPIXELS 104
Adafruit_NeoPixel pixels(NUMPIXELS, LED_PIN, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel pixels(NUMPIXELS, LED_PIN, NEO_GRB + NEO_KHZ800);
// ================= SERVER & NTP ================= // ================= SERVER & NTP =================
@@ -181,29 +185,34 @@ void fadeToTargetSmooth(int steps = 30, int delayMs = 15){
} }
// ================= WORTUHR LOGIK ================= // ================= WORTUHR LOGIK =================
void word_ES(){ setRange(0,1); } // LED-Indizes in Kettenreihenfolge (Zeilen im Zickzack, Woerter je Zeile in Laufrichtung)
void word_IST(){ setRange(3,5); } void word_ES(){ setRange(0,1); } // Zeile 0 (links->rechts)
void word_FUENF_M(){ setRange(7,10); } void word_IST(){ setRange(2,4); }
void word_ZEHN_M(){ setRange(18,21); } void word_FUENF_M(){ setRange(5,8); }
void word_ZWANZIG(){ setRange(11,17); } void word_ZEHN_M(){ setRange(9,12); } // Zeile 1 (rechts->links)
void word_VIERTEL(){ setRange(22,28); } void word_ZWANZIG(){ setRange(13,19); }
void word_VOR(){ setRange(30,32); } void word_VIERTEL(){ setRange(20,26); } // Zeile 2
void word_NACH(){ setRange(40,43); } void word_VOR(){ setRange(27,29); }
void word_HALB(){ setRange(33,36); } void word_NACH(){ setRange(30,33); } // Zeile 3 (rechts->links)
void word_EINS(){ setRange(62,65); } // NTP 34-36
void word_EIN(){ setRange(62,64); } void word_HALB(){ setRange(37,40); }
void word_ZWEI(){ setRange(55,58); } void word_NEUN(){ setRange(41,44); } // Zeile 4
void word_DREI(){ setRange(66,69); } // API 45-47
void word_VIER(){ setRange(73,76); } void word_FUENF_H(){ setRange(48,51); }
void word_FUENF_H(){ setRange(51,54); } void word_EINS(){ setRange(52,55); } // Zeile 5 (rechts->links): S, EIN, RTC, ZWEI
void word_SECHS(){ setRange(83,87); } void word_EIN(){ setRange(53,55); }
void word_SIEBEN(){ setRange(88,93); } // RTC 56-58
void word_ACHT(){ setRange(77,80); } void word_ZWEI(){ setRange(59,62); }
void word_NEUN(){ setRange(44,47); } void word_DREI(){ setRange(63,66); } // Zeile 6
void word_ZEHN_H(){ setRange(106,109); } // ESP 67-69
void word_ELF(){ setRange(103,105); } void word_VIER(){ setRange(70,73); }
void word_ZWOELF(){ setRange(94,98); } void word_SECHS(){ setRange(74,78); } // Zeile 7 (rechts->links)
void word_UHR(){ setRange(99,101); } void word_ACHT(){ setRange(79,82); }
void word_SIEBEN(){ setRange(83,88); } // Zeile 8
void word_ZWOELF(){ setRange(89,93); }
void word_ZEHN_H(){ setRange(94,97); } // Zeile 9 (rechts->links)
void word_ELF(){ setRange(98,100); }
void word_UHR(){ setRange(101,103); }
String getTimeText(int h, int m){ String getTimeText(int h, int m){
int m5 = (m/5)*5; int m5 = (m/5)*5;