int SEMAFORO_1_VERMELHO = 25;
int SEMAFORO_1_AMARELO = 27;
int SEMAFORO_1_VERDE = 26;
int SEMAFORO_2_VERMELHO = 14;
int SEMAFORO_2_AMARELO = 13;
int SEMAFORO_2_VERDE = 12;
const int SENSOR_CHUVA = 4;
const int SENSOR_LUMINOSIDADE = 15;
int SL;
bool M = false;
void setup() {
Serial.begin(115200);
Serial.println("ENTRADA");
pinMode(SENSOR_CHUVA, INPUT);
pinMode(SEMAFORO_1_VERMELHO, OUTPUT);
pinMode(SEMAFORO_1_AMARELO, OUTPUT);
pinMode(SEMAFORO_1_VERDE, OUTPUT);
pinMode(SEMAFORO_2_VERMELHO, OUTPUT);
pinMode(SEMAFORO_2_AMARELO, OUTPUT);
pinMode(SEMAFORO_2_VERDE, OUTPUT);
pinMode(SENSOR_LUMINOSIDADE, INPUT);
}
void SEMAFORO_1(bool ON_OFF_VERMELHO, bool ON_OFF_AMARELO, bool ON_OFF_VERDE){
digitalWrite(SEMAFORO_1_VERMELHO, ON_OFF_VERMELHO);
digitalWrite(SEMAFORO_1_VERDE, ON_OFF_VERDE);
digitalWrite(SEMAFORO_1_AMARELO, ON_OFF_AMARELO);
}
void SEMAFORO_2(bool ON_OFF_VERMELHO, bool ON_OFF_AMARELO, bool ON_OFF_VERDE){
digitalWrite(SEMAFORO_2_VERMELHO, ON_OFF_VERMELHO);
digitalWrite(SEMAFORO_2_VERDE, ON_OFF_VERDE);
digitalWrite(SEMAFORO_2_AMARELO, ON_OFF_AMARELO);
}
void loop() {
M = digitalRead(SENSOR_CHUVA);
SL = analogRead(SENSOR_LUMINOSIDADE);
if(M){
SL = 0;
} else {
SL = 1000;
}
Serial.print("luminosidade = ");
Serial.println(SL);
if(M){
Serial.println("chovendo");
}
else{
Serial.println("sem chuva");
}
if(SL >= 1000){
Serial.println("ensolarado");
}
else{
Serial.println("escuro");
}
if (M && SL >= 1000){
int TEP = 6000;
int TEX = M ? 1500 : 0;
SEMAFORO_1(0, 0, 1);
SEMAFORO_2(1, 0, 0);
delay(TEP + TEX + 1000);
SEMAFORO_1(0, 1, 0);
delay(1000);
SEMAFORO_2(1, 0, 0);
SEMAFORO_1(1, 0, 0);
SEMAFORO_2(0, 0, 1);
delay(TEP + TEX + 1000);
SEMAFORO_2(0, 1, 0);
delay(1000);
SEMAFORO_2(1, 0, 0);
}
else{
SEMAFORO_1(0, 0, 1);
SEMAFORO_2(1, 0, 0);
delay(4500);
SEMAFORO_1(0, 1, 0);
delay(1600);
SEMAFORO_1(1, 0, 0);
delay(750);
SEMAFORO_1(1, 0, 0);
SEMAFORO_2(0, 0, 1);
delay(5000);
SEMAFORO_2(0, 1, 0);
delay(1600);
SEMAFORO_2(1, 0, 0);
delay(850);
}
}