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
Langes delay - wie macht man das?
27.08.2015, 10:52
Beitrag #9
RE: Langes delay - wie macht man das?
Hallo,

such mal im www unter 'Timer.h'.
Da sind Beispiele drinnen, die zwei unterschiedliche Zeiten ausführen und die Delays fallen somit raus.
Ich versteh sowieso nicht, dass immer diese (für mich) umständliche Sache mit vorher/nachher-millis immer wieder Anwendung findet, egal. Es kann ja jeder wie er mag.

Gruß Franz
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.08.2015, 11:21 (Dieser Beitrag wurde zuletzt bearbeitet: 27.08.2015 11:22 von HaWe.)
Beitrag #10
RE: Langes delay - wie macht man das?
zum Lernen für blutige Anfänger nicht ganz verkehrt die millis-Sache, aber ansonsten finde ich sie auch total verquer und unübersichtlich. Ich behelfe mir ebenfalls anders.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.08.2015, 19:56
Beitrag #11
RE: Langes delay - wie macht man das?
Zitat:Ich versteh sowieso nicht, dass immer diese (für mich) umständliche Sache mit vorher/nachher-millis immer wieder Anwendung findet
Weil man so mehrere voneinander unabhängige Vorgänge laufen lassen kann, ohne dass die sich gegenseitig beeinflussen (aufeinander warten) und gleichzeitig Schleifenkonstrukte (for, while) im code vermeidet. So kann man eine Art Multitasking mit festem Zeitmultiplexing realisieren.
Stichwort Finite State Machine.

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.08.2015, 22:55 (Dieser Beitrag wurde zuletzt bearbeitet: 27.08.2015 23:01 von HaWe.)
Beitrag #12
RE: Langes delay - wie macht man das?
das ist mir (und ich denke, auch alpenpower) schon klar, aber wir beide machen das mit der timer-lib (bzw ich mit der DueTimer-lib) , indem wir einfach für jedes gewünschte Intervall jeweils einen neuen Timer spendieren statt mit den ganzen hunderttausend milli-Differenzen zu jonglieren... Wink

ich finde für die AVRs überigens SimpleTimer.h http://playground.arduino.cc/Code/SimpleTimer noch weit einfacher als Timer.h
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.08.2015, 10:45
Beitrag #13
RE: Langes delay - wie macht man das?
Ich habe mir die "SimpleTimer-Lib" mal angesehen und kann das nur bestätigen.

(27.08.2015 22:55)HaWe schrieb:  ich finde für die AVRs überigens SimpleTimer.h http://playground.arduino.cc/Code/SimpleTimer noch weit einfacher als Timer.h

Diese ist sehr einfach zu händeln.

Allerdings ist es für "Anfänger", um in die Materie reinzukommen einfacher das erst mal mit den "millis" zu lernen.

Einen direkten Download der Library gibt es hier:

https://github.com/jfturcot/SimpleTimer

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.09.2015, 17:33
Beitrag #14
RE: Langes delay - wie macht man das?
Wie schon geschrieben, funktioniert die Schaltung wie gewünscht. Nun kommt aber eine neue Anforderung hinzu, bei der ich nicht weiß, wie ich es angehen soll. Es soll ein weiterer Taster installiert werden. Wird dieser Taster gedrückt, soll der lang laufende Timer wieder auf null gestellt werden und von vorne laufen. Wie macht man das?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.09.2015, 17:53
Beitrag #15
RE: Langes delay - wie macht man das?
Dazu müsstest du uns den aktuellen Sketch zeigen. Bitte diesen hier in Code-Tags, mit dem "#" einfügen.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.09.2015, 18:11 (Dieser Beitrag wurde zuletzt bearbeitet: 02.09.2015 18:14 von Gelegenheitsbastler.)
Beitrag #16
RE: Langes delay - wie macht man das?
Da hat sich, abgesehen davon, dass ich aufgeräumt habe, nicht viel verändert.
Drücke ich den Taster, beginnt eine LED zu blinken und ein Relais wird angezogen. Nun soll der Timer für das Relais auf null gesetzt werde und von vorne beginnen, wenn der Taster nochmals gedrückt wird.

Code:
#include "avr/wdt.h"
const int ledPin =  1;
const int relaisPin = 0;
const int tasterPin = 2;


int ledState = LOW;
int relaisState = LOW;

unsigned long previousMillis = 0;
unsigned long previousMillisRelais = 0;

const long interval = 200;
const long intervalRelais = 3600000;


void setup() {
  wdt_disable();
  pinMode(ledPin, OUTPUT);
  pinMode(relaisPin, OUTPUT);
  pinMode(tasterPin, INPUT);
  digitalWrite(tasterPin, HIGH);
  digitalWrite(relaisPin, LOW);
  wdt_enable(WDTO_4S);  
}

void loop()
{
  unsigned long currentMillis = millis();
  unsigned long currentMillisRelais = millis();
  
    if(currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;  
        if (ledState == LOW)
      ledState = HIGH;
    else
      ledState = LOW;
   digitalWrite(ledPin, ledState);

  }
  
  
     if(currentMillisRelais - previousMillisRelais >= intervalRelais) {
    previousMillisRelais = currentMillisRelais;  

    if (relaisState == LOW)
      relaisState = HIGH;
    else
      relaisState = LOW;

       digitalWrite(relaisPin, relaisState);
     }
      
wdt_reset();

}
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 430 15.04.2017 09:41
Letzter Beitrag: hotsystems
  Welche schleife macht Sinn? Franklin 11 305 18.03.2017 15:39
Letzter Beitrag: MicroBahner
  Mein Skript macht nicht das was es soll ;( DerMatze79 4 200 16.03.2017 22:19
Letzter Beitrag: MicroBahner
  Servo macht komische Sachen Jochenv 7 239 08.03.2017 00:23
Letzter Beitrag: Jochenv
  Programmablauf macht nicht das was ich möchte !! ESP + Blynk b3ta 3 194 01.03.2017 14:29
Letzter Beitrag: Tommy56
  TimeAlarm Bibliothek delay() anweisung renid55 0 173 03.01.2017 21:13
Letzter Beitrag: renid55
  Delay nurmili 2 397 10.07.2016 16:55
Letzter Beitrag: nurmili
  Problem mit Delay und Millis funnyzocker 1 716 26.06.2016 09:54
Letzter Beitrag: hotsystems
  Kann ich in eine For Schleife einen delay einbauen JanGamer11 6 748 05.01.2016 12:34
Letzter Beitrag: Hilgi
  Rampe ohne Delay DC-Motor de_flexus 3 2.520 22.11.2015 13:07
Letzter Beitrag: frank2000

Gehe zu:


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