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
  Wie Programmiere ich mehrere if-Abfragen? Mr.Purz 4 131 09.12.2017 12:36
Letzter Beitrag: hotsystems
  Schleifen mit Vorrang Cyrilsneer 9 377 11.11.2017 09:22
Letzter Beitrag: Binary1
  I2C Slave Empfang geht aber Senden? Franz54 9 572 09.11.2017 22:05
Letzter Beitrag: Tommy56
Question Mehrere HX711 an einem Arduino Nano Lambacher 59 2.312 17.10.2017 09:34
Letzter Beitrag: Tommy56
  2 LEDs unabhängig blinken lassen cappy0815 1 308 26.09.2017 07:42
Letzter Beitrag: hotsystems
  ATtiny13 mit der Arduino IDE 1.0.6 programmieren - geht das? Gelegenheitsbastler 5 2.978 11.09.2017 15:24
Letzter Beitrag: Mathias
Lightbulb mehrere Funktionen mit Schalter mechastef 7 894 21.08.2017 22:34
Letzter Beitrag: SkobyMobil
Brick Welcher FTP Client um mehrere Dateien auf den Server zu schieben. derAllgaeuer 26 2.144 19.08.2017 21:27
Letzter Beitrag: Bitklopfer
  LCD geht nicht - keine Ahnung warum?? DL1AKP 12 1.052 15.05.2017 13:17
Letzter Beitrag: DL1AKP
Rainbow File geht nicht zum compilieren!!!! Jocky 7 702 19.02.2017 20:01
Letzter Beitrag: Binatone

Gehe zu:


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