模拟走廊灯,根据声音和距离模拟走廊灯。
使用声音传感器来检测声音,使用超声波模块来测量距离(有效距离2cm~400cm),若检测到有声音且距离足够近,LED 灯就会被点亮。
关键词:STM32F407ZGT6,声控,超声波测距,感应灯
下面是部分代码:
- #include "stm32f4xx.h"
- #include "led.h"
- #include "systic.h"
- #include "usart.h"
- #include "sk_sr.h"
- #include "stdio.h"
- #include "HC.h"
- int main()
- {
- u8 data;//保存声音的数值 1/0
- float distance;//保存超声波检测到的距离
- int i;
- led_init(); //LED初始化
- delay_init(168);//168M
- usart1_init(9600);//波特率9600
- SK_SR_init();//声音初始化
- CH_SR04_Init(10000,72);//超声波初始化,计数10000,分频72
- while(1)
- {
- data = SK_SR_input();//接收声音值 //1有声,0无声
- distance=Senor_Using();//接收超声波检测到的距离值
- printf("data=%d,distance=%.1fcm\r\n",data,distance);
- //判断灯亮的条件:有声且距离范围为2cm~4m
- if(data == 1 && distance>=2 && distance<=400)
- {
- LED1=0;//灯亮30s
- for(i=0;i<30;i++)
- delay_ms(1000);
- }
- else
- {
- LED1=1; //灭LED1
- }
- }
- }
复制代码
全部代码51hei下载地址:
声控距离感应灯项目.7z
(346.9 KB, 下载次数: 43)
|