int leds[] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
int derecha = 13, izquierda = 10;
int potPin = A0; // Pin analógico para el potenciómetro
int i, DE, IZ;
int tiempoCambioCarril = 5000; // 5 segundos para cambiar de carril
unsigned long tiempoInicioCambioCarril = 0;
void setup() {
for (i = 0; i <= 9; i++) {
pinMode(leds[i], OUTPUT);
}
pinMode(derecha, INPUT);
pinMode(izquierda, INPUT);
pinMode(potPin, INPUT);
}
void loop() {
DE = digitalRead(derecha);
IZ = digitalRead(izquierda);
// Direccional a la Derecha
if (DE == HIGH) {
// Proceso de derecha:
AccionDerecha();
tiempoInicioCambioCarril = millis(); // Inicia el temporizador
} else if (IZ == HIGH) {
// Proceso de izquierda
AccionIzquierda();
tiempoInicioCambioCarril = millis(); // Inicia el temporizador
}
// Verifica si han pasado 5 segundos desde el inicio del cambio de carril
if (millis() - tiempoInicioCambioCarril >= tiempoCambioCarril) {
ApagarDireccionales();
}
}
void AccionDerecha() {
for (i = 4; i >= 0; i--) {
digitalWrite(leds[i], HIGH);
delay(150);
digitalWrite(leds[i], LOW);
}
}
void AccionIzquierda() {
for (i = 5; i <= 9; i++) {
digitalWrite(leds[i], HIGH);
delay(150);
digitalWrite(leds[i], LOW);
}
}
void ApagarDireccionales() {
for (i = 0; i <= 9; i++) {
digitalWrite(leds[i], LOW);
}
}