当前位置: 首页 > article >正文

基于Arduino的超声波和舵机模块集成使用

在这里插入图片描述

一.超声波模块和舵机模块集成使用

  • 超声波模块:HC-SR04
  • 舵机模块:SG90
  • 目的:通过Arduino UNO核心板控制舵机旋转到不同位置,同时获取不同位置超声波模块和障碍物间的距离,配合控制算法,进行基于超声波智能避障小车的制作。

二.源代码

#include <Servo.h>
#define trigPin 2
#define echoPin 3
#define pwmPin 9

Servo myServo;

void setup() {
  // put your setup code here, to run once:
  pinMode(trigPin,OUTPUT);
  pinMode(echoPin,INPUT);
  Serial.begin(9600);

  myServo.attach(pwmPin);
}

void loop() {
  // put your main code here, to run repeatedly:
  float value1,value2,value3;
  //舵机旋转到正前方
  servoRun(90);
  Serial.print("value1: ");
  value1 = getDistance();
  
  //舵机旋转到右前方45°处
  servoRun(45);
  Serial.print("value2: ");
  value2 = getDistance();
  
  //舵机旋转到左前方135°处
  servoRun(135);
  Serial.print("value3: ");
  value3 = getDistance();
}

float getDistance()
{
  //10us高电平脉冲触发超声波模块
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  float valueCM = 0;
  valueCM = float(pulseIn(echoPin,HIGH)*17/1000);

  Serial.print(valueCM);
  Serial.println("cm");
  delay(100);

  return valueCM;
}

//舵机旋转到不同的角度
void servoRun(int angle)
{
  myServo.write(angle);
  delay(500);//等待超声波模块稳定
}

说明:

  • 舵机模块使用参考本专栏文章《基于Arduino的SG90舵机驱动》
  • 超声波模块使用参考本专栏文章《基于Arduino的超声波测距模块HC-SR04》

三. 智能避障小车相关原理:

1)正常情况下,智能小车会沿直线行驶,当遇到前方有障碍物且小于一定距离时(设定距离可根据具体情况调整),智能小车立即停止运行。
2)舵机转动超声波模块探测右方45°和左方135°障碍物距离并返回给Arduino控制板。
3)Arduino控制板根据前方、右方、左方障碍物的距离,自动判断一条可以安全前进的路径,避开障碍物后,再继续沿直线行驶。

四. 运行效果

舵机分别旋转到正前方(90°),右前方(45°),左前方(135°)三个位置,并分别获取超声波模块和障碍物间的距离。使用Arduino IDE的串口监视器工具,能够实时显示获得的距离值,单位为cm。

http://www.kler.cn/news/340828.html

相关文章:

  • 软件测试 —— 灰度测试及测试流程!
  • 什么是CIA三要素以及对于信息安全的重要性
  • 如何使用IntelliJ IDEA生成UML图
  • SQL性能优化指南:如何优化MySQL多表join场景
  • CW32L010安全低功耗MCU,树立M0+产品行业新标杆!
  • 【计算机毕设】springboot-家具销售电商平台(附源码)
  • ThreadLocal底层原理及数据结构详解
  • PostgreSQL中使用RETURNING子句来返回被影响行的数据
  • 力扣 二叉树 104. 二叉树的最大深度
  • FastJson详解与使用:高效JSON解析与序列化利器
  • 计算机毕业设计Django+Vue.js豆瓣图书推荐系统 图书评论情感分析 豆瓣图书可视化大屏 豆瓣图书爬虫 数据分析 图书大数据 大数据毕业设计 机器学习
  • 在Ubuntu 22.04上安装Ollama的两种方式
  • 胤娲科技:AI评估新纪元——LightEval引领透明化与定制化浪潮
  • Springboot3+druid+jasypt+application.yml配置文件数据库密码加密技术
  • 上门安装维修系统小程序开发详解及源码示例
  • pip 和 conda 的安装区别
  • Unity实现自定义图集(四)
  • 软件包与服务搭建
  • 滚雪球学Redis[3.1讲]:Redis的持久化机制
  • Scalable TCP 如何优化长肥管道