#include <TimerOne.h>
const int pinoLedVermelho = 2;
const int pinoLedVerde = 3;
const int pinoLedAmarelo = 4;
const long intervaloVermelho = 4000;
const long intervaloVerde = 20000;
const long intervaloAmarelo = 40000;
int estadoLedVermelho = 0;
int estadoLedVerde = 0;
int estadoLedAmarelo = 0;
void setup() {
pinMode(pinoLedVermelho, OUTPUT);
pinMode(pinoLedVerde, OUTPUT);
pinMode(pinoLedAmarelo, OUTPUT);
Timer1.initialize(1000000);
Timer1.attachInterrupt(timerIsr);
}
void loop() {
}
void timerIsr() {
if (millis() % intervaloVermelho < (intervaloVermelho /2)) {
estadoLedVermelho = 1;
} else {
estadoLedVermelho = 0;
}
digitalWrite(pinoLedVermelho, estadoLedVermelho);
if (millis() % intervaloVerde < (intervaloVerde /2)) {
estadoLedVerde = 1;
} else {
estadoLedVerde = 0;
}
digitalWrite(pinoLedVerde, estadoLedVerde);
if (millis() % intervaloAmarelo < (intervaloAmarelo / 2)) {
estadoLedAmarelo = 1;
} else {
estadoLedAmarelo = 0;
}
digitalWrite(pinoLedAmarelo, estadoLedAmarelo);
}