【实验目的】
学习STM32的M0系列芯片的使用
学习MDK开发软件的使用方法,如仿真调试
通过本实验掌握stm32F0xx的ADC使用方法
【实验环境】
Wi-Fi超声波测距传感器模块
MDK开发工具和相应的仿真器
PC机 XP、Window7/8
【实验内容】:
编写超声波实验程序,实现STM32F0xx芯片采集到超声波测距长度的AD值,并把AD值通过串口Wi-Fi模块(STA)传输给服务端Wi-Fi模块(AP),在PC上的串口调试助手显示数据。
【实验原理】
声波是一种能在气体、液体和固体中传播的机械波。根据振动频率的不同,可分为次声波、声波、超声波和微波等。
( 1 ) 次声波:振动频率低于l6Hz的机械波。
( 2 ) 声波:振动频率在16—20KHz之间的机械波,在这个频率范围内能为人耳所闻。
( 3 ) 超声波:高于20KHz的机械波。
超声波与一般声波比较,它的振动频率高,而且波长短,因而具有束射特性,方向性强,可以定向传播,其能量远远大于振幅相同的一般声波,并且具有很高的穿透能力。例如,在钢材中甚至可穿透10米以上。超声波在均匀介质中按直线方向传播,但到达界面或者遇到另一种介质时,也像光波一样产生反射和折射,并且服从几何光学的反射、折射定律。超声波在反射、折射过程中,其能量及波型都将发生变化。超声波在界面上的反射能量与透射能量的变化。取决于两种介质声阻抗特性。和其他声波一样,两介质的声阻抗特性差愈大,则反射波的强度愈大。例如,钢与空气的声阻抗特性相差10万倍,故超声波几乎不通过空气与钢的介面,全部反射。超声波在介质中传播时,随着传播距离的增加,能量逐渐衰减,能量的衰减决定于波的扩散、散射(或漫射)及吸收。扩散衰减,是超声波随着传播距离的增加,在单位面积内声能的减弱;散射衰减,是由于介质不均匀性产生的能量损失;超声波被介质吸收后,将声能直接转换为热能,这是由于介质的导热性、粘滞性及弹性造成的。
超声波传感器的测距原理:超声波发射器向某一方向发射超声波,在发射时刻的同时开始 计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。设超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离S ,即 S=340t/2。需要说明的是,超声波传感器发射的波束比较窄(<10°),反射后仍然很窄,如果被测物体被旋转放置,有可能反射波束会偏离出接收探头的位置,导致探头接收不到反射波信号,测距将失败。
第 2 章 图 超声波传感器测量物体距离原理示意图
超声波测距传感器包括有发射超声波和接收超声波的两部分装置,习惯上称为超声波换能器或超声波探头。常用的超声波传感器有两种,即压电式超声波传感器和磁致式超声波传感器。本实验采用的是压电式超声波传感器, 主要由超声波发射器(或称发射探头)和超声波接收器(或称接收探头)两部分组成,它们都是利用压电材料(如石英、压电陶瓷等)的压电效应进行工作的。利用逆压电效应将高频电振动转换成高频机械振动,产生超声波,以此作为超声波的发射器。而利用正压电效应将接收的超声振动波转换成电信号,以此作为超声波的接收器。
HCC--SSRR0044超声波测距模块可提供2cm--400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。
HC--SR04的时序图:
以上时序图表明你只需要提供一个10uS以上脉冲触发信号,该模块内部将发出8个40kHz周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。公式:uS/58=厘米或者uS/148=英寸;或是:距离= 高电平时间*声速(340M/S)/2;建议测量周期为60ms以上,以防止发射信号对回响信号的影响。
基本工作原理:
采用IO口TRIG触发测距,给少10us的高电平信呈;
模块自动发送8个40khz的方波,自动检测是否有信号返回;
有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声;
波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2;
图 超声波原理图
图 超声波实物图
有原理图可知,超声波的触发引脚和PB_9相连,回响信号与PB_8引脚相连。回响信号是超声波发出波与接收到回波的时间。
【实验步骤】
完成第3章节"RealView MDK4.22a集成开发环境",就可以做传感器实验了,首先打开光盘中的传感器工程文件。
右键解压程序源码 v1.rar, 选择解压到当前文件夹。
工程源码路径:华清远见-网络拓扑图资料光盘\无线传感模块\低功耗Wi-Fi部分-STM32F051\程序源码\STM23F051 超声波测距传感器(OK)\MDK-ARM
编译下载超声波程序(先编译后下载)
如果需要调试的话,应先下载程序,再点击右上方的调试按钮进入调试界面。
超声波模块连接
上图连接说明,AP模式的Wi-Fi是通过串口直接和PC机相连接。串口Wi-Fi接收到数据,以串口的形式输出到PC的串口调试助手上显示。
【实验结果】
利用串口调试工具做实验,打开串口调试工具,波特率115200、串口号(你的电脑的端口号)、点击打开。 接收到的数据如下,
可以通过串口发送21 57 04 00 53 00 02 C0 00 00 38 FA控制继电器的开。
21 51: 为字符'!W'
04 00 :设备地址 注意:04为低八位地址,00为高八位地址
53 :设备类型 'S' ,是超声波传感器
00 02 C0: 采集到的超声波与障碍之间的距离(单位:mm)。02 为高八位,C0 第八位。转成十进制704 mm
38:当前电池电量
FA :校验和。
【实验参考代码】
Main.c函数
COBOL Code
int main(void)
{
uint8_t Send_buf[11]={0};
uint8_t result = 0,i;
uint8_t flag = 0;
uint32_t distance;
SystemInit(); //系统时钟初始化
/* Configure LED6 */
STM_EVAL_LEDInit(LED6);
Systick_Init(); //滴答定时初始化
GPIO_Configuration_Init();
USART_Cfig_Init(); //串口初始化
NVIC_Configuration();
SR04_Config();
USART_RX_IntteruptEnable(COM1); //USART1 接收中断使能
USART_RX_IntteruptEnable(COM2); //USART2 接收中断使能
//初始化定时器
TIM_INT_Config();
//初始化中断
// STM_EVAL_PBInit(BUTTON_USER, BUTTON_MODE_EXTI);
Send_buf[0] = 0x21;
Send_buf[1] = 'W';
Send_buf[2] = 0x04; //地址 低字节
Send_buf[3] = 0x00; //地址 高字节
Send_buf[4] = 'S';
while(1)
{
STM_EVAL_LEDOn(LED6);
distance = Sensor_using();
Send_buf[6] = distance >> 8;
Send_buf[7] = distance;
for(i=0;i<(11-2);i++)
{
result ^= Send_buf[i+1];
}
Send_buf[10] = result; //存储校验结果
UART_Send(USART2,Send_buf,11);
result = 0;
STM_EVAL_LEDOff(LED6);
printf("distance :%d\n",distance);
Delay(1000);
}
}
采集回响时间并转换成距离(单位mm)
COBOL Code
/*返回值 单位 毫米*/
uint32_t Sensor_using(void)
{
uint32_t distanceval =0;
uint16_t TIM=0,TIMS=0;
uint8_t i,j=0;
// for(i=0;i<5;i++)
// {
GPIO_SetBits(GPIOB,GPIO_Pin_9); //输出10us以上触发
delay_us(100);
GPIO_ResetBits(GPIOB,GPIO_Pin_9);
TIM_SetCounter(TIM2,0);
while(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8)&& overflow==0); //检测到高电平
TIM_Cmd(TIM2, ENABLE); //开启定时器
while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8) && overflow==0); //检测到低电平
TIM_Cmd(TIM2, DISABLE);
if(overflow!=0)
{
overflow=0;
return 0.0;
}
TIM = TIM_GetCounter(TIM2); //读取当前值
distanceval = ((TIM *340)/2/10) - 50; //50 误差数值
//printf("\r\ndistance:%x mm\r\n",distanceval);
return(distanceval);
}
Copyright © 2004-2024 华清远见教育科技集团 版权所有
京ICP备16055225号-5,京公海网安备11010802025203号