Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // http://labdegaragem.com/forum/topics/lixeira-autom-tica-com-bot-es
- // Quando pressionar o botão abrir, a lixeira deve permanecer aberta indefinidamente,
- // quando pressionar o botão fechar, ela fecha e aguarda o comando para abrir novamente
- // ou abre com o sensor de proximidade, aguarda 10 segundos e fecha novamente;
- #include <Servo.h> // Incluir Biblioteca do Servo
- #define SensorIR 7 // Definir variável para Pino 7 (Sensor IR)
- #define pinServo 9 // Definir variável para Pino 9 (Servo)
- #define pinButt1 4 // Definir variável para Botão 1 (Abrir)
- #define pinButt2 3 // Definir variável para Botão 2 (Fechar)
- Servo myservo; // Definir Variável com o nome myservo
- byte flag = 0; // Controle de fechamento
- bool bot = true; // Usando um botao somente
- //-----------------------------------------------------------------------------------
- void setup()
- {
- pinMode (pinButt1, INPUT); // Definir Botão 1 como Entrada;
- pinMode (pinButt2, INPUT); // Definir Botão 2 como Entrada;
- pinMode (SensorIR, INPUT); // Definir Sensor IR como Entrada;
- myservo.attach(pinServo); // Ligar o Servo e atribuir ao Pino referente a variável pinServo
- myservo.write(0); // Colocar o Servo em 0º para iniciar
- }
- //-----------------------------------------------------------------------------------
- void loop()
- {
- if (bot == true) // Fechado
- {
- if (digitalRead(pinButt1) == 1 ) // Lê o Botão 1 Abrir
- {
- myservo.write(90); // Abre lieira
- flag = 1; // Informa que abriu manual
- delay(200); // Evitar repeticao
- bot = false; // Permite fechar
- }
- }
- if (bot == false) // Aberto
- if (digitalRead(pinButt1) == 1 ) // Lê o Botão 1 fechar
- {
- myservo.write(0); // Fecha lieira
- flag = 0; // Informa que fechou manual
- delay(200); // Evitar repeticao
- bot = true; // Permite fechar
- }
- if (flag == 0) // Se está fechado
- {
- if (digitalRead(SensorIR) == 0) // Se sensor detectou
- {
- myservo.write(90); // Abre lieira
- for (int i = 0; i < 20; i++) // Aguarda 10 segundos (20 x 500 mSeg)
- {
- delay (500);
- }
- myservo.write(0); // Fecha lixeira
- }
- }
- }
Add Comment
Please, Sign In to add comment