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
  mehrere Taster entprellen Kitt 15 532 24.10.2016 21:17
Letzter Beitrag: georg01
  Taster für mehrere Funktionen matthias3579 5 353 16.08.2016 16:00
Letzter Beitrag: StephanBuerger
  Mehrere Wertabfragen blebbens 5 375 18.06.2016 22:58
Letzter Beitrag: Scheams
  2 und mehrere Led´s mit Fernbedienung AN / AUS + Blinkfunktion Golffahrer 22 946 07.06.2016 11:31
Letzter Beitrag: hotsystems
  tip für Qellcode nur 1mal ablaufen lassen himbeersirup 4 355 19.05.2016 11:51
Letzter Beitrag: himbeersirup
  SoftwareSerial Baudrate automatisch korrekt erkennen - geht das? Gelegenheitsbastler 5 534 21.04.2016 12:32
Letzter Beitrag: SkobyMobil
  Mehrere Abläufe gleichteitig mit "Millis" MarkusSpielt 3 682 11.04.2016 18:23
Letzter Beitrag: MarkusSpielt
  Programme lassen sich nicht auf das Gemma Board downloaden! Jack Sparrow 13 567 08.04.2016 10:01
Letzter Beitrag: hotsystems
  Lampe mit Key leuchten lassen FCraftLP 1 476 05.03.2016 11:44
Letzter Beitrag: hotsystems
  for- Schleifen Solarzelle? 12 1.174 28.02.2016 20:46
Letzter Beitrag: Solarzelle?

Gehe zu:


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