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, Arduino programmieren
Warum wird die variable komplett hochgezählt?

Ich möchte das bei dem unten geschriebenen Sketch das wen beide Taster gedrückt sind die variable um 1 hochgezählt wird aber wen beide gedrückt sind wird die variable bis 4 hoch gezählt ?

int led1 = 12;
int led2 = 11;
int led3 = 10;
int led4 = 9;
int button = 8;


int tasterstatus = 0;


int i=0;
bool oldButtonState = HIGH;
bool newButtonState;
int count = 0;


int taster=7;
void setup() {
  pinMode(button, INPUT_PULLUP);
  
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);


  pinMode (taster,INPUT_PULLUP);


  Serial.begin (9600);
}


void loop() {
  newButtonState = digitalRead(button);


 tasterstatus = digitalRead(taster);


  if (oldButtonState == HIGH && newButtonState == LOW) {
    count++;
    oldButtonState = newButtonState;


    if (count == 1) {
      digitalWrite(led1, HIGH);
    }
    if (count == 2) {
      digitalWrite(led1, LOW);
      digitalWrite (led2,HIGH);
    }


   if (count == 3){
    digitalWrite (led2,LOW);
    digitalWrite (led3,HIGH);   
   }


   if (count == 4){
    digitalWrite (led3,LOW);
    digitalWrite (led4,HIGH);
   }


   if (count == 5){
    digitalWrite (led4,LOW);
    count = 0;
   }






   if ((tasterstatus == HIGH) && (count = 1)){


    i=1;
   }


   if ((tasterstatus == HIGH) && (count = 2)){
    i=2;
   }


   if ((tasterstatus == HIGH) && (count = 3)){
    i=3;
   }


   if ((tasterstatus == HIGH) && (count = 4)){
    i = 4;
   }




   if (i=1){
    Serial.println ("i 1");
   }
   if (i=2);{
    Serial.println ("i 2");
   }


  if (i = 3){
   Serial.println ("i 3");
  }


  if (i = 4 ){
    Serial.println ("i 4");
  }


    delay(100);
  } else if (oldButtonState == LOW && newButtonState == HIGH) {
    oldButtonState = newButtonState;
  }
}
Computer, Programmieren, arduino, Informatik, Variablen, taster
Welche Lichtschalter brauche ich hier genau?

Moin,

bei uns wird hier der Flur renoviert und wir wollen hier einige alte Lichtschalter gegen neue austauschen. Wir habe hier im Flur fünf Stellen. Drei Einzelstellen und eine Doppelstelle. Die drei Einzelstellen sind für das Ein- und Ausschalten der Lampe im Flur verantwortlich, eine Stelle der Doppelstelle ist ebenfalls für das Ein- und Ausschalten der Lampe im Flur verantwortlich, die andere Stelle der Doppelstelle ist eine von drei Stellen mit denen die andere Lampe im Treppenhaus bedient werden kann. Nun habe ich überall gesucht, stundenlang recherchiert und habe mir auf eigene Faust einige Wipptaster von Busch-Jaeger gekauft, die Schaltung geht jedoch nicht. Daher wollte ich hier mal fragen. Welche Schalter brauche ich denn genau für diese fünf Stellen? Oder was heißt Schalter...besser gesagt Taster...kenne mich da nicht mal mit der Bezeichnung so genau aus...eben so ein Schalter, wo man draufdrückt und der springt dann wieder in seine Ausgangsposition zurück...wäre dankbar, wenn mir jemand sagen könnte, was ich da für Schalter/Taster/whatever brauche...Falls es noch relevant sein sollte: drei von den fünf sind 6er Kabel (zwei blaue, zwei schwarze, zwei gelbgrüne Adern)....wäre ganz nett, wenn mir jemand zu den passenden Bezeichnungen auch gleich Kaufangebote (am besten auf Amazon) als Link reinposten könnte...danke!

Elektronik, Renovierung, Sanierung, Lichtschalter, taster

Meistgelesene Fragen zum Thema Taster