//Tema: Aporte Practico de sensores
//Asignatura: Sistemasa Digitales
//Se declara los valores de los leds que conforman parte del Auto
// {0,1,2,3,4,5,6,7,8,9};
int Focos[] = {15,2,4,5,18,19,21,22,23,13};
// Focos[] = {4,5,6,7,8,9,10,11,12,13};
// Se declaran los valores de los pulsadores que conforman parte del Auto
int PulsadorIzq = 27;
int PulsadorDer = 12;
int PulsadorP = 14;
// Indicamos el estado de los pulsadores
int DireccionalIzq = 0;
int DireccionalDer = 0;
int Parqueo = 0;
//Establecemos dos tiempos ya que la velocidad de las direccionales es diferente a la del parqueo del Auto
int tiempo=300;
int tiempo2=500;
void setup()
{
//Implementamos un contador para todo los focos de las guias leds del Auto
for(int i=0;i<10;i++){
pinMode(Focos[i],OUTPUT);
}
//Los pulsadores son las entrada de corriente para el encendido de las guias
pinMode(DireccionalIzq,INPUT);
pinMode(DireccionalDer,INPUT);
pinMode(Parqueo,INPUT);
}
void loop()
{
//Cuando los pulsadores sean presionados mandaran corriente el cual es 1
DireccionalIzq = digitalRead(PulsadorIzq);
DireccionalDer = digitalRead(PulsadorDer);
Parqueo = digitalRead(PulsadorP);
if(Parqueo == 0 && DireccionalIzq == 0 && DireccionalDer == 0){
Circulo();
}
if (DireccionalIzq == HIGH){
Guia_izquierda();
}
if (DireccionalDer== HIGH){
Guia_derecha();
}
if (Parqueo == HIGH){
Luz_parqueo();
}
}
void Guia_izquierda(){ //Encedera los leds que indicaran hacia la izquierda del Auto
digitalWrite(Focos[7], HIGH);
digitalWrite(Focos[4], HIGH);
digitalWrite(Focos[5], HIGH);
delay(tiempo);
digitalWrite(Focos[7], LOW);
digitalWrite(Focos[4], LOW);
digitalWrite(Focos[5], LOW);
delay(tiempo);
digitalWrite(Focos[8], HIGH);
digitalWrite(Focos[2], HIGH);
digitalWrite(Focos[3], HIGH);
delay(tiempo);
digitalWrite(Focos[8], LOW);
digitalWrite(Focos[2], LOW);
digitalWrite(Focos[3], LOW);
delay(tiempo);
digitalWrite(Focos[9], HIGH);
digitalWrite(Focos[1], HIGH);
digitalWrite(Focos[0], HIGH);
delay(tiempo);
digitalWrite(Focos[9], LOW);
digitalWrite(Focos[1], LOW);
digitalWrite(Focos[0], LOW);
}
void Guia_derecha(){//Encedera los leds que indicaran hacia la derecha del Auto
digitalWrite(Focos[9], HIGH);
digitalWrite(Focos[2], HIGH);
digitalWrite(Focos[0], HIGH);
delay(tiempo);
digitalWrite(Focos[9], LOW);
digitalWrite(Focos[2], LOW);
digitalWrite(Focos[0], LOW);
delay(tiempo);
digitalWrite(Focos[8], HIGH);
digitalWrite(Focos[4], HIGH);
digitalWrite(Focos[3], HIGH);
delay(tiempo);
digitalWrite(Focos[8], LOW);
digitalWrite(Focos[4], LOW);
digitalWrite(Focos[3], LOW);
delay(tiempo);
digitalWrite(Focos[7], HIGH);
digitalWrite(Focos[6], HIGH);
digitalWrite(Focos[5], HIGH);
delay(tiempo);
digitalWrite(Focos[7], LOW);
digitalWrite(Focos[6], LOW);
digitalWrite(Focos[5], LOW);
}
void Luz_parqueo(){//Encedera los leds que indicaran el parqueo del Auto
digitalWrite(Focos[7], HIGH);
digitalWrite(Focos[6], HIGH);
digitalWrite(Focos[5], HIGH);
digitalWrite(Focos[9], HIGH);
digitalWrite(Focos[1], HIGH);
digitalWrite(Focos[0], HIGH);
delay(tiempo2);
digitalWrite(Focos[7], LOW);
digitalWrite(Focos[6], LOW);
digitalWrite(Focos[5], LOW);
digitalWrite(Focos[9], LOW);
digitalWrite(Focos[1], LOW);
digitalWrite(Focos[0], LOW);
delay(tiempo2);
}
void Circulo(){//Encedera los leds de forma circular
digitalWrite(Focos[7], HIGH);
digitalWrite(Focos[0], HIGH);
delay(tiempo);
digitalWrite(Focos[7], LOW);
digitalWrite(Focos[0], LOW);
delay(tiempo);
digitalWrite(Focos[6], HIGH);
digitalWrite(Focos[1], HIGH);
delay(tiempo);
digitalWrite(Focos[6], LOW);
digitalWrite(Focos[1], LOW);
delay(tiempo);
digitalWrite(Focos[5], HIGH);
digitalWrite(Focos[9], HIGH);
delay(tiempo);
digitalWrite(Focos[5], LOW);
digitalWrite(Focos[9], LOW);
delay(tiempo);
digitalWrite(Focos[8], HIGH);
digitalWrite(Focos[3], HIGH);
delay(tiempo);
digitalWrite(Focos[8], LOW);
digitalWrite(Focos[3], LOW);
}