先上视频:
7.15 复制打开抖音,看看【许明锋同学的作品】智能垃圾桶# 大学生 # 智能# 企水 https://v.douyin.com/iNnRk7Jn/ 06/26 E@h.od sRX:/
材料清单:
网购一个桌面分类垃圾桶---6RMB
一个esp8266开发板---18RMB
超声波传感器---6RMB
sg90舵机---9RMB
一些杜邦线,面包板和热熔胶枪
接线:
按照下面代码进行接线即可,可以参照视频里的进行布置
代码:
#include <Servo.h>
Servo servo;
const int trigPin = 5; // Trig引脚连接到Arduino的D1引脚
const int echoPin = 4; // Echo引脚连接到Arduino的D2引脚,超声波连接3.3v
const int LedPin =16; // LED引脚 D0
long duration, cm, inches;
void setup()
{
servo.attach(2); // 将舵机信号线连接到 Arduino 的 D4 引脚
Serial.begin(9600); // 打开串口并设置波特率为9600
pinMode(trigPin, OUTPUT); // 设置Trig引脚为输出模式
pinMode(echoPin, INPUT); // 设置Echo引脚为输入模式
pinMode(LedPin, OUTPUT); // 设置LED引脚1为输出模式
}
void loop()
{
digitalWrite(trigPin, LOW); // 将Trig引脚置为低电平,准备发送触发信号
delayMicroseconds(5);
digitalWrite(trigPin, HIGH); // 发送一个10微秒的高电平脉冲来触发超声波传感器
delayMicroseconds(10);
digitalWrite(trigPin, LOW); // 结束触发信号
duration = pulseIn(echoPin, HIGH); // 读取Echo引脚的脉冲持续时间,即超声波从发送到接收的时间
cm = (duration/2) / 29.1; // 根据声音在空气中的传播速度计算距离(厘米)
Serial.print("当前距离为: ");
Serial.print(cm); // 打印距离(厘米)
Serial.println(" cm");
delay(100); // 延迟100毫秒后再次进行测量
if (cm <= 5)
{
digitalWrite(LedPin, HIGH);
servo.write(0); // 控制舵机转动到指定角度
delay(1000); // 等待2秒钟,开盖时长
servo.write(90); // 控制舵机转动到指定角度
delay(500); // 等待舵机完成旋转
Serial.print("垃圾桶已开! ");
}
else
{
digitalWrite(LedPin, LOW);
}
}