驱动US-100超声波模块
由于最近在搞无人机,为了让它在室内定位稳一点所以使用了光流模块,上面有一个US-100的超声波模块,而我想通过stm32模拟遥控器,需要得到一个高度的信息,于是就准备通过串口通信读取US-100的高度反馈。
模块概述即参数
US-100超声波测距模块可实现2cm4.5m的非接触测距功能,拥有2.45.5V的宽电压输入范围,静态功耗低于2mA,自带温度传感器对测距结果进行校正,同时具有GPIO,串口等多种通信方式,内带看门狗,工作稳定可靠。
主要技术参数:
工作电压:DC 2.4V~5.5V
静态电流:2mA
工作温度:-20~+70度
输出方式:电平或UART(跳线帽选择)
感应角度:小于15度
探测距离:2cm-450cm
探测精度:0.3cm+1%
UART模式下串口配置:波特率9600,起始位1位,停止位1位,数据位8位,无奇偶校验,无流控制。
本模块的尺寸:45mm20mm1.6mm。板上有两个半径为1mm的机械孔
接口说明:
本模块共有两个接口,即模式选择跳线和5 Pin接口。
模式选择跳线接口如下图所示。模式选择跳线的间距为2.54mm,当插上跳线帽时为UART(串口)模式,拔掉时为电平触发模式。
串口触发
时序
使用说明
反馈温度
此模式下只需要在 Trig/TX 管脚输入0X50(波特率 9600),系统便启动温度传感器对当前温度进行测量,然后将温度值通过 Echo/RX 管脚输出。测量完成温度后,本模块会返回一个字节的温度值(TData),实际的温度值为 TData-45。例如通过 TX 发送完0X50 后,在 RX 端收到 0X45,则此时的温度值为 [69(0X45 的10进制值)-45] = 24 度。
反馈距离
在此模式下只需要在Trig/TX管脚输入0X55(波特率9600),系统便可发出8个40KHZ的超声波脉冲,然后检测回波信号。当检测到回波信号后,模块还要进行温度值的测量,然后根据当前温度对测距结果进行校正,将校正后的结果通过Echo/RX管脚输出。
输出的距离值共两个字节,一个字节是距离的高8位(HDate),二个字节为距离的低8位(LData),单位为毫米。即距离值为(HData*256 +LData)mm。
注意事项
1、此模块不宜带电连接,若要带电连接,则先让模块的 GND端先连接,否则会影响模 块的正常工作。
2、测距时,被测物体的面积不少于 0.5平方米且平面尽量要求平整,否则影响测量的 结果
3、如果测试面不是很规则或则测试远距离物体时,可采用多次测量的方法来校正。
最坑之处!!!
一般我们知道串口通信TX接RX,而RX接TX,而这个模块正好相反!!!其他的就没什么了,记得不要访问过于频繁,可以在定时器中断里面发送0x50。
- 1号Pin:接VCC电源(供电范围2.4V~5.5V)。
- 2号Pin:当为UART模式时,接外部电路UART的TX端;当为电平触发模式时,接外部电路的Trig端。
- 3号Pin:当为UART模式时,接外部电路UART的RX端;当为电平触发模式时,接外部电路的Echo端。
- 4号Pin:接外部电路的地。
- 5号Pin:接外部电路的地。
部分代码
uint8_t receive_data[2];
uint16_t distance = 0;
int main(void)
{
HAL_UART_Receive_IT(&huart2,receive_data,2u);
HAL_TIM_Base_Start_IT(&htim2);
TIM2->ARR = 49999;
}
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(huart == &huart2)
{
HAL_UART_Receive_IT(&huart2,receive_data,2u);
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);
distance = (receive_data[0]*256+receive_data[1])/10;//mm转cm
}
}
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim->Instance == TIM2)
{
uint8_t transmit_data = 0x55;
HAL_UART_Transmit(&huart2,&transmit_data,1,100);
}
}
刚才不应该那么快飞线的,又要重新飞线了!!!哭了!
无人机上机调试
一开始失败,原因在于飞线我飞短了!(焊接技术不到家)
重新飞线后成功读取光流超声波数据!
2019.9.4无人机定高测试
US-100超声波模块与无人机机械固连回发生机体机械振动会对超声波发送的超声波有影响(影响在于机体机械振动抵消了超声波发射的超声波振动导致高度信息错误)
海绵垫对超声波有吸收作用,导致探测距离过短(1m不到)
解决办法:在水泥地上测试并且超声波模块与机体通过减震材料固定(如泡棉)