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 =================
#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);
// ================= SERVER & NTP =================
@@ -181,29 +185,34 @@ void fadeToTargetSmooth(int steps = 30, int delayMs = 15){
}
// ================= WORTUHR LOGIK =================
void word_ES(){ setRange(0,1); }
void word_IST(){ setRange(3,5); }
void word_FUENF_M(){ setRange(7,10); }
void word_ZEHN_M(){ setRange(18,21); }
void word_ZWANZIG(){ setRange(11,17); }
void word_VIERTEL(){ setRange(22,28); }
void word_VOR(){ setRange(30,32); }
void word_NACH(){ setRange(40,43); }
void word_HALB(){ setRange(33,36); }
void word_EINS(){ setRange(62,65); }
void word_EIN(){ setRange(62,64); }
void word_ZWEI(){ setRange(55,58); }
void word_DREI(){ setRange(66,69); }
void word_VIER(){ setRange(73,76); }
void word_FUENF_H(){ setRange(51,54); }
void word_SECHS(){ setRange(83,87); }
void word_SIEBEN(){ setRange(88,93); }
void word_ACHT(){ setRange(77,80); }
void word_NEUN(){ setRange(44,47); }
void word_ZEHN_H(){ setRange(106,109); }
void word_ELF(){ setRange(103,105); }
void word_ZWOELF(){ setRange(94,98); }
void word_UHR(){ setRange(99,101); }
// LED-Indizes in Kettenreihenfolge (Zeilen im Zickzack, Woerter je Zeile in Laufrichtung)
void word_ES(){ setRange(0,1); } // Zeile 0 (links->rechts)
void word_IST(){ setRange(2,4); }
void word_FUENF_M(){ setRange(5,8); }
void word_ZEHN_M(){ setRange(9,12); } // Zeile 1 (rechts->links)
void word_ZWANZIG(){ setRange(13,19); }
void word_VIERTEL(){ setRange(20,26); } // Zeile 2
void word_VOR(){ setRange(27,29); }
void word_NACH(){ setRange(30,33); } // Zeile 3 (rechts->links)
// NTP 34-36
void word_HALB(){ setRange(37,40); }
void word_NEUN(){ setRange(41,44); } // Zeile 4
// API 45-47
void word_FUENF_H(){ setRange(48,51); }
void word_EINS(){ setRange(52,55); } // Zeile 5 (rechts->links): S, EIN, RTC, ZWEI
void word_EIN(){ setRange(53,55); }
// RTC 56-58
void word_ZWEI(){ setRange(59,62); }
void word_DREI(){ setRange(63,66); } // Zeile 6
// ESP 67-69
void word_VIER(){ setRange(70,73); }
void word_SECHS(){ setRange(74,78); } // Zeile 7 (rechts->links)
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){
int m5 = (m/5)*5;
+33 -24
View File
@@ -8,7 +8,11 @@
// ================= LED =================
#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);
// ================= SERVER & NTP =================
@@ -181,29 +185,34 @@ void fadeToTargetSmooth(int steps = 30, int delayMs = 15){
}
// ================= WORTUHR LOGIK =================
void word_ES(){ setRange(0,1); }
void word_IST(){ setRange(3,5); }
void word_FUENF_M(){ setRange(7,10); }
void word_ZEHN_M(){ setRange(18,21); }
void word_ZWANZIG(){ setRange(11,17); }
void word_VIERTEL(){ setRange(22,28); }
void word_VOR(){ setRange(30,32); }
void word_NACH(){ setRange(40,43); }
void word_HALB(){ setRange(33,36); }
void word_EINS(){ setRange(62,65); }
void word_EIN(){ setRange(62,64); }
void word_ZWEI(){ setRange(55,58); }
void word_DREI(){ setRange(66,69); }
void word_VIER(){ setRange(73,76); }
void word_FUENF_H(){ setRange(51,54); }
void word_SECHS(){ setRange(83,87); }
void word_SIEBEN(){ setRange(88,93); }
void word_ACHT(){ setRange(77,80); }
void word_NEUN(){ setRange(44,47); }
void word_ZEHN_H(){ setRange(106,109); }
void word_ELF(){ setRange(103,105); }
void word_ZWOELF(){ setRange(94,98); }
void word_UHR(){ setRange(99,101); }
// LED-Indizes in Kettenreihenfolge (Zeilen im Zickzack, Woerter je Zeile in Laufrichtung)
void word_ES(){ setRange(0,1); } // Zeile 0 (links->rechts)
void word_IST(){ setRange(2,4); }
void word_FUENF_M(){ setRange(5,8); }
void word_ZEHN_M(){ setRange(9,12); } // Zeile 1 (rechts->links)
void word_ZWANZIG(){ setRange(13,19); }
void word_VIERTEL(){ setRange(20,26); } // Zeile 2
void word_VOR(){ setRange(27,29); }
void word_NACH(){ setRange(30,33); } // Zeile 3 (rechts->links)
// NTP 34-36
void word_HALB(){ setRange(37,40); }
void word_NEUN(){ setRange(41,44); } // Zeile 4
// API 45-47
void word_FUENF_H(){ setRange(48,51); }
void word_EINS(){ setRange(52,55); } // Zeile 5 (rechts->links): S, EIN, RTC, ZWEI
void word_EIN(){ setRange(53,55); }
// RTC 56-58
void word_ZWEI(){ setRange(59,62); }
void word_DREI(){ setRange(63,66); } // Zeile 6
// ESP 67-69
void word_VIER(){ setRange(70,73); }
void word_SECHS(){ setRange(74,78); } // Zeile 7 (rechts->links)
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){
int m5 = (m/5)*5;