int NeoPixel_2 = 13; int Drukknop1 = 12; int Drukknop1_4 = 11; int DigOutput1 = 5; int MijnBuzzer1 = 8; #include Adafruit_NeoPixel myNeo_NeoPixel_2 = Adafruit_NeoPixel(9, 13, NEO_GRB + NEO_KHZ800); boolean Drukknop1_PRESSED = LOW; boolean Drukknop1_4_PRESSED = LOW; long Drukknop1buttonTimer = 0; #define Drukknop1minShortPressTime 80 #define Drukknop1longPressTime 750 boolean Drukknop1buttonActive = false; boolean Drukknop1longPressActive = false; #define Drukknop1NOPRESS 0 #define Drukknop1SHORTPRESS 1 #define Drukknop1LONGPRESS 2 int Drukknop1PressType = Drukknop1NOPRESS; long Drukknop1_4buttonTimer = 0; #define Drukknop1_4minShortPressTime 80 #define Drukknop1_4longPressTime 750 boolean Drukknop1_4buttonActive = false; boolean Drukknop1_4longPressActive = false; #define Drukknop1_4NOPRESS 0 #define Drukknop1_4SHORTPRESS 1 #define Drukknop1_4LONGPRESS 2 int Drukknop1_4PressType = Drukknop1_4NOPRESS; // Deze functie beschrijven... void groen_worden() { myNeo_NeoPixel_2.setPixelColor(2-1, myNeo_NeoPixel_2.Color(0,255,0)); myNeo_NeoPixel_2.show(); delay(100); myNeo_NeoPixel_2.setPixelColor(3-1, myNeo_NeoPixel_2.Color(0,255,0)); myNeo_NeoPixel_2.show(); delay(100); myNeo_NeoPixel_2.setPixelColor(4-1, myNeo_NeoPixel_2.Color(0,255,0)); myNeo_NeoPixel_2.show(); delay(100); myNeo_NeoPixel_2.setPixelColor(5-1, myNeo_NeoPixel_2.Color(0,255,0)); myNeo_NeoPixel_2.show(); delay(100); myNeo_NeoPixel_2.setPixelColor(6-1, myNeo_NeoPixel_2.Color(0,255,0)); myNeo_NeoPixel_2.show(); delay(100); myNeo_NeoPixel_2.setPixelColor(1-1, myNeo_NeoPixel_2.Color(0,255,0)); myNeo_NeoPixel_2.show(); delay(100); myNeo_NeoPixel_2.setPixelColor(7-1, myNeo_NeoPixel_2.Color(0,255,0)); myNeo_NeoPixel_2.show(); delay(100); myNeo_NeoPixel_2.setPixelColor(8-1, myNeo_NeoPixel_2.Color(0,255,0)); myNeo_NeoPixel_2.show(); delay(100); myNeo_NeoPixel_2.setPixelColor(9-1, myNeo_NeoPixel_2.Color(0,255,0)); myNeo_NeoPixel_2.show(); delay(1000); digitalWrite(DigOutput1, HIGH); } void handleDrukknop1Press() { Drukknop1PressType = Drukknop1NOPRESS; if (digitalRead(Drukknop1) == Drukknop1_PRESSED) { if (Drukknop1buttonActive == false) { Drukknop1buttonActive = true; Drukknop1buttonTimer = millis(); } if ((millis() - Drukknop1buttonTimer > Drukknop1longPressTime) && (Drukknop1longPressActive == false)) { Drukknop1longPressActive = true; Drukknop1PressType = Drukknop1LONGPRESS; } } else { if (Drukknop1buttonActive == true) { if (Drukknop1longPressActive == true) { Drukknop1longPressActive = false; } else { //avoid fast fluctuations to be identified as a click if (millis() - Drukknop1buttonTimer > Drukknop1minShortPressTime) Drukknop1PressType = Drukknop1SHORTPRESS; } Drukknop1buttonActive = false; } } } void handleDrukknop1_4Press() { Drukknop1_4PressType = Drukknop1_4NOPRESS; if (digitalRead(Drukknop1_4) == Drukknop1_4_PRESSED) { if (Drukknop1_4buttonActive == false) { Drukknop1_4buttonActive = true; Drukknop1_4buttonTimer = millis(); } if ((millis() - Drukknop1_4buttonTimer > Drukknop1_4longPressTime) && (Drukknop1_4longPressActive == false)) { Drukknop1_4longPressActive = true; Drukknop1_4PressType = Drukknop1_4LONGPRESS; } } else { if (Drukknop1_4buttonActive == true) { if (Drukknop1_4longPressActive == true) { Drukknop1_4longPressActive = false; } else { //avoid fast fluctuations to be identified as a click if (millis() - Drukknop1_4buttonTimer > Drukknop1_4minShortPressTime) Drukknop1_4PressType = Drukknop1_4SHORTPRESS; } Drukknop1_4buttonActive = false; } } } // Deze functie beschrijven... void knopjes() { handleDrukknop1Press(); if (Drukknop1PressType == Drukknop1SHORTPRESS) { //START STATEMENTS SHORT PRESS groen_worden(); //END STATEMENTS SHORT PRESS } else if (Drukknop1PressType == Drukknop1LONGPRESS) { //START STATEMENTS LONG PRESS //END STATEMENTS LONG PRESS } else if (!Drukknop1longPressActive && digitalRead(Drukknop1) == Drukknop1_PRESSED) { //START STATEMENTS PRESS //END STATEMENTS PRESS } handleDrukknop1_4Press(); if (Drukknop1_4PressType == Drukknop1_4SHORTPRESS) { //START STATEMENTS SHORT PRESS flikeren(); //END STATEMENTS SHORT PRESS } else if (Drukknop1_4PressType == Drukknop1_4LONGPRESS) { //START STATEMENTS LONG PRESS //END STATEMENTS LONG PRESS } else if (!Drukknop1_4longPressActive && digitalRead(Drukknop1_4) == Drukknop1_4_PRESSED) { //START STATEMENTS PRESS //END STATEMENTS PRESS } } // Deze functie beschrijven... void flikeren() { for (int count = 0; count < 3; count++) { tone(MijnBuzzer1, 220); myNeo_NeoPixel_2.setPixelColor(1-1, myNeo_NeoPixel_2.Color(255,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(2-1, myNeo_NeoPixel_2.Color(255,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(3-1, myNeo_NeoPixel_2.Color(255,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(4-1, myNeo_NeoPixel_2.Color(255,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(5-1, myNeo_NeoPixel_2.Color(255,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(6-1, myNeo_NeoPixel_2.Color(255,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(7-1, myNeo_NeoPixel_2.Color(255,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(8-1, myNeo_NeoPixel_2.Color(255,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(9-1, myNeo_NeoPixel_2.Color(255,0,0)); myNeo_NeoPixel_2.show(); delay(100); myNeo_NeoPixel_2.setPixelColor(1-1, myNeo_NeoPixel_2.Color(0,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(2-1, myNeo_NeoPixel_2.Color(0,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(3-1, myNeo_NeoPixel_2.Color(0,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(4-1, myNeo_NeoPixel_2.Color(0,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(5-1, myNeo_NeoPixel_2.Color(0,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(6-1, myNeo_NeoPixel_2.Color(0,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(7-1, myNeo_NeoPixel_2.Color(0,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(8-1, myNeo_NeoPixel_2.Color(0,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(9-1, myNeo_NeoPixel_2.Color(0,0,0)); myNeo_NeoPixel_2.show(); delay(100); noTone(MijnBuzzer1); digitalWrite(DigOutput1, LOW); } rood(); } // Deze functie beschrijven... void rood() { myNeo_NeoPixel_2.setPixelColor(1-1, myNeo_NeoPixel_2.Color(255,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(2-1, myNeo_NeoPixel_2.Color(255,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(3-1, myNeo_NeoPixel_2.Color(255,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(4-1, myNeo_NeoPixel_2.Color(255,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(5-1, myNeo_NeoPixel_2.Color(255,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(6-1, myNeo_NeoPixel_2.Color(255,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(7-1, myNeo_NeoPixel_2.Color(255,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(8-1, myNeo_NeoPixel_2.Color(255,0,0)); myNeo_NeoPixel_2.show(); myNeo_NeoPixel_2.setPixelColor(9-1, myNeo_NeoPixel_2.Color(255,0,0)); myNeo_NeoPixel_2.show(); digitalWrite(DigOutput1, LOW); } void setup() { myNeo_NeoPixel_2.begin(); myNeo_NeoPixel_2.show(); pinMode(Drukknop1, INPUT_PULLUP); pinMode(Drukknop1_4, INPUT_PULLUP); pinMode(DigOutput1, OUTPUT); pinMode(MijnBuzzer1, OUTPUT); rood(); } void loop() { knopjes(); }