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
  Delay nurmili 2 219 10.07.2016 16:55
Letzter Beitrag: nurmili
  Problem mit Delay und Millis funnyzocker 1 459 26.06.2016 09:54
Letzter Beitrag: hotsystems
  PID ohne Library MeisterQ 5 532 01.05.2016 09:23
Letzter Beitrag: MeisterQ
  nur ein URL aufruf ohne PHP toto1975 3 607 05.04.2016 08:26
Letzter Beitrag: iks77
  Kann ich in eine For Schleife einen delay einbauen JanGamer11 6 613 05.01.2016 12:34
Letzter Beitrag: Hilgi
  Rampe ohne Delay DC-Motor de_flexus 3 1.942 22.11.2015 13:07
Letzter Beitrag: frank2000
  Doppelblitz ohne Delay cleko 3 857 12.11.2015 08:02
Letzter Beitrag: Bitklopfer
  LED ohne Brightnes Mathias 2 465 21.10.2015 16:33
Letzter Beitrag: Mathias
  Langes delay - wie macht man das? Gelegenheitsbastler 17 2.436 02.09.2015 20:48
Letzter Beitrag: Gelegenheitsbastler
  mal wieder ein kleines Problem mit blinken ohne delay :) Sbbfreack 6 1.734 06.07.2015 15:59
Letzter Beitrag: Sbbfreack

Gehe zu:


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