Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <TimerOne.h> // Biblioteca do timer1
- #include <LiquidCrystal_I2C.h> // Biblioteca I2C LCD
- LiquidCrystal_I2C lcd(0x38, 2, 1, 0, 7, 6, 5, 4, 3, POSITIVE); // <--------- Meu LCD
- #define Rele 5 // Port 5 Rele
- unsigned int Tempo = 0; // Tempode controle
- byte ligado = 0; // Controle do estado do rele
- unsigned int Ligar = 180; // Tempo para ligar o rele
- unsigned int Desligar = 15; // Tempo para desligar o rele
- //-----------------------------------
- void setup()
- {
- lcd.begin(16, 2); // Inicialisando o LCD
- pinMode(Rele, OUTPUT); // Define Rele como saída
- lcd.setCursor(0, 0); // Posicione cursor do LCD na linha 0 posicao 0
- lcd.print("LIGAR DESLIG."); // Escreva "LIGAR DESLIG."
- Timer1.initialize(1000000); // inicialisa timer1, para um periodo de 1 segundo
- Timer1.attachInterrupt( ContaTempo); // Ativa ContaTempo() como contador de interrupt de overflow de Timer1
- }
- //-----------------------------------
- void loop()
- {
- if (Tempo >= Ligar) // Se for maior ou igual ao tempo de ligar
- { // Faça
- Tempo = 0; // Zera Tempo
- ligado = 1; // Informa que ligou o rele
- digitalWrite(Rele, HIGH); // Liga Rele (HIGH ou LOW?)
- } // Fim de se for maior ou igual ao tempo de ligar
- lcd.setCursor(0, 1); // Posicione cursor do LCD na linha 1 posicao 0
- if (ligado == 0) // Se rele estiver desligado
- { // Faça
- lcd.print(Ligar - Tempo); // Informe tempo que falta para ligar
- lcd.print(" Seg "); // Escreva "Seg" e apague o resto
- } // Fim de se rele estiver desligado
- if (ligado == 1) // Se o rele estiver ligado
- { // Faça
- if (Tempo >= Desligar) // Se for maior ou igual ao tempo de desligar
- { // Faça
- Tempo = 0; // Zera Tempo
- ligado = 0; // Informa que desligou o rele
- digitalWrite(Rele, HIGH); // Liga Rele (LOW ou HIGH?)
- } // Fim de se for maior ou igual ao tempo de desligar
- lcd.print(" "); // Limpe o inicio da linha
- lcd.print(Desligar - Tempo); // Informe tempo que falta para desligar
- lcd.print(" Seg "); // Escreva "Seg"
- } // Fim de se rele estiver ligado
- } // Fim de loop
- //-----------------------------------
- void ContaTempo() // Interrupt de Timer1
- {
- Tempo++; // Incrementa Tempo1
- } // Fim de ContaTempo
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement