// Compilerfehler erforderdert Vergrößerung der Arrays um ein Feld, andernfalls Überlauf in andere Variablenboolean led[144Ausbaustufe + 1]= {0};unsigned int led_aus[144Ausbaustufe + 1];
// virtuelles Patchpanel: Zuordnung Ordungszahl/Pin, z. B. Natrium mit OZ 11 an *Pin 3*:
analogWrite(OUTPUT_ENABLE_PIN, 255); // entspricht 5 Volt an OE und damit LEDs aus
Serial.begin(115200); // Kontrollausgabe über seriellen Monitor
Serial.flush(); // löscht den Inhalt des seriellen Puffers
// CHECK Fenster: es kommt Müll, wenn nicht 'kein Zeilenende' eingestellt ist!
// Pin 5 abfragen (analog, EMK) für Zufallszahl // randomSeed(analogRead(5)); // Ausgabe-Pins : 3, 8,9,10 auf Ausgabe: // pinMode(OUTPUT_ENABLE_PIN, OUTPUT); // Dimmer analogWrite(OUTPUT_ENABLE_PIN, 255); // entspricht 5 Volt an OE und damit LEDs aus
// z. Zt. -TestPSE schwellend aufleuchten lassen // delayAuswahl_alles_an(5000); for (int b byte a = 0; b a <= 2555; b a = b a + 151)
{
for (byte b = 5; b <= 255; b = b + 1) { Helligkeit = b; Dimmer(b); delay(10); } Led_anfor (byte b = 255; b >= 5; b = b - 1, 1) { Helligkeit = b; Dimmer(); delay(30010); }
void Bewegungsmelder_abfragen() { // Falls längere Zeit keine Auswahl getroffen wurde oder keine Bewegung messbar war, // wird der Bewegungsmelder abgefragt. // Bei Bewegung bleiben die LEDs an. if (((Laufzeit_in_sek() > (last_call + Standby_Timer)) || (Bewegungsstatus == LOW))) { Bewegungsstatus = digitalRead(BEWEGUNGSMELDER_PIN); if ((Bewegungsstatus == LOW) && (neue_Auswahl == 0)) { Helligkeit = 0; last_call = 0; // wenn Helligkeit auf 0 gesetzt wurde } else { last_call = Laufzeit_in_sek(); Helligkeit = Wunschhelligkeit; } Dimmer(); }}// **********************************************************************void debugging() { // 208 Debug_Modus = -(Debug_Modus - 1); Serial.print("Debugging ist "); if (Debug_Modus) { Serial.print("ein"); } else { Serial.print("aus"); } Serial.println("geschaltet. Umschalten: 208");}// **********************************************************************void Dimmer(byte Helligkeit) // 0 to 255// Funktion merkt sich Helligkeitswert für LEDs, ausbaubedingt z. Zt. nur Einheitswert für alle SchieberisterSchieberegister
// 0 = dunkel, weil 0% Einschaltdauer, 255 = volle Leistung, weil 100% ED
{
return t_gesamt_in_sek;
}
// void Laufzeit_hhmmss() {
// t_gesamt_in_sek = millis() / 1000;
// die 27. Led (physikalisch) schalten. Zuordnung Pin/Element:
byte Pin = Element; // Probebetrieb ohne Patchmodus: OZ 22 = Pin 22
if (patchmodusPatchmodus) { // Normalfall: OZ 22 = Pin 27
Pin = Pin_von_Element[Element];
}
// mitzählen, wieviel LEDs insgesamt an sind:
// nur ausführen, wenn (an -> aus) oder (aus -> an), nicht bei (bleibt an) oder (bleibt aus)
}
led[Pin] = an;
// Zwischenbilanz für Kontrolle
// Serial.print(Anzahl_angeschaltete_LEDs);
// Serial.print(" LEDs sind an: ");
// for (byte z = 1; z < Ausbaustufe + 1; z++) {
// if (led[z]) {
// }
// }
// Serial.println();
// // nur für Fehlerabfrage
// if (Anzahl_angeschaltete_LEDs > Ausbaustufe) {
led_aus[Element] = Laufzeit_in_sek() + Eieruhr; // vormerken: LED nach (Eieruhr) Sek. wieder ausschalten
last_Element = Element; // welches Element wurde zuletzt angeschaltet?
void Treppenlicht() { // Serial.println("Treppenlicht"); // schaltet die LED nach (Eieruhr) Sek. wieder aus // t_gesamt_in_sek = Laufzeit_in_Sek(); for (byte z = 1; z < Ausbaustufe + 1; z++) { byte Element = z; if (patchmodus) { // Normalfall: OZ 22 = Pin 27 Element = Element_an_Pin[z]; } if (led[z]) { // max. Einschaltzeit überschritten? if (Laufzeit_in_sek() > led_aus[Element]) { // Legenden-LEDs immer an lassen: if (Element < legende_anfang || Element > legende_ende) { Led_an(Element, 0); } } } } delay(bremse); // Legende_an();}// **********************************************************************void serielleserielle_Schnittstelle_abfragen() {
void wwwTreppenlicht() { // schaltet eine LED nach [Eieruhr] Sek. wieder aus if (Debug_Modus) { Serial.println("Treppenlicht"); Serial.print("Laufzeit in s = "); Serial.println(Laufzeit_in_sek()); // Zwischenbilanz für Kontrolle Serial.print(Anzahl_angeschaltete_LEDs); Serial.print(" LEDs sind an, davon "); Serial.print(Anzahl_Legenden_LEDs); Serial.println(" anzahl_legenden_leds"); Serial.println(); } for (byte z = 1; z < Ausbaustufe + 1; z++) { byte Element = z; if (Patchmodus) { // Normalfall: OZ 22 = Pin 27 Element = Element_an_Pin[z]; } if (led[z]) { // falls an: max. Einschaltzeit überschritten? if (Laufzeit_in_sek() > led_aus[Element]) { // Legenden-LEDs immer an lassen, sonst Ausschalten: if (Element < Legende_anfang || Element > Legende_ende) { Led_an(Element, 0); // Ausschalten } } } }}// **********************************************************************void www_abfragen() {
// Create a client connection
// Serial.print("Ich horche, ob www ...");
}
if (Debug_Modus) { Serial.print("IR-Code: "); Serial.println(code); }
// Serial.print(" = ");
byte i_code = B00000000;
}
if (mehrstellig == 0) {
if (Debug_Modus) { Serial.print("IR-Auswahl: "); Serial.println(Auswahl); Serial.println(); }