LED Gehwegbeleuchtung Taster im Programm einbinden

Anzeige

StartHardware-Forum LED Gehwegbeleuchtung Taster im Programm einbinden

Ansicht von 1 Beitrag (von insgesamt 1)
  • Autor
    Beiträge
  • #7556
    Markus
    Teilnehmer

    Hallo, ich möchte gern in diesem Program einen Taster einfügen der beim drücken den Andimmvorgang auslöst 60 Sec. an bleibt und danach wieder durch erneutes drücken von vorne beginnt. Ich bekomme es einfach nicht hin den Taster einzubinden das es funktioniert. Es müsste doch das Program übersprungen werden solange bis der Taster gedrückt wird oder?
    `
    int buttonPin = 8;
    int pausen = 500;
    int vals [] = { 0, 1, 2, 2, 2, 3, 3, 4, 5, 6, 7, 8, 10, 11, 13, 16, 19, 23, 27, 32, 38, 45, 54, 64, 76, 91, 108, 128, 152, 181, 215, 255 }
    int numVal = 32; //number of values in array byte schwelle = 10; // 70% * 255; Schwelle, bei der die nächste LED einsetzt.

    byte a,b,c,d,e,f; // Zählervariablen für 3 LEDs unsigned long sweepstart; // Zeit merken, zu der der Dimmprozess gestartet wurde.

    void setup() {
    for (int i = 2; i < 10; i++) { pinMode(i, OUTPUT); pinMode(buttonPin, INPUT_PULLUP); // der Taster wird mit internem Pullup verwendet, d.h. er ist mit dem GND und dem digitalen Input verbunden
    } }

    void loop() {
    bool myCurrentButtonState = digitalRead(buttonPin); // Zählervariablen berechnen
    a = min(a++, numVal-1); // Zähler 1. LED wird hochgezählt bis 31
    if (vals[a] > schwelle){
    b = min(b++, numVal-1); // Zähler 2. LED wird hochgezählt bis 31, wenn Wert 1. LED > Schwelle, } if (vals[b] > schwelle){
    c = min(c++, numVal-1); // Zähler 3. LED wird hochgezählt bis 31, wenn Wert 2. LED > Schwelle, } if (vals[c] > schwelle){
    d = min(d++, numVal-1); // Zähler 4. LED wird hochgezählt bis 31, wenn Wert 2. LED > Schwelle, } if (vals[d] > schwelle){
    e = min(e++, numVal-1); // Zähler 5. LED wird hochgezählt bis 31, wenn Wert 2. LED > Schwelle, } if (vals[e] > schwelle){
    f = min(f++, numVal-1); // Zähler 6. LED wird hochgezählt bis 31, wenn Wert 2. LED > Schwelle, }

    analogWrite(3, vals[a]);
    analogWrite(5, vals[b]);
    analogWrite(6, vals[c]);
    analogWrite(9, vals[d]);
    analogWrite(10, vals[e]);
    analogWrite(11, vals[f]);
    delay(20); // Rücksetzen alle Variablen und wiederholen nach einer Pause

    if(millis()-sweepstart > pausen * 128){ // Ist die Wartezeit abgelaufen? (Dauer=pausen*128)
    a=0; // Zählervariablen rücksetzen
    b=0;
    c=0;
    d=0;
    e=0;
    f=0; sweepstart = millis(); // Zeitpunkt des Neustarts merken } }

    • Dieses Thema wurde geändert vor 3 Wochen, 6 Tage von Markus. Grund: Ergänzung
Ansicht von 1 Beitrag (von insgesamt 1)
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.