基于Adruino单片机的自动开关垃圾桶(用Adruino和Mind+两种模式实现)


前言

最近在学习传感器原理和高频电子技术的课程,对于超声波这一词语很感兴趣,手上也有超声波传感器,尝试着做了一个自动垃圾桶项目,希望大家能够喜欢。


一、自动开关垃圾桶原理

当人接近垃圾桶时,超声波模块会检测到人接近,打开垃圾桶盖,同时,当人离开垃圾桶时,关上垃圾桶盖。

二、实物搭建

1.设备清单

1、Arduino UNO板(含USB连接线)

2、HC-SR04超声波传感器

3、SG90舵机1个

4、杜邦线(若干)

2.I/0口接线

HC-SR04超声波传感器Arduino UNO板
GNDGND
VCC5v
TrigD2
EchoD3
SG90舵机Arduino UNO板
GNDGND
VCC5V
SignaD8

3.接线图

在这里插入图片描述

4.Adruino IDE实现

4.1Adruino IDE的使用

1.点击新建,选择文件就可以建立一个新文件,初始界面如下图所示。
在这里插入图片描述
2、点击项目,加载库,管理库,搜索Servo,下载库。(其他库也可以在线下载,或者下载库的压缩包)
在这里插入图片描述
3、选择工具、查看端口是否正确(一般要插上单片机才能检测到)。
4、进行编译和上传。在这里插入图片描述

4.2系统代码实现

set up()代码如下(示例):

void setup() 
{
  myservo.attach(8);  // 设置舵机的Signa引脚为D8
  Serial.begin(115200);//设置波特率,方便测量
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
}

loop()代码如下(示例):

void loop() {
  float distance = readDistanceCM();
  Serial.print("Measured distance: ");
  Serial.println(readDistanceCM());//便于测试,从串口中查看
       if(distance<10)
          {
           myservo.write(0);//小于10cm开盖
           delay(2000);//2秒的延时
           }
        else
           {
            myservo.write(90);//大于10cm关盖
           }
}

4.3最终效果

串口界面
在这里插入图片描述
实物模型
未组装前:
请添加图片描述
组装后
请添加图片描述

5.MIND+实现(适合上小学初中的小朋友,拼积木的快感~)

5.1MIND+的使用

1、打开扩展
在这里插入图片描述
2、在主控板上选择Adruino Uno,传感器中选择超声波测距传感器,执行器中选择舵机模块。在这里插入图片描述在这里插入图片描述
在这里插入图片描述

5.2系统代码实现

1、图形块
在这里插入图片描述
2、代码如下(示例):

#include <DFRobot_URM10.h>
#include <DFRobot_Servo.h>
// 创建对象
DFRobot_URM10 urm10;
Servo         servo_8;
// 主程序开始
void setup() {
	Serial.begin(9600);
	servo_8.attach(8);
}
void loop() {
	Serial.print("distance:");
	Serial.println((urm10.getDistanceCM(3, 2)));
	if (((urm10.getDistanceCM(3, 2))<10)) {
		servo_8.angle(abs(0));
	}
	else {
		servo_8.angle(abs(90));
	}
}

最后只需选择串口,找到上传模式上传就行了。
在这里插入图片描述
在这里插入图片描述

总结

以上就是今天要分享的内容,本文用Adruino IDE 和MIND+实现了自动开关垃圾桶的项目,具体代码已经在gitee仓库开源(https://gitee.com/nqqdz/Automatic-switch-trash-can.git),旨在与各位同学一起交流,提升技术。作为一位死磕嵌入式的小白,希望大家能在此过程中不吝赐教,如有问题,请大家批评指正。

  • 8
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Looking forward to a bright

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值