Arduino: LED Streifen mit mehreren Blinkmodi

Gast #4678267
Hallo liebe Community

Ich habe eine Frage bezüglich des Arduino.

Ich habe nun folgenden Sketch programmiert, der die drei LED Streifen 
blinken lässt.

Hier ist der Code:


int switchState = 0;
void setup() {
  pinMode(3,OUTPUT);
  pinMode(2,INPUT);
}

void loop() {
  switchState = digitalRead(2);

  if(switchState == LOW) { // Der Schalter wird nicht gedrückt.
  digitalWrite(3, LOW); // alle drei LED-Streifen
  }

  else { // Der Schalter wird gedrückt.
  digitalWrite(3, HIGH);

  delay(20);
  digitalWrite(3, HIGH);
  digitalWrite(3, LOW);
  delay(100);

  delay(600);

  }
}




Jetzt möchte ich noch einen Modi mehr "einbauen", den man über einen 
weiteren Drucktaster starten kann, der aber, genau wie beim Code oben, 
alle drei LED Streifen blinken lässt.


Also wenn ich den ersten Schalter drücke, wird Modi 1 (langsam blinken) 
gestartet, wenn ich den zweiten Schalter drücke, kommt Modi 2 (schnelles 
blinken) zum Einsatz.


Nun meine Frage:

Wie muss ich das genau programmieren? Oder wie kann ich einen zweiten 
Schalter ansprechen?

Bitte nur Hinweise, da ich anschließend die Lösung selber herausfinden 
möchte.



Vielen Dank!

Mit freundlichen Grüssen

Gabriel
Gast #4678360
Versuch mal

int switchStateT1 = 0;
int switchStateT2 = 0;
void setup() {

  pinMode(3,OUTPUT);
  pinMode(2,INPUT);
  pinMode(4,INPUT);

}

void loop() {

  switchStateT1 = digitalRead(2);
  switchStateT2 = digitalRead(4);
  if(switchStateT1 == HIGH) { // Der Schalter wird nicht gedrückt.
   digitalWrite(3, HIGH);
delay(2000);
  digitalWrite(3, LOW);
  }
  if(switchStateT1 == HIGH) { // Der Schalter wird nicht gedrückt.
   digitalWrite(3, HIGH);

  delay(1000);
  digitalWrite(3, LOW);

  }


  else { // Der Schalter wird gedrückt.
  digitalWrite(3, LOW);


  }
}


Taster an Pin 4  die delay kannst du dann selbst setzen
Gast #4678370
Bau doch erst mal einen 2ten Taster ein.
Und wenn das geht, muss man den aktuellen Modis speichern.

Was ist das Problem für einen zweiten Taster
switchState2 = digitalRead( <wo auch immer der 2te Taster angeschlossen 
ist>);
einzubauen?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.