/* attiny85 4 leds aleatoire millis
allumage et extinction aleatoires de 4 LEDs
simulation:
ATtiny85
=|1 U 8|= VCC
Led4 <--3 =|2 7|= 2--> Led3
random -->A2 =|3 6|= 1--> Led2
GND =|4 5|= 0--> Led1
*/
// Définition des broches des LEDs
const byte ledPins[] = {0, 1, 2, 3};
const byte numLeds = 4;
// États et variables pour chaque LED
bool ledStates[4] = {LOW, LOW, LOW, LOW};
unsigned long previousMillis[4] = {0, 0, 0, 0};
unsigned int intervals[4] = {0, 0, 0, 0};
void setup() {
// Initialisation des broches en sortie
for (byte i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT);
}
randomSeed(analogRead(A2)); // Initialisation du générateur aléatoire
//for (byte i = 0; i < numLeds; i++) {
//intervals[i] = 1000 * random(5, 20);
//}
}
void loop() {
unsigned long currentMillis = millis();
// Gestion de chaque LED
for (byte i = 0; i < numLeds; i++) {
if (currentMillis - previousMillis[i] >= intervals[i]) {
previousMillis[i] = currentMillis;
ledStates[i] = !ledStates[i]; // Inversion de l'état
intervals[i] = 1000 * random(20, 60); // Nouvel intervalle aléatoire
digitalWrite(ledPins[i], ledStates[i]);
}
}
}