buenas noches,
tengo un detalle con codigo, me piden realizar una simulacion de 2 semaforos de 2 colores (rojo y verde), pero uno es semi automatico,el semaforo 1 es controlado por sensores que determinan un parpadeo de la luz roja y su encendido total, pero el otro semaforo 2 es controlado de manera manual, pero cunado el semaforo 2 se cambia a rojo de manera manual tiene que hacer que cambie a verde el semaforo 1, aun que esten activados el sensor 1 y sensor 2, y cuando se desactiven los sensores tiene que seguir encendido el color verde en el semaforo 1, practicamente tiene que regresar al inicio del bucle o las condiciones iniciales, alguien me podria apoyar por favor, dejo el codigo que realice, el que dice selec es el seleccionador del semaforo 2, para determinar el color que debe de encender del semaforo 2, de antemano les agradezco.
// C++ code
//
int sen1 = 0;
int sen2 = 0;
int selec = 0;
int selint = 0;
int sen2ant = 0;
void setup()
{
pinMode(8, INPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
pinMode(7, OUTPUT);
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
}
void loop()
{
// Leer sensores
sen2 = digitalRead(9);
sen1 = digitalRead(10);
selec = digitalRead(8);
if (sen1 == LOW && sen2 ==LOW && selec == LOW) {
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
} else {
if (sen1 == HIGH && sen2 == LOW && selec == LOW) {
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
delay(500); // Wait for 500 millisecond(s)
digitalWrite(12, LOW);
delay(500); // Wait for 500 millisecond(s)
} else {
if (sen1 == HIGH && sen2 != sen2ant && selec == LOW) {
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
digitalWrite(11, HIGH);
delay(1500); // Wait for 1500 millisecond(s)
digitalWrite(11, LOW);
} else {
if( selec != selint && sen1 == HIGH && sen2 != sen2ant){
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
digitalWrite(11, LOW);
digitalWrite(7, HIGH);
} else {
if (selec == LOW && sen1 == HIGH && sen2 != sen2ant){
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(7, LOW);
}
}
}selint = selec;
}
sen2ant = sen2;
}
}