// Etape 1
#include <Bounce2.h>
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define STRIP_button1_Strip 10
#define STRIP_button2_Strip 9
#define STRIP_button3_Strip 8
#define STRIP_PIN 13
#define SWITCH_STRIP_PIN 11
#define UV_RELAY_PIN 12
#define NUMPIXELS 45
//bool INTERRUPTEURL1
/*#define button1_Strip 2
#define button2_Strip 3
#define button3_Strip 4*/
Bounce2::Button button1_Strip = Bounce2::Button();
Bounce2::Button button2_Strip = Bounce2::Button();
Bounce2::Button button3_Strip = Bounce2::Button();
Bounce2::Button button4 = Bounce2::Button();
bool flag0 = 0;
bool flag1 = 0;
bool flag2 = 0;
bool flag3 = 0;
int sup=0;
Adafruit_NeoPixel pixels(NUMPIXELS, STRIP_PIN, NEO_GRB + NEO_KHZ800);
#define DELAYVAL 500
void setup() {
pinMode(STRIP_PIN, OUTPUT);
pinMode(UV_RELAY_PIN, OUTPUT);
pinMode(SWITCH_STRIP_PIN, INPUT);
//pinMode(button1_Strip, INPUT);
//pinMode(button2_Strip, INPUT);
//pinMode(button3_Strip, INPUT);
button1_Strip.attach(STRIP_button1_Strip, INPUT);
button2_Strip.attach(STRIP_button2_Strip, INPUT);
button3_Strip.attach(STRIP_button3_Strip, INPUT);
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
clock_prescale_set(clock_div_1);
#endif
pixels.begin();
pixels.show();
}
void loop() {
button1_Strip.update();
button2_Strip.update();
button3_Strip.update();
int nbBoutonsEnfonces = button1_Strip.isPressed() + button2_Strip.isPressed() + button3_Strip.isPressed();
int borne=44;
if(nbBoutonsEnfonces == 0){
if (flag2 == true) borne = 29;
else if (flag1 == true) borne = 14;
else if (flag0 == true) borne = 0;
for (int i = sup; i >= 0; i--) {
pixels.setPixelColor(i, pixels.Color(0, 0, 0));
delay(25);
pixels.show();
}
flag0 = true;
flag1 = false;
flag2 = false;
flag3 = false;
sup = 0;
digitalWrite(UV_RELAY_PIN, LOW);
}
if(nbBoutonsEnfonces == 1 && digitalRead(SWITCH_STRIP_PIN)){
//pixels.fill(pixels.Color(0, 0, 0), 15, 45);
if (flag2 == true) borne = 29;
else if (flag1 == true) borne = 14;
else if (flag0 == true) borne = 0;
for (int i = sup; i > 14; i--) {
pixels.setPixelColor(i, pixels.Color(0, 0, 0));
delay(25);
pixels.show();
}
flag1 = true;
flag0 = false;
flag2 = false;
flag3 = false;
for (int i = 0; i <= 14; i++) {
pixels.setPixelColor(i, pixels.Color(100, 30, 0));
delay(25);
pixels.show();
sup = 14;
digitalWrite(UV_RELAY_PIN, LOW);
}
}
if(nbBoutonsEnfonces == 2 && digitalRead(SWITCH_STRIP_PIN)){
if (flag2 == true) borne = 29;
else if (flag1 == true) borne = 14;
else if (flag0 == true) borne = 0;
for (int i = sup; i > 30; i--) {
pixels.setPixelColor(i, pixels.Color(0, 0, 0));
delay(25);
pixels.show();
}
flag1 = true;
flag0 = false;
flag2 = false;
flag3 = false;
for (int i = 15; i <= 29; i++) {
pixels.setPixelColor(i, pixels.Color(100, 30, 0));
delay(25);
pixels.show();
}
sup=30;
digitalWrite(UV_RELAY_PIN, LOW);
}
button1_Strip.update();
button2_Strip.update();
button3_Strip.update();
if(/*flag1 == 1 && flag2 == 1 &&*/ nbBoutonsEnfonces == 3 && digitalRead(SWITCH_STRIP_PIN)){
flag3 = true;
flag0 = false;
flag1 = false;
flag2 = false;
for (int i = 15; i <= 45; i++) {
pixels.setPixelColor(i, pixels.Color(100, 30, 0));
delay(25);
pixels.show();
}
sup=44;
digitalWrite(UV_RELAY_PIN, HIGH);
}
button1_Strip.update();
button2_Strip.update();
button3_Strip.update();
}