Início›Projetos›Eco-Caixote do Lixo Inteligente
⬤ Intermédio · Projeto Integrado · Cenário LED

🗑️ Eco-Caixote do Lixo Inteligente

⏱️ 50–60 min📊 Intermédio🏫 Cenário LED oficial
ObstáculosReléLED 7CBuzzer

Nesta página

🎯 Objetivo do Projeto

Caixote do lixo automático — a tampa abre quando o sensor de obstáculos deteta uma mão a menos de 15 cm, e fecha automaticamente após 3 segundos. Um LED de 7 cores indica que o sistema está activo e um buzzer passivo confirma com um BIP curto cada abertura. O relé comanda o mecanismo de abertura (servomotor ou solenóide simulado).

MóduloPino do móduloPino ArduinoFunção
Sensor Obstáculos (#37)VCC / GND / OUT5V / GND / D4Deteta mão — LOW = objeto detectado
Módulo Relé (#29)VCC / GND / IN5V / GND / D7Comanda o mecanismo de abertura
LED 7 Cores (#35)VCC / GND / S5V / GND / D13Indicador de sistema activo
Buzzer Passivo (#21)VCC / GND / S5V / GND / D8Confirmação sonora
ℹ️
O relé neste projeto simula o acionamento de um mecanismo real (servomotor, solenóide, motor DC). Em contexto escolar, o relé pode ligar um LED extra como indicador da tampa — verifica na página do Módulo Relé como usar NC/NO corretamente.

⚙️ Mecanismo de Abertura — Opções

MecanismoLigação ao reléComplexidadeAdequado para
LED indicador (simulação)LED + resistência entre COM e NO⬤ InicianteDemonstração em aula — sem construção mecânica
Servomotor SG90Relé não necessário — sinal direto D9⬤ IntermédioTampa leve — angle 0°=fechado, 90°=aberto
Motor DC + driver L298NRelé para ON/OFF do motor⬤ AvançadoTampas mais pesadas com engrenagem

🔨 Fases de Montagem

Fase 1 — Sensor de obstáculos

Liga o sensor (OUT→D4, VCC→5V, GND→GND). Usa digitalRead(4) no Serial Monitor — deve ler LOW ao aproximar a mão. Ajusta a distância com o potenciómetro do sensor (tipicamente 2–30 cm).

Fase 2 — Relé e mecanismo

Liga o relé (IN→D7). Lógica invertida: digitalWrite(7, LOW) ativa o relé (abre tampa); HIGH desativa (fecha). Liga o mecanismo escolhido aos terminais COM e NO do relé.

Fase 3 — LED 7 cores e buzzer

Liga o LED 7 cores (S→D13) e o buzzer passivo (S→D8). O LED fica sempre ligado quando o sistema está activo; o buzzer faz um BIP a cada abertura.

Fase 4 — Sketch e tempo de abertura

Carrega o sketch completo e ajusta TEMPO_ABERTO conforme a usabilidade pretendida (2–5 segundos é o habitual).

💻 Código Completo

proj_eco_caixote.ino
#define SENSOR_PIN   4    // Obstáculos — LOW = mão detectada
#define RELE_PIN     7    // Relé — LOW = ativa (abre tampa)
#define LED7_PIN     13   // LED 7 cores — sistema activo
#define BUZZER_PIN   8    // Buzzer passivo
#define TEMPO_ABERTO 3000 // ms que a tampa fica aberta

bool tampaAberta = false;
unsigned long tempoAbertura = 0;

void abrirTampa() {
  if (tampaAberta) return;           // Já está aberta
  digitalWrite(RELE_PIN, LOW);       // Ativa relé (lógica invertida)
  tone(BUZZER_PIN, 1200, 80);       // BIP de confirmação
  tempoAbertura = millis();
  tampaAberta = true;
  Serial.println("Tampa: ABERTA");
}

void fecharTampa() {
  digitalWrite(RELE_PIN, HIGH);      // Desativa relé
  tone(BUZZER_PIN, 600, 80);        // BIP grave de fecho
  tampaAberta = false;
  Serial.println("Tampa: FECHADA");
}

void setup() {
  pinMode(SENSOR_PIN, INPUT);
  pinMode(RELE_PIN,   OUTPUT);
  pinMode(LED7_PIN,   OUTPUT);
  pinMode(BUZZER_PIN, OUTPUT);

  digitalWrite(RELE_PIN, HIGH);      // Garante tampa fechada ao início
  digitalWrite(LED7_PIN, HIGH);      // Sistema activo — LED 7 cores ON

  Serial.begin(9600);
  Serial.println("Eco-Caixote Inteligente — PRONTO");
}

void loop() {
  bool maoDetectada = (digitalRead(SENSOR_PIN) == LOW);

  // Abrir se detetou mão e tampa está fechada
  if (maoDetectada) {
    abrirTampa();
  }

  // Fechar automaticamente após TEMPO_ABERTO
  if (tampaAberta && (millis() - tempoAbertura > TEMPO_ABERTO)) {
    fecharTampa();
  }
}

🏆 Para ir mais longe

Kit B 37 · PR.FT6_15 · Arduino UNO · Raspberry Pi · Início · led.dge.medu.pt