Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <TimerOne.h> // Bibioteca TimerOne
- #define Lamp1 4 // Port para a lamp1
- #define Lamp2 5 // Port para a lamp2
- unsigned long Tempo = 0; // Variavel para contagem do tempo em segundos
- unsigned long HorarioI = 1150; // Horario inicial em decimal
- unsigned long Horario1 = 1730; // Horario em decimal para ligar lamp1
- unsigned long Horario2 = 1840; // Horario em decimal para desligar lamp1
- unsigned long Horario3 = 720; // Horario em decimal para ligar lamp2
- unsigned long Horario4 = 1400; // Horario em decimal para iniciar lamp2
- //-----------------------------------
- void setup()
- {
- Timer1.initialize(1000000); // inicialisa timer1, para um periodo de 1 segundo
- Timer1.attachInterrupt( ContaTempo); // Ativa ContaTempo() como contador de interrupt de overflow de Timer1
- // Calculo para transformaçao do valor decimal em valor hora
- unsigned int HorarioI_temp = HorarioI / 100;
- HorarioI = (HorarioI_temp * 60) + (HorarioI - (HorarioI_temp * 100));
- unsigned int Horario1_temp = Horario1 / 100;
- Horario1 = (Horario1_temp * 60) + (Horario1 - (Horario1_temp * 100));
- unsigned int Horario2_temp = Horario2 / 100;
- Horario2 = (Horario2_temp * 60) + (Horario2 - (Horario2_temp * 100));
- unsigned int Horario3_temp = Horario3 / 100;
- Horario3 = (Horario3_temp * 60) + (Horario3 - (Horario3_temp * 100));
- unsigned int Horario4_temp = Horario4 / 100;
- Horario4 = (Horario4_temp * 60) + (Horario4 - (Horario4_temp * 100));
- Tempo = HorarioI;
- }
- //-----------------------------------
- void loop()
- {
- if (Tempo >= 86399) Tempo = 0; // Zera a cada 24 horas
- if ((Tempo/60) >= Horario1) // Se pode ligar lamp1
- {
- if ((Tempo/60) <= Horario2) // Se ainda nao e hora de desligar
- {
- digitalWrite(Lamp1, HIGH); // Acende lamp1
- }
- else // Ou se ja e hora de desligar
- {
- digitalWrite(Lamp1, LOW); // Apaga lamp1
- }
- }
- if ((Tempo/60) >= Horario3) // Se pode ligar lamp2
- {
- if ((Tempo/60) <= Horario4) // Se ainda nao e hora de desligar
- {
- digitalWrite(Lamp2, HIGH); // Acende lamp2
- }
- else // Ou se ja e hora de desligar
- {
- digitalWrite(Lamp2, LOW); // Apaga lamp2
- }
- }
- }
- //-----------------------------------
- void ContaTempo() // Interrupt de Timer1
- {
- Tempo++; // Incrementa Tempo1 em segundos
- } // Fim de ContaTempo
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement