回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【羿杉出品】智能垃圾桶 简单

头像 羿杉 2019.07.14 2307 0

# 创 意 说 明 #

垃圾处理是当今社会面临的一大问题。作为一个小公民,我们能做到的是平时养成不乱扔垃圾的习惯。但是,有时候因为垃圾桶的开口较小方向又是垂直的,造成垃圾桶周围总是有很多垃圾。特别是垃圾桶满后,人们仍然往里扔,但大多数垃圾都会掉出来。由于有开口,夏季就会有一些难闻的气味。于是,我想到制作一个全封闭、能自动开关门、能提示垃圾装满的智能垃圾桶。

# 功能演示 #

材料清单

  • Arduino Uno 主控板 X1
  • IO扩展板 X1
  • 舵机 X2
  • 红外避障传感器 X1
  • 超声波传感器 X1
  • RGB LED灯 X1

步骤1 准备材料

根据项目制作的需要,准备了1块Arduino Uno主控板、1块扩展板、1个红外避障传感器、2个舵机、1个超声波传感器、1个RGB灯等材料。另外,找到了几个废弃纸箱用来制作外型。

project-image

步骤2 硬件搭建

将扩展板叠放到主控板上,其他电子元件连接到扩展板的引脚上。

project-image
project-image

步骤3 编写程序

project-image
project-image

步骤4 制作外型

利用废纸箱上切下来的瓦楞纸制作了垃圾桶的外壳和里面装垃圾的桶。

project-image
project-image

步骤5 安装电子材料

将全部电子材料安装到合适的位置。

project-image
project-image

步骤6 调试完善

project-image
代码
#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);

  }

}

评论

user-avatar