RuiViana

Botao__Cinco_Horas

Sep 29th, 2016
1,000
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #define rele  13
  2. #define botao  2
  3. boolean estado = false;
  4. unsigned long Tempo;                            // Variavel de 4 bytes para Tempo
  5. //------------------------------
  6. void setup()
  7. {
  8.   //Serial.begin(9600);                             // Diag
  9.   pinMode(rele, OUTPUT);
  10.   pinMode(botao, INPUT);
  11.   digitalWrite(botao, HIGH);
  12.   Tempo = millis();                             // Inicializa a variavel Tempo
  13. }
  14. //------------------------------
  15. void loop()
  16. {
  17.   if (digitalRead(botao) == LOW)                // Se botao foi apertado
  18.   {
  19.     delay(100);                                 // Evita debouncing
  20.     if (digitalRead(botao) == LOW)              // Se botao continua apertado
  21.     {
  22.       delay(100);                               // Evita debouncing
  23.       estado = !estado;                         // Inverte estado da saida
  24.       Tempo = millis();                         // Reinicializa a variavel
  25.       //Serial.println(estado);                       // Diag
  26.     }
  27.   }
  28.   if (digitalRead(botao) == HIGH)               // Se botao está liberado
  29.   {
  30.     if (estado == true)                         // Se o estado for ligado
  31.     {
  32.       // if (Tempo - millis() >= 18000000)      // Espera o tempo de 5 horas
  33.       if (millis() - Tempo >= 10000)            // Testa espera o tempo de 10 segundos
  34.       {
  35.         //Serial.println(millis() - Tempo);             // Diag
  36.         Tempo = millis();                       // Reinicializa a variavel
  37.         estado = false;                         // Informa desligado
  38.       }
  39.     }
  40.   }
  41.   digitalWrite(rele, estado);                   //  HIGH (1) = +5V
  42. }
RAW Paste Data