基于Wemos的感应开盖垃圾桶

做过的一个小项目,基于Wemos的基础模块,利用超声波模块和舵机实现垃圾箱盖子的自动开合。

一、成果展示

制作完成后可通过移动电源供电使用,当垃圾桶前部指定范围内出现物体时,桶盖自动打开,此时可以将物品放入桶内,延时一定时间后,桶盖自动关闭。若垃圾桶前部指定范围内始终有物体存在,桶盖将保持打开状态。

二、硬件模块

义乌小商品 - - 迷你垃圾桶

在这里插入图片描述

WeMos D1开发板、超声波模块、sSG90舵机

在这里插入图片描述

三、源代码

#include<Servo.h>
#define Pin_d D5
#define Echo D2
#define Trig D3
Servo Duoji;
long gettime(){
   digitalWrite(Trig,HIGH);  
   delayMicroseconds(10);
   digitalWrite(Trig,LOW);//发送的超声波为10hz的方波
   return pulseIn(Echo,HIGH);//计算接收的时间
}
void setpin(){
  pinMode(Echo,INPUT); //超声波接收设为INPUT
  pinMode(Trig,OUTPUT); //超声波发送设为OUTPUT  
  Duoji.attach(Pin_d); //连接舵机
}
void setup() {
  setpin(); //初始化端口 
  Serial.begin(115200);
}

void loop() {
  long far;
  far = gettime()/58;  //测距,单位为cm
  
  if(far < 10){
     Duoji.write(45); //打开盖子
     delay(2000);
    }
  else{
     Duoji.write(150);//关闭盖子
    } 
  delay(500);  
}

四、笔记

(1)void setup() //初始化

Serial.begin(speed) //波特率设置
pinMode(D5,OUTPUT/INPUT)  //设置D5引脚为输出/输入引脚
digitalWrite(D5,HIGH/LOW) //设置D5引脚为高/低电平
delayMicroseconds(1) //延时一微秒us

(2)void loop()

Serial.println(val) //串口输出 打印数据并换行
Serial.available()>0  //检测端口是否有数据
Serial.read()  //读取串口数据

(3)Servo类函数 //(伺服)舵机

#include<Servo.h>  //定义头文件
Servo Duoji  //定义舵机变量名 Duoji
Duoji.attach(D5); //连接舵机到D5引脚
Duoji.write(45); //另舵机旋转45°角
attach() //连接舵机
write() //角度控制
read() //读取上一次舵机转动角度
  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值