// Definir los pines de los LEDs ganadores
const int relePins[] = {2, 3, 4, 5};
const int numLeds = 4;
// Definir los pines de los LEDs que parpadean mientras la ruleta gira
const int flashingLedPins[] = {7, 8, 9, 10};
const int numFlashingLeds = 4;
// Definir el pin del pulsador
const int buttonPin = 6;
// Variable para almacenar la salida ganadora
int ganador;
void setup() {
// Configurar los pines de los LEDs ganadores como salidas
for (int i = 0; i < numLeds; i++) {
pinMode(relePins[i], OUTPUT);
digitalWrite(relePins[i], LOW); // Apagar los LEDs ganadores al inicio
}
// Configurar los pines de los LEDs que parpadean como salidas
for (int i = 0; i < numFlashingLeds; i++) {
pinMode(flashingLedPins[i], OUTPUT);
digitalWrite(flashingLedPins[i], LOW); // Apagar los LEDs parpadeantes al inicio
}
// Configurar el pin del pulsador como entrada
pinMode(buttonPin, INPUT);
// Inicializar el generador de números aleatorios
randomSeed(analogRead(0));
}
void loop() {
// Verificar si el pulsador está presionado
if (digitalRead(buttonPin) == HIGH) {
//Girar la ruleta
girarRuleta();
// Encender el LED ganador
digitalWrite(flashingLedPins[ganador], HIGH);
// Encender el módulo de relé
digitalWrite(relePins[ganador], HIGH);
delay(1000); // Mantener el LED ganador encendido durante 1 segundo
digitalWrite(flashingLedPins[ganador], LOW); // Apagar el LED ganador
// Apagar el módulo de relé
digitalWrite(relePins[ganador], LOW);
}
}
void girarRuleta() {
// Generar un número aleatorio para seleccionar la salida ganadora
ganador = random(0, numLeds);
// Generar un tiempo de giro aleatorio entre 3000 y 6000 ms
int tiempoGiro = random(3000, 6001);
randomSeed(analogRead(0));
int i = random(0, numLeds);
// Girar la ruleta
unsigned long tiempoInicio = millis();
//Giran los leds
while (millis() - tiempoInicio < tiempoGiro) {
digitalWrite(flashingLedPins[i], HIGH);
delay(50); // Tiempo de encendido de los LEDs que parpadean
for (int i = 0; i < numFlashingLeds; i++) {
digitalWrite(flashingLedPins[i], LOW);
}
delay(50); // Tiempo de apagado de los LEDs que parpadean
i++;
if(i>=numLeds)
{
i = 0;
}
//Parpadean todos los leds
// while (millis() - tiempoInicio < tiempoGiro) {
// // Encender los LEDs que parpadean mientras la ruleta gira
// for (int i = 0; i < numFlashingLeds; i++) {
// digitalWrite(flashingLedPins[i], HIGH);
// }
// delay(100); // Tiempo de encendido de los LEDs que parpadean
// for (int i = 0; i < numFlashingLeds; i++) {
// digitalWrite(flashingLedPins[i], LOW);
// }
// delay(100); // Tiempo de apagado de los LEDs que parpadean
}
}