#include <Adafruit_NeoPixel.h>
#define PIN 9
#define NUM_LEDS 2
// Parameter 1 = number of pixels in strip
// Parameter 2 = pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
// NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)
// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);
#define BT 4
#define BTN 2
#define Vert 6
#define Rouge 10
#define Blanc 11
#define Orange 12
#define Bleu 13
int Bleu_State = LOW;
int Orange_State = LOW;
int brightness = 0;
unsigned long prevTime_T1 = millis ();
unsigned long prevTime_T4 = millis ();
long interval_T1 = 1500;
long interval_T4 = 800;
void setup() {
Serial.begin(9600);
pinMode(PIN, OUTPUT);
pinMode(Blanc, OUTPUT);
pinMode(Rouge, OUTPUT);
pinMode(Bleu, OUTPUT);
pinMode(Vert, OUTPUT);
pinMode(Orange, OUTPUT);
pinMode(BTN, INPUT_PULLUP);
pinMode(BT, INPUT_PULLUP);
digitalWrite(Blanc, HIGH);
strip.begin();
}
void loop() {
unsigned long currentTime = millis();
// Task 1 LED Orange clignote rapidement
if (currentTime - prevTime_T4 > 800) {
Orange_State = !Orange_State;
digitalWrite(Orange, Orange_State);
prevTime_T4 = currentTime;
}
// Task 2 LED bleu clignote lentement
if (currentTime - prevTime_T1 > 1500) {
Bleu_State = !Bleu_State;
digitalWrite(Bleu, Bleu_State);
prevTime_T1 = currentTime;
}
//Task 3 Neopixels s'allument en jaune et flicker
strip.fill(strip.Color(255, 153, 0), 0, 2);// pixel color set to yellow
strip.setBrightness(random(150,255)); // random brightness adjust for flicker effect
strip.show();
// Task 4 LED Vert s'allume avec BT
if (digitalRead(BT) == HIGH){
delay(30);
digitalWrite(Vert, LOW);
} else {
digitalWrite(Vert, HIGH);
}
for (int bright = 255; bright = 0; bright --) {
strip.setBrightness(bright);
strip.show();
}
// Task 5 LED Rouge flashe 4 fois avec BTN
if (digitalRead(BTN) == LOW){
//Je bloque tout "multitâche pendant 800*4=3200ms"
for (int i=0; i<4; i=i+1) {
digitalWrite (Rouge, HIGH);
delay (400);
digitalWrite (Rouge, LOW);
delay (400);
}
}
else{
digitalWrite(Rouge, LOW);
}
}