// Mapeamento dos I/Os
// INPUT (botões ----> sensor digital)
#define btBLUE 10
#define btGRAY 12
// OUTPUT
#define ledRED 3
#define ledYEL 5
#define ledGRE 7
void setup() {
// Habilita Comunicação Serial
// Baudrate: 9.600 bits/s
Serial.begin(9600);
// INPUT (BOTÕES)
pinMode(btBLUE, INPUT);
pinMode(btGRAY, INPUT);
// OUTPUT (LEDs)
pinMode(ledRED, OUTPUT);
pinMode(ledYEL, OUTPUT);
pinMode(ledGRE, OUTPUT);
}
void loop() {
// Botão ON ---> HIGH
// Botão OFF ---> LOW
if (digitalRead(btBLUE) == HIGH) {
semaforo();
}
else{
digitalWrite(ledRED, LOW);
}
bool statusBT = digitalRead(btGRAY);
if (statusBT == HIGH) {
piscaAmarelo();
}
}
void semaforo() {
// Fase: Verde
digitalWrite(ledRED, LOW);
digitalWrite(ledGRE, HIGH);
delay(2000);
// Fase: Amarelo
digitalWrite(ledGRE, LOW);
digitalWrite(ledYEL, HIGH);
delay(1000);
// Fase:Vermelho
digitalWrite(ledYEL, LOW);
digitalWrite(ledRED, HIGH);
delay(3000);
}
void piscaAmarelo() {
digitalWrite(ledYEL, HIGH);
delay(500);
digitalWrite(ledYEL, LOW);
delay(500);
}
/*
EXERCÍCIO
Botão btBLUE pressionado ---> sequencial de LEDs
Verde: 2 s
Amarelo: 1 s
Vermelho: 3 s
Botão btGRAY pressionado ----> alarme
Pisca Amarelo com frequência de 1Hz
(TON = 0.5s / TOFF = 0.5s / T = 1.0s)
*/