Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "TimerOne.h"
- #define RELE1 2
- #define RELE2 3
- #define RELE3 4
- #define RELE4 5
- #define RELE5 6
- #define RELE6 7
- String comando;
- unsigned long tempo1 = 0; // Contagem de tempo1
- unsigned long tempo2 = 0; // Contagem de tempo2
- unsigned long tempo3 = 0; // Contagem de tempo3
- unsigned long tempo4 = 0; // Contagem de tempo4
- byte FlagA = 0; // Flag para informa que tecla A foi digitada
- byte FlagE = 0; // Flag para informa que tecla E foi digitada
- byte Fase = 0; // Flag para a fase da Letra E
- //-----------------------------
- void setup()
- {
- Serial.begin(9600);
- pinMode(RELE1, OUTPUT);
- pinMode(RELE2, OUTPUT);
- pinMode(RELE3, OUTPUT);
- pinMode(RELE4, OUTPUT);
- pinMode(RELE5, OUTPUT);
- pinMode(RELE6, OUTPUT);
- digitalWrite(RELE1, LOW);
- digitalWrite(RELE2, LOW);
- digitalWrite(RELE3, LOW);
- digitalWrite(RELE4, LOW);
- digitalWrite(RELE5, LOW);
- digitalWrite(RELE6, LOW);
- Timer1.initialize(1000000); // initialize timer1, and set a 1 second period
- Timer1.attachInterrupt(callback); // attaches callback() as a timer overflow interrupt
- }
- //--------------------------------------
- void callback() // Roda se deu 1 interrupt de Segundo
- {
- tempo1++; // incrementa 1 segundo em tempo1
- tempo2++; // incrementa 1 segundo em tempo2
- tempo3++; // incrementa 1 segundo em tempo3
- tempo4++; // incrementa 1 segundo em tempo4
- }
- //----------------------------
- void loop()
- {
- while (Serial.available())
- {
- delay(10);
- char c = Serial.read();
- comando += c;
- }
- if (comando.length() > 0)
- {
- //-------------------------
- if (comando == "A")
- {
- digitalWrite(RELE1, HIGH);
- FlagA = 1; // Indicador teclaA
- tempo1 = 0; // Zera tempo1
- }
- //-------------------------
- if (comando == "B")
- {
- digitalWrite(RELE2, HIGH);
- }
- else if (comando == "b")
- {
- digitalWrite(RELE2, LOW);
- }
- //-------------------------
- if (comando == "C")
- {
- digitalWrite(RELE3, HIGH);
- }
- else if (comando == "c")
- {
- digitalWrite(RELE3, LOW);
- }
- //-------------------------
- if (comando == "D")
- {
- digitalWrite(RELE4, HIGH);
- }
- else if (comando == "d")
- {
- digitalWrite(RELE4, LOW);
- }
- //-------------------------
- if (comando == "E")
- {
- digitalWrite(RELE5, HIGH);
- Fase = 1; // Selciona fase1
- FlagE = 1; // Indicador teclaE
- tempo2 = 0; // Zera tempo2
- tempo3 = 0; // Zera tempo3
- tempo4 = 0; // Zera tempo4
- }
- else if (comando == "e")
- {
- digitalWrite(RELE5, LOW);
- }
- //-------------------------
- if (comando == "F")
- {
- digitalWrite(RELE6, HIGH);
- }
- else if (comando == "f")
- {
- digitalWrite(RELE6, LOW);
- }
- //-------------------------
- comando = "";
- }
- if (FlagA == 1) // Se tem Indicador teclaA
- {
- if (tempo1 >= 180) // Se tempo1 chegou em 3 minutos
- {
- digitalWrite(RELE1, LOW);
- FlagA = 0; // Indicador teclaA = 0
- }
- }
- //--------------------------
- if (FlagE == 1) // Se tem Indicador teclaE
- {
- switch (Fase) // Selciona fase
- {
- case 1: // Fase 1
- if (tempo2 >= 5) // Se tempo2 chegou em 5 minutos
- {
- digitalWrite(RELE5, LOW);
- Fase = 2; // Muda para fase2 da Letra E
- tempo3 = 0; // Zera tempo3
- }
- break;
- case 2:
- if (tempo3 >= 5) // Se tempo2 chegou em 5 minutos
- {
- digitalWrite(RELE5, HIGH);
- Fase = 3; // Muda para fase3 da Letra E
- tempo4 = 0; // Zera tempo4
- }
- break;
- case 3:
- if (tempo4 >= 5) // Se tempo2 chegou em 5 minutos
- {
- digitalWrite(RELE5, LOW);
- Fase = 0; // Zera fase
- FlagE = 0; // Zera Indicador teclaE
- }
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement