Arduino 智能垃圾桶——自动开合盖 DIY
元器件与物料
- Arduino UNO(任意板子) ×1
- HC-SR04 超声波测距模块 ×1
- 舵机 Tower Pro MG996R(作者用微型舵机 SG90) ×1
- UTSOURCE 电子元器件(其他辅助元件) ×1
应用与在线服务
- Arduino IDE
项目简介
万物皆智能,为什么垃圾桶不能智能?这个垃圾桶能检测前方垃圾并自动开合盖。只需把垃圾送到它面前,盖子自动打开,等待投喂,延时几秒后自动关合。观看视频查看实际效果。
步骤 1:准备元件
- Arduino Uno(任意板)
- 舵机(微型 SG90 或 MG996R)
- HC-SR04 超声波传感器
- 舵机舵臂(舵机附带)
- 硬纸板(或冰棒棒)
- 垃圾桶
步骤 2:搭建电路
舵机和超声波功耗极低,可直接从 Arduino 5V 供电。注意 Arduino 需外接 >7.4V 直流电源(至少 7V)。
- 舵机信号线(黄) → Arduino D3
- 舵机 VCC(红) → Arduino 5V
- 舵机 GND(黑/灰) → Arduino GND
- 超声波 Trig → Arduino D6
- 超声波 Echo → Arduino D5
- 超声波 VCC → Arduino 5V
- 超声波 GND → Arduino GND
步骤 3:连接舵机臂
用热熔胶将长纸板条(或冰棒棒)粘在舵机舵臂上,再将舵机臂装上舵机。
步骤 4:安装舵机与超声波到垃圾桶
超声波传感器朝上固定在桶沿,舵机安装在合适位置,使其旋转能掀开盖子。
步骤 5:代码
代码仓库:https://github.com/ashraf-minhaj/Trash-bot
逻辑:检测 50cm 内有物体(距离 >0 且 ≤50cm)则舵机转到 50° 掀开盖子,延时 3 秒,再转到 160° 关盖。否则保持关盖位置。
#include <Servo.h>
Servo servo;
int const trigPin = 6;
int const echoPin = 5;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
servo.attach(3);
}
void loop() {
int duration, distance;
digitalWrite(trigPin, HIGH);
delay(1);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1; // cm
if (distance <= 50 && distance >= 0) {
servo.write(50); // 开盖
delay(3000);
} else {
servo.write(160); // 关盖
}
delay(60);
}
步骤 6:完成
给 Arduino 供电(>7V),你就拥有了一个自动开合盖的智能垃圾桶机器人。
[如果喜欢我的作品,请订阅我的 YouTube 频道支持我]
代码
同步托管于 GitHub:https://github.com/ashraf-minhaj/Trash-bot
原理图
(原文包含原理图图片)
制造工艺
- 现代垃圾车演变与工程
- 智能垃圾桶:多传感器物联网优化垃圾收集
- DIY 蓝牙控制 Arduino 间谍小车
- FlickMote:基于手势的智能家居红外遥控器
- DIY Arduino TV-B-Gone:万能关机遥控器
- 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
- 舵机驱动避障机器人:基于 Arduino 与 HC-SR04 构建
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- Arduino 项目优化供电方案:从按键开关到电池监测与数据记录
- Arduino 井字棋游戏:MAX7219 点阵屏 + 纸板外壳 DIY
- 从零构建智能 Arduino 四足机器人:完整指南
- Arduino + MPU6050 姿态控制舵机:SG90 与 MG996R 精准跟随实战