void setup() {
//Entradas
pinMode(22, INPUT); //Interruptor rotativos
pinMode(23, INPUT); //Interruptor luces carretera
pinMode(24, INPUT); //Intermitente derecho
pinMode(25, INPUT); //Intermitente izquierdo
pinMode(26, INPUT); //Freno
pinMode(27, INPUT); //Toma fuerza
pinMode(28, INPUT); //Luces de servicio
//Salidas
pinMode(30, OUTPUT); //Rotativos
pinMode(31, OUTPUT);
pinMode(32, OUTPUT);
pinMode(33, OUTPUT);
pinMode(34, OUTPUT);
pinMode(35, OUTPUT);
pinMode(36, OUTPUT);
pinMode(37, OUTPUT);
pinMode(38, OUTPUT);
pinMode(39, OUTPUT);
pinMode(40, OUTPUT);
pinMode(41, OUTPUT);
pinMode(42, OUTPUT);
pinMode(43, OUTPUT);
pinMode(44, OUTPUT);
pinMode(45, OUTPUT);
pinMode(46, OUTPUT);
pinMode(47, OUTPUT); // Fin Rotativos
pinMode(48, OUTPUT); // Estrobos cabina
pinMode(49, OUTPUT); // Estrobos calandra
pinMode(50, OUTPUT); // Toma Fuerza
pinMode(51, OUTPUT); // Luces de servicio delanteras
pinMode(52, OUTPUT); // Luces de servicio plataforma
pinMode(53, OUTPUT); // Luces de servicio palas
}
void loop() {
if(digitalRead(22)){ //rotativos encendidos
digitalWrite(48,1);
delay(50);
digitalWrite(48,0);
digitalWrite(48,1); // Estrobos calandra
}
//Primera secuencia
if(digitalRead(22)){
for(int i=0;i<10;i++)
{
digitalWrite(30,HIGH);
digitalWrite(31,HIGH);
digitalWrite(32,HIGH);
digitalWrite(33,HIGH);
digitalWrite(34,HIGH);
digitalWrite(35,HIGH);
digitalWrite(36,HIGH);
digitalWrite(37,HIGH);
digitalWrite(38,HIGH);
digitalWrite(39,LOW);
digitalWrite(40,LOW);
digitalWrite(41,LOW);
digitalWrite(42,LOW);
digitalWrite(43,LOW);
digitalWrite(44,LOW);
digitalWrite(45,LOW);
digitalWrite(46,LOW);
digitalWrite(47,LOW);
delay(100);
digitalWrite(30,LOW);
digitalWrite(31,LOW);
digitalWrite(32,LOW);
digitalWrite(33,LOW);
digitalWrite(34,LOW);
digitalWrite(35,LOW);
digitalWrite(36,LOW);
digitalWrite(37,LOW);
digitalWrite(38,LOW);
digitalWrite(39,HIGH);
digitalWrite(40,HIGH);
digitalWrite(41,HIGH);
digitalWrite(42,HIGH);
digitalWrite(43,HIGH);
digitalWrite(44,HIGH);
digitalWrite(45,HIGH);
digitalWrite(46,HIGH);
digitalWrite(47,HIGH);
delay(100);
}
digitalWrite(39,LOW);
digitalWrite(40,LOW);
digitalWrite(41,LOW);
digitalWrite(42,LOW);
digitalWrite(43,LOW);
digitalWrite(44,LOW);
digitalWrite(45,LOW);
digitalWrite(46,LOW);
digitalWrite(47,LOW);
}
//Segunda secuencia
if(digitalRead(22)){
for(int i=0;i<3;i++)
{
for(int b=0;b<5;b++)
{
digitalWrite(30,HIGH);
digitalWrite(31,HIGH);
delay(50);
digitalWrite(30,LOW);
digitalWrite(31,LOW);
delay(50);
}
for(int b=0;b<5;b++)
{
digitalWrite(32,HIGH);
digitalWrite(33,HIGH);
delay(50);
digitalWrite(32,LOW);
digitalWrite(33,LOW);
delay(50);
}
}
}
//tercera secuencia
if(digitalRead(22)){
for(int c=0;c<5;c++)
{
digitalWrite(30,HIGH);
digitalWrite(31,HIGH);
digitalWrite(32,HIGH);
digitalWrite(33,HIGH);
delay(100);
digitalWrite(30,LOW);
digitalWrite(31,LOW);
digitalWrite(32,LOW);
digitalWrite(33,LOW);
delay(100);
}
}
//cuarta secuencia
if(digitalRead(22)){
for(int i=0;i<3;i++)
{
for(int d=0;d<5;d++)
{
digitalWrite(30,HIGH);
digitalWrite(33,HIGH);
delay(50);
digitalWrite(30,LOW);
digitalWrite(33,LOW);
delay(50);
}
for(int d=0;d<5;d++)
{
digitalWrite(31,HIGH);
digitalWrite(32,HIGH);
delay(50);
digitalWrite(31,LOW);
digitalWrite(32,LOW);
delay(50);
}
}
}
//si se encienden las luces y no estan encendidos los rotativos
if(digitalRead(25) && !digitalRead(22)){
digitalWrite(30,1);
digitalWrite(31,1);
digitalWrite(32,1);
digitalWrite(33,1);
digitalWrite(34,1);
digitalWrite(35,1);
digitalWrite(36,1);
digitalWrite(37,1);
digitalWrite(38,1);
digitalWrite(39,1);
digitalWrite(40,1);
digitalWrite(41,1);
digitalWrite(42,1);
digitalWrite(43,1);
digitalWrite(44,1);
digitalWrite(45,1);
digitalWrite(46,1);
digitalWrite(47,1);
}
else
{
digitalWrite(30,0);
digitalWrite(31,0);
digitalWrite(32,0);
digitalWrite(33,0);
digitalWrite(34,0);
digitalWrite(35,0);
digitalWrite(36,0);
digitalWrite(37,0);
digitalWrite(38,0);
digitalWrite(39,0);
digitalWrite(40,0);
digitalWrite(41,0);
digitalWrite(42,0);
digitalWrite(43,0);
digitalWrite(44,0);
digitalWrite(45,0);
digitalWrite(46,0);
digitalWrite(47,0);
}
//intermitente izquierdo
if(!digitalRead(22)){
while(digitalRead(25))
{
if(digitalRead(22))break;
digitalWrite(38,1);
delay(150);
digitalWrite(37,1);
delay(150);
digitalWrite(36,1);
delay(150);
digitalWrite(35,1);
delay(150);
digitalWrite(34,1);
delay(150);
digitalWrite(33,1);
delay(150);
digitalWrite(32,1);
delay(150);
digitalWrite(31,1);
delay(150);
digitalWrite(30,1);
delay(150);
digitalWrite(38,0);
digitalWrite(37,0);
digitalWrite(36,0);
digitalWrite(35,0);
digitalWrite(34,0);
digitalWrite(33,0);
digitalWrite(32,0);
digitalWrite(31,0);
digitalWrite(30,0);
}
}
}
He acortado el código porque es muy repetitivo y todas las sencuencias son estructuralmente iguales, solo cambia el orden y tiempos en que se activan las salidas . Siento lo de los quotes, pensaba que haciendolo así era más fluida la conversación, no se volverá a repetir.