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
  Leds dimmen ohne delay jennerlein 9 668 20.04.2018 02:04
Letzter Beitrag: Corvus
  Struct mit Defaultdaten ohne initalisieren nutzen? da_user 14 626 22.03.2018 19:11
Letzter Beitrag: da_user
  Delay summiert sich auf Moe 7 557 26.02.2018 22:50
Letzter Beitrag: hotsystems
  Buzzer ohne Delay Harry 9 848 23.01.2018 12:30
Letzter Beitrag: Tommy56
  Arduino Software ohne Bibliotheken-Manager bertl68 3 499 02.01.2018 18:36
Letzter Beitrag: Tommy56
  Arduino Software Serial - Delay notwendig? Zipfel1 18 1.446 02.01.2018 11:59
Letzter Beitrag: Tommy56
  NeoPixels: Sketch will nicht - Problem mit delay? Zabsi 5 916 22.08.2017 15:17
Letzter Beitrag: Tommy56
  2 Servos ohne delay steuern Ratlos 27 3.920 26.07.2017 20:43
Letzter Beitrag: MicroBahner
  LEDs ansteuern ohne Delay mir MIDI abfrage OnkelPelle 11 1.608 20.07.2017 22:35
Letzter Beitrag: hotsystems
  delay(...) im Code ok? donut 4 890 08.06.2017 20:16
Letzter Beitrag: donut

Gehe zu:


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