基于Arduino UNO的自动开盖分类垃圾桶(Arduino系列四)

目录

1、所需材料

2、使用原理

3、模块简介

3.1 Arduino UNO

3.2 超声波测距模块

3.3 舵机(自由度为180度或360度)

4、接口接线

5、代码示例

 6、总结


1、所需材料

Arduino UNO开发板+180度舵机*2+公对母杜邦线六根+超声波测距模块+公对母杜邦线四根

2、使用原理

为了实现在使用两个不同的垃圾桶时候,垃圾盖子可以分别打开。

3、模块简介

3.1 Arduino UNO

  Arduino Uno 是一款基于 微控制器 MTATmega328P的开发板。它有14个数字输入/输出引脚(这些引脚中有6个引脚可以作为PWM输出引脚),6个模拟输入引脚,16 MHz石英晶振,USB接口,电源接口,支持在线串行编程以及复位按键。用户只需要将开发板与电脑通过USB接口连接就可以使用。

3.2 超声波测距模块

超声波传感器模块是一种使用超声波测量与物体之间距离的仪器。它有两个探头。一种是发送超声波,另一种是接收超声波并将发送和接收的时间转换为距离,从而检测设备与障碍物之间的距离。在实践中,它非常方便和实用。

3.3 舵机(自由度为180度或360度)

舵机是一种位置(角度)伺服的驱动器。舵机只是一种通俗的叫法,其实质是一个伺服马达。在需要角度不断变化并可以保持的控制系统中应用广泛。

4、接口接线

Arduino UNO

舵机1

5VVCC(红线)
GNDGND(棕线)
pin9

橙线

Arduino UNO舵机2
5VVCC(红线)
GNDGND(棕线)
pin11橙线

Arduino UNO超声波测距模块
5VVCC
GNDGND
pin10Trig
pin8

Echo

5、代码示例

#define TrigPin 10  //输出
#define EchoPin 8  //输入
#include <Servo.h>
Servo myservo; // 创建舵机对象来控制舵机
Servo myservo1; // 创建舵机对象来控制舵机
int pos = 0;  // 用来存储舵机位置的变量
int pos1 = 0; 
float Value_cm;

void setup()
{
	Serial.begin(9600);
	pinMode(TrigPin, OUTPUT);
	pinMode(EchoPin, INPUT);
  myservo.attach(9); // 把连接在引脚9上的舵机赋予舵机对象
  myservo1.attach(11); // 把连接在引脚9上的舵机赋予舵机对象
}
void loop()
{
	digitalWrite(TrigPin, LOW);
	delayMicroseconds(2);
	digitalWrite(TrigPin, HIGH);
	delayMicroseconds(10);
	digitalWrite(TrigPin, LOW);
	Value_cm = float( pulseIn(EchoPin, HIGH) * 17 )/1000; //将回波时间换算成cm
  Serial.println("前方障碍距离当前位置:");
	Serial.print(Value_cm);
	Serial.println("cm");
   if (Value_cm  <= 20) {
      for (pos = 0; pos <= 180; pos ++) { // 0°到180°
    // in steps of 1 degree
      myservo.write(pos);              // 舵机角度写入
      delay(10);                       // 等待转动到指定角度
    }
   }
  
   if (Value_cm <=100 && Value_cm >=50) {
      for (pos1 = 0; pos1 <= 180; pos1 ++) { // 0°到180°
    // in steps of 1 degree
      myservo1.write(pos1);              // 舵机角度写入
      delay(10);                       // 等待转动到指定角度
    }
   }
  
  delay(3000); 

}

 6、总结

在两个垃圾桶上分别安装两个舵机,使用超声波测距模块,从侧边测量人到超声波模块的距离,以此为信号,控制两个舵机的启闭,进而实现不垃圾桶前站立,不同垃圾桶打开。

  • 31
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值