RuiViana

Lixeira.ino

Aug 27th, 2020 (edited)
225
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //  http://labdegaragem.com/forum/topics/lixeira-autom-tica-com-bot-es
  2. // Quando pressionar o botão abrir, a lixeira deve permanecer aberta indefinidamente,
  3. // quando pressionar o botão fechar, ela fecha e aguarda o comando para abrir novamente
  4. // ou abre com o sensor de proximidade, aguarda 10 segundos e fecha novamente;
  5.  
  6. #include <Servo.h>          // Incluir Biblioteca do Servo
  7.  
  8. #define SensorIR 7          // Definir variável para Pino 7 (Sensor IR)
  9. #define pinServo 9          // Definir variável para Pino 9 (Servo)
  10. #define pinButt1 4          // Definir variável para Botão 1 (Abrir)
  11. #define pinButt2 3          // Definir variável para Botão 2 (Fechar)
  12. Servo myservo;              // Definir Variável com o nome myservo
  13. byte flag = 0;              // Controle de fechamento
  14. bool  bot = true;           // Usando um botao somente
  15. //-----------------------------------------------------------------------------------
  16. void setup()
  17. {
  18.   pinMode (pinButt1, INPUT);        // Definir Botão 1 como Entrada;
  19.   pinMode (pinButt2, INPUT);        // Definir Botão 2 como Entrada;
  20.   pinMode (SensorIR, INPUT);        // Definir Sensor IR como Entrada;
  21.   myservo.attach(pinServo);         // Ligar o Servo e atribuir ao Pino referente a variável pinServo
  22.   myservo.write(0);                 // Colocar o Servo em 0º para iniciar
  23. }
  24. //-----------------------------------------------------------------------------------
  25. void loop()
  26. {
  27.   if (bot == true)                        // Fechado
  28.   {
  29.     if (digitalRead(pinButt1) == 1 )        // Lê o Botão 1   Abrir
  30.     {
  31.       myservo.write(90);                    // Abre lieira
  32.       flag = 1;                             // Informa que abriu manual
  33.       delay(200);                           // Evitar repeticao
  34.       bot = false;                          // Permite fechar
  35.     }
  36.   }
  37.   if (bot == false)                         // Aberto
  38.     if (digitalRead(pinButt1) == 1 )        // Lê o Botão 1   fechar
  39.     {
  40.       myservo.write(0);                     // Fecha lieira
  41.       flag = 0;                             // Informa que fechou manual
  42.       delay(200);                           // Evitar repeticao
  43.       bot = true;                           // Permite fechar
  44.     }
  45.  
  46.   if (flag == 0)                          // Se está fechado
  47.   {
  48.     if (digitalRead(SensorIR) == 0)       // Se sensor detectou
  49.     {
  50.       myservo.write(90);                  // Abre lieira
  51.       for (int i = 0; i < 20; i++)        // Aguarda 10 segundos (20 x 500 mSeg)
  52.       {
  53.         delay (500);
  54.       }
  55.       myservo.write(0);                   // Fecha lixeira
  56.     }
  57.   }
  58. }
RAW Paste Data