US-100超声波测距模块在Arduino平台上的使用说明
更新时间:2023-05-23 03:07:01 阅读量: 实用文档 文档下载
US‐100超声波测距模块在Arduino
平台上的使用说明
1. 系统介绍
1.1 US‐100介绍
US-100超声波测距模块可实现2cm~4.5m的非接触测距功能,拥有2.4~5.5V的宽电压输入范围,静态功耗低于2mA,自带温度传感器对测距结果进行校正,同时具有GPIO,串口(波特率9600bps)等多种通信方式,内带看门狗,工作稳定可靠。通过模块背部的2Pin跳线来选择不同的模式,当拔掉跳线帽时,表示工作在GPIO模式下;当插上跳线帽时,表示工作在串口模式下,如图1.1所示。
图1.1:模式选择跳线接口
电平触发模式下(GPIO模式)只需要在Trig/TX管脚输入一个10US以上的高电平,US-100便可通过Echo端输出一高电平,可根据此高电平的持续时间来计算距离值。即距离值为:(高电平时间*340m/s)/2。此距离值已经经过温度校正,即不管温度多少,声速选择340m/s即可。
在串口模式下,通过Trig/TX管脚输入0X55(波特率9600),US-100便会通过Echo/RX管脚输出两字节的距离值,第一个字节是距离的高8位(HDate),第二个字节为距离的低8
位(LData),单位为毫米。即距离值为 (HData*256 +LData)mm。
在串口模式下,通过Trig/TX管脚输入0X50(波特率9600),US-100便会通过Echo/RX
管脚输出一个字节的温度值(TData), 实际的温度值为TData-45。例如通过TX发送
完0X50后,在RX端收到0X45,则此时的温度值为 [69(0X45的10进制值)-45] = 24
度。
1.2 Arduino介绍
Arduino是源自意大利的一个开放源代码的硬件项目,该平台包括一片具备简单I/O
功效的电路板以及一套程序开发环境。Arduino 可以用来开发可独立运作、并具互动性
的电子用品,或者也可以开发出与PC相连的周边装置,同时能在运作时与PC上的软件
进行沟通。Arduino的硬体电路板可以自行焊接组装成,也可以购买已经组装好的,而
整合开发环境的软体则可以自网路上免费下载与使用。通过Arduino,可以做出很多令
人惊奇的互动作品。
本文以arduino duemilanove 2009为例进行说明,其他Arduino平台的使用方法
类似。
arduino duemilanove 2009如图1.2所示:
图
1.2:arduino duemilanove 2009
2. GPIO模式下US‐100与Arduino连线及例程
2.1 GPIO模式下的连接
连接前首先将US-100模块背面的跳线帽拔掉。
GPIO模式下US-100与Arduino的连接如表2.1和图2.1所示: US-100 管脚
VCC
Trig/TX
Echo/RX
GND
GND 连接到Arduino对应的管脚 5V (POWER) Pin 3 (DIGITAL IO 3) Pin 2 (DIGITAL IO 2) GND GND(GND可只连一个)
表2.1:GPIO模式下US-100与Arduino的连接
图2.1: US-100与Arduino的连接
2.2 GPIO模式下的使用例程
unsigned int EchoPin = 2; //将Arduino的Pin2连接至US-100的Echo/RX
unsigned int TrigPin = 3; //将Arduino的Pin3连接至US-100的Trig/TX
unsigned long Time_Echo_us = 0;
unsigned long Len_mm = 0;
void setup()
{ //Initialize
Serial.begin(9600); //测量结果将通过此串口输出至PC上的串口监视器
pinMode(EchoPin, INPUT);//设置EchoPin为输入模式。
pinMode(TrigPin, OUTPUT); //设置TrigPin为输出模式。
}
void loop()
{ //通过Trig/Pin发送脉冲,触发US-100测距
digitalWrite(TrigPin, HIGH); //开始通过Trig/Pin发送脉冲
delayMicroseconds(50); //设置脉冲宽度为50us (>10us)
digitalWrite(TrigPin, LOW); //结束脉冲
Time_Echo_us = pulseIn(EchoPin, HIGH); //计算US-100返回的脉冲宽度
if((Time_Echo_us < 60000) && (Time_Echo_us > 1))//脉冲有效范围(1, 60000).
{
// Len_mm = (Time_Echo_us * 0.34mm/us) / 2 (mm)
Len_mm = (Time_Echo_us*34/100)/2; //通过脉冲宽度计算距离.
Serial.print("Present Distance is: ");//输出结果至串口监视器
Serial.print(Len_mm, DEC); //输出结果至串口监视器
Serial.println("mm"); //输出结果至串口监视器
}
delay(1000); //每秒(1000ms)测量一次
}
2.3 GPIO模式下测试及截图
在使用时,首先在Arduino的开发环境中编辑源代码,编辑完后将程序进行编译,
最后下载到Arduino开发板上,建议在下载程序到Arduino开发板上的过程中拔掉
US-100与Arduino的连线。
待程序下载完毕,首先断掉电源,将US-100模块背部的跳线拔掉,然后按表2.1
所示连接US-100与Arduino上的相应管脚。连接好后给Arduino开发板上电,系统便
可运行。
此时打开Arduino开发环境中自带的串口监视器,便可查看运行的结果。
GPIO模式下,2.2中使用例程的测试截图如图2.2所示:
图2.2: GPIO模式下US‐100测试截图
3. 串口模式下US‐100与Arduino连线及例程
3.1串口模式下的连接
连接前首先将US-100模块背面的跳线帽插上。
串口模式下US-100与Arduino的连接如表3.1和图3.1所示: US-100 管脚
VCC
Trig/TX
Echo/RX
GND
GND 连接到Arduino对应的管脚 5V (POWER) Pin 1 (TX,DIGITAL IO 1) Pin 2 (RX,DIGITAL IO 2) GND GND(GND可只连一个)
表3.1:GPIO模式下US-100与Arduino的连接
注意事项:在串口模式下,首先将程序下载到Arduino开发板上,然后将Arduino
断电,将US-100和Arduino按照表3.1所示连接,连好后再给Arduino上电。
如果先将US-100与Arduino连好,再给Arduino下载程序,在下载程序时会出错,
因为US-100与Arduino的通信和Arduino下载程序时使用的同一个串口,会相互干扰。
图3.1:串口模式下US‐100与Arduino的连接
3.2 串口模式下测距使用例程
unsigned int HighLen = 0;
unsigned int LowLen = 0;
unsigned int Len_mm = 0;
void setup()
{ //将Arduino的RX与TX(Digital IO 0和1)分别于US-100的Echo/Rx 和Trig/Tx
相连,确保连接前已经使US-100处于串口模式。
Serial.begin(9600); //设置波特率为 9600bps.
}
void loop()
{
Serial.flush(); // 清空串口接收缓冲区
Serial.write(0X55); // 发送0X55,触发US-100开始测距
delay(500); //延时500毫秒
if(Serial.available() >= 2) //当串口接收缓冲区中数据大于2字节
{
HighLen = Serial.read(); //距离的高字节
LowLen = Serial.read(); //距离的低字节
Len_mm = HighLen*256 + LowLen; //计算距离值
if((Len_mm > 1) && (Len_mm < 10000)) //有效的测距的结果在1mm到
10m之间
{
Serial.print("Present Length is: "); //输出结果至串口监视器
Serial.print(Len_mm, DEC); //输出结果至串口监视器 Serial.println("mm"); //输出结果至串口监视器
}
}
delay(500); //等待500ms
}
3.3 串口模式下测温使用例程
int Temperature45 = 0;
void setup()
{ //将Arduino的RX与TX(Digital IO 0和1)分别于US-100的Echo/Rx 和Trig/Tx
相连,确保连接前已经使US-100处于串口模式。
Serial.begin(9600); //设置波特率为 9600bps.
}
void loop()
{
Serial.flush(); // 清空串口接收缓冲区t
Serial.write(0X50); // 发送0X50,触发US-100开始测温
delay(500); //延时500毫秒
if(Serial.available() >= 1) //当串口接收缓冲区中数据大于1字节
{
Temperature45 = Serial.read(); //读出US-100返回的结果
if((Temperature45 > 1) && (Temperature45 < 130)) //返回的有效值在
1到130之间
{
Temperature45 -= 45; //实际温度值等于返回值减45
Serial.print("Present Temperature is: "); //输出结果至串口监视
器
Serial.print(Temperature45, DEC); //输出结果至串口监视器
Serial.println(" degree centigrade."); //输出结果至串口监视器
}
}
delay(500); //等待500ms
}
3.3 串口模式下测试及截图
在使用时,首先在Arduino的开发环境中编辑源代码,编辑完后将程序进行编译,最后下载到Arduino开发板上,在下载程序到Arduino开发板上的过程中需要拔掉US-100与Arduino的连线。
待程序下载完毕,首先断掉电源,同时确保US-100模块背部的跳线已经插上,US-100工作在串口模式下,然后按表3.1所示连接US-100与Arduino上的相应管脚。连接好后给Arduino开发板上电,系统便可运行。
此时打开Arduino开发环境中自带的串口监视器,便可查看运行的结果。
串口模式下测距截图如图3.2所示:
图3.2:串口模式测距截图
从图3.2中可以看到,在串口测距时,每一行前多一个字符‘U’,这是因为Arduino与US-100通信和Arduino与PC机通信使用的是同一个串口,当Arduino向US-100发送0X55触发测距时,0X55同时被PC机接收到,所以显示‘U’(U的ASCII码为0X55)。
串口模式测温截图如图3.3所示
图3.3:串口模式测温截图
从图3.3中可以看到,在串口测温时,每一行前多一个字符‘P’,这是因为Arduino与US-100通信和Arduino与PC机通信使用的是同一个串口,当Arduino向US-100发送0X50触发测距时,0X50同时被PC机接收到,所以显示‘P’(P的ASCII码为0X50)。
正在阅读:
US-100超声波测距模块在Arduino平台上的使用说明05-23
74系列集成电路10-23
7月1-21日(国际)04-09
海洋渔业安全生产存在问题及对策04-09
楹联集锦02-19
地方电网110kV变电站电气主接线选择06-10
LSI 9364-8i配置Raid 5及单盘、多盘掉线处理 - 邱禹迪 - 图文04-30
掌门1对1数学老师岗位实习报告_004-30
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 测距
- 超声波
- 使用说明
- 台上
- 模块
- Arduino
- 100
- 年中小学教师中级专业技术资格理论考试题(含答案)题
- 女性主义视野中的悲剧性——以莎士比亚“四大悲剧”中的女性形象为例
- 2012年考研政治真题及参考答案
- 神奇的莫比乌斯带
- 12年福建电力公司考核录用笔试试题
- 合同范本之技术贸易合同模板
- 促销员绩效考核办法
- 新人教版八年级地理上册期末总复习
- 2010年四年级“学而思杯”数学试题
- 小学英语试卷质量分析
- 10177《设计基础》专项突破
- 锐捷网络产品图标库(2009)
- 最新版本理论热点面对面(申论高分必备)
- 构建学习型组织促进教师主动发展-李烈
- 张振亮-均匀流体和不均匀流体的形成机制_来自合成流体包裹体的证据
- TPE办理《大陆居民往来台湾通行证》《入台证》手续须知
- 图书管理系统设计说明书--熊犇
- 小学数学毕业总复习资料
- UC3842的原理及应用详解
- 《土壤与尘埃》作文指导