完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
超声波传感器HC-SR04测距实例
最近刚学了点32的知识,找了个超声波传感器练习一下,这是我的一点学习经验,和大家分享一下,如有不足希望各位大佬多多指导。 软件 STM32CubeMX,keil5,野火串口调试助手 硬件 stm32f103vet6开发板,J-Link,超声波传感器HC-SR04 原理 HC-SR04超声波模块工作原理 (1)采用IO口触发测距,给至少10us高电平脉冲; (2)模块内自动发送八个40khz方波,并自主检测是否有电波返回; (3)当有信号返回时,通过IO口输出一个高电平,高电平的持续时间就是超声波从发送到返回的时间; (4)测距公式:距离=(高电平时间*声速)/2; 我自己的理解:本模块使用时,给Trig一个10US以上的高电平,模块开始工作,模块内自动发送八个40khz方波,并自主检测是否有电波返回。这是我们需要检测Echo处的电平,当为高电平的时候记一个时间;当Echo出为低电平的时候在记一个时间,这两个时间的差就是高电平持续的时间,然后用测距公式进行计算。 步骤 1,设置RCC和SYS 2,设置Trig输出引脚,Echo输入引脚以及LED灯 3,设置TIM2和USART1 4,设置时钟树,项目名称以及其他设置 不同板子的时钟树设置不同,自己去查资料。 5,生成代码,并打开keil5 6,编写代码 让LED灯快速亮灭三次----表示代码已下载到板子中,并开始运行 /* USER CODE BEGIN 2 */ int i=0; while(i《7) { HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin); HAL_Delay(400); i=i+1; } /* USER CODE END 2 */ 按照原理,编写while函数体里面的代码。(第一个while是当有信号返回时,如果满足条件,就会卡在这里,当不满足条件时,开始往下走,记一个时间,然后会卡在另一个while处,当条件不成立了再继续往下走,在记一个时间。两个while可以理解为条件延时。) /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ HAL_TIM_Base_Start_IT(&htim2); htim2.Instance-》CNT = 0; float t1,t2,distance; HAL_GPIO_WritePin(Trig_GPIO_Port,Trig_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(Trig_GPIO_Port,Trig_Pin,GPIO_PIN_SET); HAL_Delay(1); HAL_GPIO_WritePin(Trig_GPIO_Port,Trig_Pin,GPIO_PIN_RESET); while(HAL_GPIO_ReadPin(Echo_GPIO_Port,Echo_Pin) == GPIO_PIN_RESET) t1=htim2.Instance-》CNT; while(HAL_GPIO_ReadPin(Echo_GPIO_Port,Echo_Pin) == GPIO_PIN_SET) t2=htim2.Instance-》CNT; htim2.Instance-》CNT = 0; distance=(t2-t1)*17/(float)1000; printf(“The distance is %0.1fcmn”,(float)distance); HAL_GPIO_WritePin(Trig_GPIO_Port,Trig_Pin,GPIO_PIN_RESET); HAL_Delay(500); } /* USER CODE END 3 */ 7,编译,下载代码,打开串口调试助手并且运行代码 在编译前,点击魔术棒选项卡,确认J-Link仿真器已连接好以及其他设置也是正确的。 8,用传感器测距离 有些人的printf无法使用,点击这里[printf无法使用的解决方法。 |
|
|
|
只有小组成员才能发言,加入小组>>
4508个成员聚集在这个小组
加入小组3334 浏览 0 评论
航顺(HK)联合电子发烧友推出“近距离体验高性能Cortex-M3,免费申请价值288元评估板
4262 浏览 1 评论
4289 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 11:15 , Processed in 0.752279 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号