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
Mehrere Schleifen parallel laufen lassen. Wie geht das??
17.08.2014, 15:47
Beitrag #1
Mehrere Schleifen parallel laufen lassen. Wie geht das??
Hallo Community,

ich bin gerade dabei mit einem Arduino Micro eine Steuerung für 6 LED Streifen und einem Großen LED zu realisieren. Ich habe einen Code der mir das große LED anschaltet wenn ein am Arduino angeschlossener Modellbau-Empfänger ein Signal ausgibt. Das funktioniert sehr gut.

Das Problem:
Die 6 LED Streifen möchte ich in drei Arten blinken lassen. Da zu brauche ich ja 3 If-Anweisungen die mir bei dem richtigen Wert vom Empfänger die LED Streifen anschalten. Nun ist es so das ich in den If-Anweisungen kleine Warte-Pausen einbauen muss und so kann ich nicht jeder zeit die Art des blinken der LED Streifen ändern.
Dazu kommt das der Arduino in der "Wartezeit" nicht das große LED anschalten kann.

Wie kann ich dieses Problem umgehen??

Danke für jede Hilfe!!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.08.2014, 17:17 (Dieser Beitrag wurde zuletzt bearbeitet: 17.08.2014 17:24 von rkuehle.)
Beitrag #2
RE: Mehrere Schleifen parallel laufen lassen. Wie geht das??
Hallo Hendrik,

ich vermute mal, dass du aktuell die "Pausen" über delay() realisierst? Wenn ja, hier der Hinweis auf Blinken ohne delay() http://playground.arduino.cc/Learning/Bl...outDelayDe .
Das dort genutzte Prinzip vermeidet delay() durch Nutzung von millis(). In Folge ist der Arduino in der Lage "nebenbei" noch andere Sachen abzuarbeiten.
Generell sieht der Code so aus (danke an Thorsten Smile):
Code:
/* previousMillis -> Startzeitpunkt der Pause
   currentMillis -> aktuelle Zeit
   interval -> Zeitdauer der Pause */
unsigned long currentMillis = millis();
   if(currentMillis - previousMillis > interval) {
    previousMillis = currentMillis;  
    ... // Hier die Aktion, die nach Ablauf der Pause losgehen soll
   }
Das Verfahren musst du nur auf alle Streifen anwenden und schon solltest du zum Ziel kommen.
Grüße RK
PS: Parallel ist natürlich nicht, aber ganz schnell hintereinader schon Smile

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.08.2014, 11:19
Beitrag #3
RE: Mehrere Schleifen parallel laufen lassen. Wie geht das??
Danke !!!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Brick Welcher FTP Client um mehrere Dateien auf den Server zu schieben. derAllgaeuer 24 900 Gestern 11:36
Letzter Beitrag: Bitklopfer
Lightbulb mehrere Funktionen mit Schalter mechastef 4 286 02.07.2017 15:58
Letzter Beitrag: Tommy56
  LCD geht nicht - keine Ahnung warum?? DL1AKP 12 643 15.05.2017 13:17
Letzter Beitrag: DL1AKP
Rainbow File geht nicht zum compilieren!!!! Jocky 7 460 19.02.2017 20:01
Letzter Beitrag: Binatone
  IRremote bringe ich nicht zum laufen Franz54 5 401 19.02.2017 11:56
Letzter Beitrag: Tommy56
  Mehrere HX711 mit einem Arduino Uno be14b029 5 522 08.02.2017 18:09
Letzter Beitrag: Binatone
  Code aus 1.6.9 geht mit 1.8.1 nicht mehr zu kompilieren DL1AKP 7 617 02.02.2017 12:16
Letzter Beitrag: Tommy56
  Mehrere Servos gleichzeitig steuern (Hexapod) scritch 7 665 25.01.2017 08:18
Letzter Beitrag: scritch
  Ausgang "blinken" lassen NormanIGB 11 987 28.12.2016 17:20
Letzter Beitrag: Tommy56
  Uhr geht ungenau trotz RTC3231 Grot 2 371 26.12.2016 13:32
Letzter Beitrag: Grot

Gehe zu:


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