projeto
Caixote de Lixo Automático com Arduino
🗑️ Caixote de Lixo Automático com Arduino
Este projeto apresenta um caixote de lixo automático desenvolvido com Arduino. O sistema utiliza um sensor infravermelho (IR) para detetar a aproximação de um objeto e um servo motor para abrir e fechar automaticamente a tampa.
Um módulo semáforo também foi utilizado para indicar visualmente o estado do sistema através das cores vermelho, amarelo e verde.
Desenvolver um sistema de automação capaz de abrir a tampa de um caixote quando o sensor detetar uma aproximação e fechá-la automaticamente depois de alguns segundos.
⚙️ Funcionamento
Quando o sistema é ligado, a tampa começa fechada e o LED vermelho fica aceso.
Quando o sensor IR deteta um objeto próximo, o Arduino envia um comando para o servo motor abrir a tampa. O LED verde indica que a tampa está aberta.
Depois de alguns segundos, o sistema inicia o fechamento. Durante esse processo, o LED amarelo fica aceso. Quando a tampa volta à posição inicial, o LED vermelho volta a acender.
🔄 Sequência do sistema
Fechado
Deteção
Aberto
A fechar
Fechado
🚦 Estados do módulo semáforo
Indica que a tampa está fechada e o sistema está à espera de uma deteção.
Indica que o servo motor abriu a tampa após a deteção do sensor.
Indica que a tampa está a regressar à posição fechada.
🧩 Componentes utilizados
Arduino Uno
Controla todo o funcionamento do projeto.
Servo Motor 180º
Movimenta a tampa para abrir e fechar.
Módulo Semáforo
Indica o estado da tampa através dos LEDs.
Breadboard
Facilita a montagem das ligações eletrónicas.
Jumpers
Utilizados para realizar as ligações entre os componentes.
Resistência de 1 kΩ
Utilizada no circuito conforme a configuração elétrica adotada.
📡 Sensor IR
O sensor infravermelho é responsável por detetar a aproximação de um objeto. Quando ocorre uma deteção, o Arduino inicia a sequência de abertura da tampa.
🔌 Ligações
| Componente | Pino | Função |
|---|---|---|
| Sensor IR | D2 | Deteção |
| Servo Motor | D9 | Movimento da tampa |
| LED Vermelho | D10 | Tampa fechada |
| LED Amarelo | D11 | Tampa a fechar |
| LED Verde | D12 | Tampa aberta |
💻 Código Arduino
O código utiliza a biblioteca Servo.h para controlar o servo motor. O Arduino verifica continuamente o sensor IR e executa a sequência de abertura e fechamento.
#include <Servo.h>
Servo servo;
// Pinos
const int sensorIR = 2;
const int servoPin = 9;
const int vermelho = 10;
const int amarelo = 11;
const int verde = 12;
// Posições da tampa
const int fechado = 0;
const int aberto = 90;
// Tempo que a tampa permanece aberta
const unsigned long tempoAberto = 3000;
void setup() {
pinMode(sensorIR, INPUT);
pinMode(vermelho, OUTPUT);
pinMode(amarelo, OUTPUT);
pinMode(verde, OUTPUT);
servo.attach(servoPin);
// Começa com a tampa fechada
servo.write(fechado);
estadoFechado();
}
void loop() {
if (digitalRead(sensorIR) == LOW) {
// Abrir tampa
estadoAbrindo();
servo.write(aberto);
delay(500);
// Tampa aberta
estadoAberto();
delay(tempoAberto);
// Começar a fechar
estadoFechando();
servo.write(fechado);
delay(1000);
// Tampa fechada
estadoFechado();
}
}
// Tampa fechada
void estadoFechado() {
digitalWrite(vermelho, HIGH);
digitalWrite(amarelo, LOW);
digitalWrite(verde, LOW);
}
// Tampa aberta
void estadoAberto() {
digitalWrite(vermelho, LOW);
digitalWrite(amarelo, LOW);
digitalWrite(verde, HIGH);
}
// Tampa a fechar
void estadoFechando() {
digitalWrite(vermelho, LOW);
digitalWrite(amarelo, HIGH);
digitalWrite(verde, LOW);
}
// Processo de abertura
void estadoAbrindo() {
digitalWrite(vermelho, LOW);
digitalWrite(amarelo, LOW);
digitalWrite(verde, HIGH);
}🧠 Explicação do código
A biblioteca Servo.h permite controlar a posição do servo motor. A variável sensorIR define o pino utilizado pelo sensor, enquanto as outras variáveis definem os pinos dos LEDs e do servo.
Na função setup(), os pinos são configurados e o servo é colocado inicialmente na posição fechada.
Na função loop(), o Arduino verifica continuamente o sensor. Quando o sensor retorna LOW, o sistema entende que houve uma deteção e inicia a abertura da tampa.
A variável tempoAberto determina durante quanto tempo a tampa permanece aberta. Neste projeto, o valor utilizado é de 3000 milissegundos, equivalente a 3 segundos.
🎥 Vídeo do projeto
Assista ao vídeo para ver o funcionamento do Caixote de Lixo Automático com Arduino.
🚀 Possíveis melhorias
- Adicionar um sensor para medir o nível de lixo.
- Adicionar um display LCD.
- Adicionar um buzzer para avisos sonoros.
- Utilizar um ESP32 para comunicação através de Wi-Fi.
- Adicionar diferentes tempos de abertura.
- Melhorar a estrutura mecânica da tampa.
✅ Conclusão
O Caixote de Lixo Automático com Arduino é um projeto de automação que demonstra como um sensor, um microcontrolador e um motor podem trabalhar juntos para realizar uma tarefa automaticamente.
O sensor IR realiza a deteção, o Arduino processa a informação, o servo motor movimenta a tampa e o módulo semáforo apresenta visualmente o estado do sistema.
© Direitos autorais das imagens
As imagens dos componentes utilizadas neste projeto pertencem à galeria do JN Portfolio. Os links abaixo permitem visualizar as respetivas imagens.