[笔记]Arduino平台使用US-100超声波测距模块的串口模式测温实验

上次学习了使用电平和串口方式利用US-100超声波测距模块来测距,其实作为带有温度补偿的模块,当然也可以测温了。
连线与串口测距方式完全相同。
根据文档“US-100超声波测距模块在Arduino平台上的使用说明”的说法,“在串口模式下,通过Trig/TX 管脚输入0X50(波特率9600),US-100 便会通过Echo/RX管脚输出一个字节的温度值(TData), 实际的温度值为TData-45。例如通过TX 发送完0X50 后,在RX 端收到0X45,则此时的温度值为 [69(0X45 的10 进制值)-45] = 24度。”

/* ----------------------------------------
* 超声波测距模块US-100串口方式测温
* 选择串口方式需要插上模块背面的跳线
* US-100的探头面向自己时,从左到右Pin脚依次为:
* VCC / Trig(Tx) / Echo(Rx) / GND / GND
* 两个GND只需要一个接地即可
* Trig 接1脚,Echo接0脚
* -----------------------------------------
*/

void setup(){
// 将Arduino 的RX 与TX(Digital IO 0 和1)分别于US-100 的Echo/Rx 和Trig/Tx相连
// 确保连接前已经插上跳线,使US-100 处于串口模式
Serial.begin(9600); // 设置波特率为 9600bps.
}

void loop(){
int temperature = 0;

Serial.flush(); // 清空串口接收缓冲区t
Serial.write(0x50); // 发送0x50,触发US-100 开始测温
delay(500); //延时500 毫秒

//当串口接收缓冲区中数据大于1字节
if(Serial.available() >= 1){
temperature = Serial.read(); //读出US-100 返回的结果

//返回的有效值在 1 到130 之间
if((temperature > 1) && (temperature < 130)){
temperature -= 45; //实际温度值等于返回值减45
Serial.print("Temperature is: "); //输出结果至串口监视器
Serial.print(temperature, DEC);
Serial.println(" C'");
}
}

delay(500); //等待500ms
}



转载于:https://www.cnblogs.com/journeyonmyway/archive/2012/01/15/2323132.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值