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
  NeoPixels: Sketch will nicht - Problem mit delay? Zabsi 5 424 22.08.2017 15:17
Letzter Beitrag: Tommy56
  2 Servos ohne delay steuern Ratlos 27 2.402 26.07.2017 20:43
Letzter Beitrag: MicroBahner
  LEDs ansteuern ohne Delay mir MIDI abfrage OnkelPelle 11 992 20.07.2017 22:35
Letzter Beitrag: hotsystems
  delay(...) im Code ok? donut 4 546 08.06.2017 20:16
Letzter Beitrag: donut
  Brauche Zeitverzögerung delay/millis/timer? Spiecky 17 1.400 15.04.2017 09:41
Letzter Beitrag: hotsystems
  TimeAlarm Bibliothek delay() anweisung renid55 0 362 03.01.2017 21:13
Letzter Beitrag: renid55
  Delay nurmili 2 597 10.07.2016 16:55
Letzter Beitrag: nurmili
  Problem mit Delay und Millis funnyzocker 1 1.027 26.06.2016 09:54
Letzter Beitrag: hotsystems
  PID ohne Library MeisterQ 5 1.055 01.05.2016 09:23
Letzter Beitrag: MeisterQ
  nur ein URL aufruf ohne PHP toto1975 3 1.204 05.04.2016 08:26
Letzter Beitrag: iks77

Gehe zu:


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