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
Rainbow File geht nicht zum compilieren!!!! Jocky 7 137 19.02.2017 20:01
Letzter Beitrag: Binatone
  IRremote bringe ich nicht zum laufen Franz54 5 90 19.02.2017 11:56
Letzter Beitrag: Tommy56
  Mehrere HX711 mit einem Arduino Uno be14b029 5 141 08.02.2017 18:09
Letzter Beitrag: Binatone
  Code aus 1.6.9 geht mit 1.8.1 nicht mehr zu kompilieren DL1AKP 7 259 02.02.2017 12:16
Letzter Beitrag: Tommy56
  2 ESP8266 miteinander kommunizieren lassen NormanIGB 17 642 29.01.2017 14:14
Letzter Beitrag: NormanIGB
  Mehrere Servos gleichzeitig steuern (Hexapod) scritch 7 278 25.01.2017 08:18
Letzter Beitrag: scritch
  Ausgang "blinken" lassen NormanIGB 11 469 28.12.2016 17:20
Letzter Beitrag: Tommy56
  Uhr geht ungenau trotz RTC3231 Grot 2 201 26.12.2016 13:32
Letzter Beitrag: Grot
  Sketch geht,geht nicht? malsehen 0 177 25.12.2016 21:24
Letzter Beitrag: malsehen
  mehrere Taster entprellen Kitt 15 840 24.10.2016 21:17
Letzter Beitrag: georg01

Gehe zu:


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