基于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

5V VCC(红线)
GND GND(棕线)
pin9

橙线

Arduino UNO 舵机2
5V VCC(红线)
GND GND(棕线)
pin11 橙线

Arduino UNO 超声波测距模块
5V VCC
GND GND
pin10 Trig
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、总结

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

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-13 21:12:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-13 21:12:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-13 21:12:02       87 阅读
  4. Python语言-面向对象

    2024-05-13 21:12:02       96 阅读

热门阅读

  1. 代码随想录算法训练营第36期DAY23

    2024-05-13 21:12:02       27 阅读
  2. 接口安全设计之防篡改和防重放

    2024-05-13 21:12:02       32 阅读
  3. 后端返回文件流格式,前端vue 导出下载表格

    2024-05-13 21:12:02       36 阅读
  4. Harmony 添加library依赖库步骤

    2024-05-13 21:12:02       33 阅读
  5. Spring+Mybatis-plus 实现 Gauss DB数据库代码生成

    2024-05-13 21:12:02       28 阅读
  6. puppyteer

    2024-05-13 21:12:02       36 阅读
  7. 力扣:738. 单调递增的数字

    2024-05-13 21:12:02       39 阅读
  8. 访问者模式:设计模式中的动态行为扩展

    2024-05-13 21:12:02       43 阅读
  9. SQL简介

    2024-05-13 21:12:02       37 阅读
  10. vue 自定义事件和子组件方法调用

    2024-05-13 21:12:02       31 阅读