多语言展示
当前在线:615今日阅读:126今日分享:42

STM32驱动超声波传感器HC-SR04

HC-SR04 是最常见的用于单片机的超声波测距模块。超声波传感器主要利用多普勒原理,通过晶振向外发射超过人体能感知的高频超声波,一般典型的选用25~40kHz波,然后控制模块检测反射回来波的频率,如果区域内有物体运动,反射波频率就会有轻微的波动,即多普勒效应,以此来判断照明区域的物体移动,从而达到控制开关的目的。本文描述了如何使用Gokit STM32来驱动它。
工具/原料
1

PC一台

2

HC-SR

3

Gokit STM32

方法/步骤
1

使用STM32CubeMX配置PA0为输出,PA1为下拉输入,PA0连接Trig脚,PA1连接Echo脚。

2

开启定时器2,添加代码:if(HAL_TIM_Base_Start(&htim2)!=HAL_OK) { printf('Error!\r\n'); } HAL_GPIO_WritePin(Trig_GPIO_Port,Trig_Pin,GPIO_PIN_SET); HAL_Delay(1);//20us+¸ßµçƽ´¥·¢ÐźŠHAL_GPIO_WritePin(Trig_GPIO_Port,Trig_Pin,GPIO_PIN_RESET); while(!HAL_GPIO_ReadPin(Echo_GPIO_Port, Echo_Pin));//µÈ´ý»ØÓ¦Ïß±ä¸ß v1=htim2.Instance->CNT; while(HAL_GPIO_ReadPin(Echo_GPIO_Port, Echo_Pin));//µÈ´ý»ØÓ¦Ïß±äµÍ v2=htim2.Instance->CNT; htim2.Instance->CNT=0;//Çå0¼ÆÊýÆ÷ distance=(v2-v1)*17/(float)1000; printf('distance=%0.1f cm!\r\n',distance);

推荐信息