mehrere Funktionen mit einem Taster ausführen?

Hallo

Ich möchte, dass ich wenn ich den Taster 1x drücke, die LEDs Weiss sind und wenn ich ihn 2x drücke, dass sie z.B. Blau sind. Wie kann ich so etwas machen?

Ich habe den Code, damit sie weiss sind schon einmal. Doch wie kann ich bei 2x drücken eine Funktion ausführen?



#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif




int tasterPin = 5; //taster an pin5






#define PIN        4 // An welchem Pin ist die LED angeschlossen


#define NUMPIXELS 60 // Anzahl LEDs




Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);


#define DELAYVAL 30 // Definiert, dass die Variabel DELAYVAL 30millisekunden pause bedeutet




void setup() {


  //
  Serial.begin(115200);
  Serial.println();
  Serial.println("ESP gestartet");


  pinMode(tasterPin, INPUT_PULLUP);
  //




  //einstellungen für LEDs
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
  clock_prescale_set(clock_div_1);
#endif
  // nur, falls man eine externe energiequelle hat


  pixels.setBrightness(255); // Helligkeit auf 50 - höchster wert : 255
  pixels.begin();
}
//einstellungen für LEDs ende


void loop() {




  if (digitalRead(tasterPin) == LOW) {
    Serial.println("Status: Taster Gedrückt");
    Serial.println("Effekt wird abgespielt...");
    delay(100);


    pixels.clear(); // Schaltet alle Pixel auf "OFF"


    for (int i = 0; i < NUMPIXELS; i++) { // Für jede LED...


      //Das ist ein RGB LED streifen das R steht für ROT G = Grün und B = Blau
      pixels.setPixelColor(i, pixels.Color(255, 255, 255));


      pixels.show();   // Sendet die geänderten LED farben zum LED Streifen (neue Farbe)


      delay(DELAYVAL); //pause
    } //...


    //
    delay(30000); //30000 Millisekunden weiss (wartet 10000 Millisekunden)
    //


    for (int i = 0; i < NUMPIXELS; i++) { // Für jede LED...


      pixels.setPixelColor(i, pixels.Color(0, 0, 0));


      pixels.show();


      delay(DELAYVAL); // Pause bevor es neu startet


    }


  } else {
    Serial.println("Status: Taster nicht Gedrückt");
    delay(100);
  }




}//...

Danke für die Antworten :)

LG

Computer, Technik, Elektronik, programmieren, Arduino, Technologie, taster, ESP8266, Spiele und Gaming, Arduino IDE

Meistgelesene Beiträge zum Thema Arduino