Arduino millis()-delay ungenau

OP #5253521
Lesenswert?
• ▲
▼
Hallo alle zusammen und schon mal frohe Weihnachten,
allerdings habe ich ein kleines Problem welches das timen ohne delay in 
der Arduino-Umgebung angeht. Ich möchte eine LED für 6 Sekunden angehen 
lassen und wieder danach ausschalten und das auf Knopfdruck. Ich habe 
mir schon einen entsprechenden Sketch geschrieben, der auch prinzipiell 
funktionier nur stimmt die Wartezeit überhaupt nicht. Ich bekomme bei 
jedem Versuch andere Werte die von ca. 2 bis 5 Sekunden variieren, 
jedoch kein einziges Mal 6 Sekunden. Kann mir eventuell jemand einen 
Denkanstoß geben woran das liegen kann?

Hier noch mein Code:
1
int buttonPin = 2;
2
int ledPin = 13;
3
int ledState = LOW;
4

5
unsigned long current;
6
unsigned long previous = 0;
7

8
void setup(){
9

10
  pinMode(buttonPin, INPUT);
11
  pinMode(ledPin, OUTPUT);
12

13
}
14

15
void loop(){
16

17
  current = millis();
18

19
  if(digitalRead(buttonPin) == HIGH && ledState == LOW){
20
  
21
  digitalWrite(ledPin, HIGH);
22
  ledState = HIGH;
23
  
24
  }
25
  
26
  if(current - previous > 6000){
27
  
28
  if(ledState == HIGH){
29
  
30
    digitalWrite(ledPin, LOW);
31
    ledState = LOW;
32
    
33
  }
34
  
35
  previous = current;
36
  
37
  } 
38
  
39
}

MFG
Lukas
Gast #5253528
Lesenswert?
• ▲
▼
Lukas D. schrieb:
> Kann mir eventuell jemand einen
> Denkanstoß geben woran das liegen kann?

Du bist jetzt schon zweiainhalb Jahre hier angemeldet und
schaffst es nicht deinen Code hier bernünftig zu posten
und in [c] Tags zu klammern?

Noch nie gelesen was hier vor jedem Textfenster zum
Posten steht?

>> Wichtige Regeln - erst lesen, dann posten!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.