2 aufgaben in einem sketch?

Hallo in die Runde

ich habe 3 Leds
die erste soll angehen und nach kurzer zeit sollen die anderen 2 Leds in Wechsel blinken. und nach etwa10 auch wieder in der reinfolge ausgehen erst die erste und kurz darauf die beiden blinkenden
leider bin ich zu unwissend, ich könnte mir da jemand helfen.
vielen Dank

bewussti:
.....könnte mir da jemand helfen.

Wobei sollen wir helfen ?

Sieh dir doch mal die Beispile in der IDE an-

  1. Blink
  2. BlinkWithoutDelay

Damit kannst du schon viel lernen.

Hallo,
zeige deinen Sketch, dann können wir dir helfen.
Oder benötigst du einen fertigen Sketch?

leider bin ich zu unwissend,

Das kannst du ändern!

Ich rate dir zu einem Ausflug in die Automaten Theorie.
Spezieller: Endliche Automaten.

hier der Sketch bin noch am basteln und probieren

void setup(){
 pinMode(12, OUTPUT);
 pinMode(11, OUTPUT);
 pinMode(10, OUTPUT);
}

void loop(){
digitalWrite(10, HIGH);
 digitalWrite(12, HIGH);
 digitalWrite(11, LOW);
 delay(200);
 digitalWrite(12, LOW);
 digitalWrite(11, HIGH);
 delay(200);
 digitalWrite(10, Low);
 
}

bekomme da aber ne Fehler Meldung

werde mich mal mit dem des ersten Post beschäftigen vielleicht bekomme ich da ja was hin
Danke

Welche Fehlermeldung ?

Dein Sketch ist fast nicht zu lesen. In einem Mobilgerät überhaupt nicht.

Setze deinen Sketch bitte in Code-Tags.

Verwende dazu die Schaltfläche </> oben links im Editorfenster.
Dazu den Sketch markieren und die Schaltfläche klicken, oder [ code] davor und [ / code] dahinter ohne Leerzeichen.
Oder
im IDE-Fenster rechte Maustaste und für "Forum kopieren klicken", danach hier einfügen.

Das kannst du in deinem Startbeitrag noch nachträglich machen.

Damit wird dieser für alle besser lesbar.

combie:
... Automaten Theorie.

Ich mag die, die Erdnüsse rauswerfen!

@bewussti: Schrittkette, endlicher Automat und finite state machine sind Stichworte zum Suchen. Zeiten solltest Du mit millis() messen.

In Forum kannst Du nach "agmue anleitung" suchen, dann findest Du von mir verfaßte Anleitungen. Ob ich da was für Dich Erhellendes geschrieben habe, kann ich aber nicht garantieren.

Es gibt auch Bibliotheken wie die MobaTools, die man verwenden kann.

Packe Dein Programm bitte in code-Tags!

Vergiß delay()!

bewussti:
bekomme da aber ne Fehler Meldung

Das findest Du selbst!

Hallo
dein Grobentwurf für die gegebene Aufgabenstellung funktioniert, wenn der Tippfehler beseitigt und eine zusätzliche delay()-Funktion am Ende eingebaut wird.

void setup(){
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
}

void loop(){
 digitalWrite(10, HIGH);
  digitalWrite(12, HIGH);
  digitalWrite(11, LOW);
  delay(200);
  digitalWrite(12, LOW);
  digitalWrite(11, HIGH);
  delay(200);
  digitalWrite(10, LOW);
  delay(200);
}

Der Sketch wird leserlicher, wenn Du für die Pins´s 10 bis 12 Namen verwendest und wenn das nur HUND, KATZE und MAUS sind :slight_smile:

Als Anregung für wildes Geblinke, also vier unabhängige Aufgaben:

uint32_t jetzt;
const byte ledPinA = 10;
const byte ledPinB = 11;
const byte ledPinC = 12;

void setup() {
  pinMode(ledPinA, OUTPUT);
  pinMode(ledPinB, OUTPUT);
  pinMode(ledPinC, OUTPUT);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  jetzt = millis();
  blinkA();
  blinkB();
  blinkC();
  herzschlag();
}

void blinkA(){
  const uint32_t INTERVALL = 222;
  static uint32_t vorhin = jetzt;
  if (jetzt - vorhin >= INTERVALL) {
    vorhin = jetzt;
    digitalWrite(ledPinA, !digitalRead(ledPinA));
  }
}

void blinkB(){
  const uint32_t INTERVALL = 1000;
  static uint32_t vorhin = jetzt;
  if (jetzt - vorhin >= INTERVALL) {
    vorhin = jetzt;
    digitalWrite(ledPinB, !digitalRead(ledPinB));
  }
}

void blinkC(){
  const uint32_t INTERVALL = 123;
  static uint32_t vorhin = jetzt;
  if (jetzt - vorhin >= INTERVALL) {
    vorhin = jetzt;
    digitalWrite(ledPinC, !digitalRead(ledPinC));
  }
}

void herzschlag() {
  const uint32_t INTERVALL = 100;
  static uint32_t vorhin = jetzt;
  if (jetzt - vorhin >= INTERVALL) {
    vorhin = jetzt;
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
  }
}

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.