INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Asymmetrischer Blinkzyklus ohne delay()
27.10.2013, 17:59 (Dieser Beitrag wurde zuletzt bearbeitet: 27.10.2013 19:02 von widarr.)
Beitrag #1
Asymmetrischer Blinkzyklus ohne delay()
Hallo!
Erster Beitrag mit komischem Threadtitel, aber ich komme bei diesem Problemchen einfach nicht weiter.

Ich würde gerne eine LED für eine gewisse Zeit an und eine gewisse Zeit ausschalten, aber ohne delay zu verwenden, der untenstehedne Code macht noch nicht ganz was ich will.

Der Code sieht so aus:

Code:
#define ULONG unsigned long

int LED = 13;
boolean LEDON = true;
boolean NEXT_LED_ACTION = false;
ULONG previousMillis = 0;
ULONG ONTIME = 4000;
ULONG OFFTIME = 1000;

void ledon() {
    digitalWrite(LED, HIGH);
    LEDON = true;
    NEXT_LED_ACTION = false; // next turn LEDs off
}
void ledoff() {
    digitalWrite(LED, LOW);
    LEDON = false;
    NEXT_LED_ACTION = true; // next turn LEDs on
}

void LEDcycle() {
    ULONG currentMillis = millis();
    
    if(NEXT_LED_ACTION) {
        if((currentMillis - previousMillis) > OFFTIME) { // is the off time already over?
            ledon();
        }
    } else {
        if((currentMillis - previousMillis) > ONTIME) { // is the on time already over?
            ledoff();
        }
    }
    previousMillis = currentMillis;
}


void setup()
{
    pinMode(LED, OUTPUT);
    digitalWrite(LED, HIGH);
}

void loop()
{
    LEDcycle();
}

Danke schonmal für die Hilfe Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.10.2013, 19:03 (Dieser Beitrag wurde zuletzt bearbeitet: 27.10.2013 19:05 von widarr.)
Beitrag #2
RE: Asymmetrischer Blinkzyklus ohne delay()
Ok hat sich erledigt, bin selber dahintergestiegen, wens interessiert:

Die aktualisierung der previousMillis war am falschen platz, so gehört es:

Code:
#define ULONG unsigned long

int LED = 13;
boolean LEDON = true;
boolean NEXT_LED_ACTION = false;
ULONG previousMillis = 0;
ULONG ONTIME = 4000;
ULONG OFFTIME = 1000;

void ledon() {
    digitalWrite(LED, HIGH);
    LEDON = true;
    NEXT_LED_ACTION = false; // next turn LEDs off
}
void ledoff() {
    digitalWrite(LED, LOW);
    LEDON = false;
    NEXT_LED_ACTION = true; // next turn LEDs on
}

void LEDcycle() {
    ULONG currentMillis = millis();
    
    if(NEXT_LED_ACTION) {
        if((currentMillis - previousMillis) > OFFTIME) { // is the off time already over?
            previousMillis = currentMillis;
            ledon();
        }
    } else {
        if((currentMillis - previousMillis) > ONTIME) { // is the on time already over?
            previousMillis = currentMillis;
            ledoff();
        }
    }
}


void setup()
{
    pinMode(LED, OUTPUT);
    digitalWrite(LED, HIGH);
}

void loop()
{
    LEDcycle();
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Brauche Zeitverzögerung delay/millis/timer? Spiecky 17 642 15.04.2017 09:41
Letzter Beitrag: hotsystems
  TimeAlarm Bibliothek delay() anweisung renid55 0 203 03.01.2017 21:13
Letzter Beitrag: renid55
  Delay nurmili 2 453 10.07.2016 16:55
Letzter Beitrag: nurmili
  Problem mit Delay und Millis funnyzocker 1 760 26.06.2016 09:54
Letzter Beitrag: hotsystems
  PID ohne Library MeisterQ 5 791 01.05.2016 09:23
Letzter Beitrag: MeisterQ
  nur ein URL aufruf ohne PHP toto1975 3 921 05.04.2016 08:26
Letzter Beitrag: iks77
  Kann ich in eine For Schleife einen delay einbauen JanGamer11 6 778 05.01.2016 12:34
Letzter Beitrag: Hilgi
  Rampe ohne Delay DC-Motor de_flexus 3 2.619 22.11.2015 13:07
Letzter Beitrag: frank2000
  Doppelblitz ohne Delay cleko 3 1.236 12.11.2015 08:02
Letzter Beitrag: Bitklopfer
  LED ohne Brightnes Mathias 2 554 21.10.2015 16:33
Letzter Beitrag: Mathias

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste