# 创 意 说 明 #
垃圾处理是当今社会面临的一大问题。作为一个小公民,我们能做到的是平时养成不乱扔垃圾的习惯。但是,有时候因为垃圾桶的开口较小方向又是垂直的,造成垃圾桶周围总是有很多垃圾。特别是垃圾桶满后,人们仍然往里扔,但大多数垃圾都会掉出来。由于有开口,夏季就会有一些难闻的气味。于是,我想到制作一个全封闭、能自动开关门、能提示垃圾装满的智能垃圾桶。
# 功能演示 #
材料清单
- Arduino Uno 主控板 X1
- IO扩展板 X1
- 舵机 X2
- 红外避障传感器 X1
- 超声波传感器 X1
- RGB LED灯 X1
步骤1 准备材料
根据项目制作的需要,准备了1块Arduino Uno主控板、1块扩展板、1个红外避障传感器、2个舵机、1个超声波传感器、1个RGB灯等材料。另外,找到了几个废弃纸箱用来制作外型。
步骤2 硬件搭建
将扩展板叠放到主控板上,其他电子元件连接到扩展板的引脚上。
步骤3 编写程序
步骤4 制作外型
利用废纸箱上切下来的瓦楞纸制作了垃圾桶的外壳和里面装垃圾的桶。
步骤5 安装电子材料
将全部电子材料安装到合适的位置。
步骤6 调试完善
代码
#include <Servo.h>
Servo servo_10;
Servo servo_11;
float checkdistance_2_3() {
digitalWrite(2, LOW);
delayMicroseconds(2);
digitalWrite(2, HIGH);
delayMicroseconds(10);
digitalWrite(2, LOW);
float distance = pulseIn(3, HIGH) / 58.00;
delay(10);
return distance;
}
void setup(){
servo_10.attach(10);
servo_11.attach(11);
servo_10.write(98);
delay(0);
servo_11.write(90);
delay(0);
pinMode(A0, INPUT);
pinMode(2, OUTPUT);
pinMode(3, INPUT);
}
void loop(){
if (digitalRead(A0) == 1) {
analogWrite(5,0);
analogWrite(6,0);
analogWrite(9,255);
} else {
analogWrite(5,255);
analogWrite(6,0);
analogWrite(9,0);
}
if (checkdistance_2_3() < 8) {
servo_10.write(8);
delay(0);
servo_11.write(0);
delay(0);
delay(10000);
} else {
servo_10.write(98);
delay(0);
servo_11.write(90);
delay(0);
}
}
评论