本帖最后由 aqa 于 2019-6-21 11:15 编辑
基于STM32F407VGT6的红外测距
用到的模块:红外测距(DHT11),RGB彩灯
描述:通过红外测距采集信息,RGB彩灯的颜色及亮度说明了距离的大小,具体数字可以在串口助手显示打印出来
- <font style="background-color: rgb(255, 255, 255);">/*
- 函数功能:超声波测距,用RGB灯的颜色来表示距离的大小
- 函数参数:无
- 函数返回值:无
- 设计者:彭XX
- 修改者:彭XX
- 设计时间:2019/6/18
- 修改时间:2019/6/18
- 备注:
- */
- int main(void)
- {
- float data;
-
- //把红外侧距都注释即单独的RGB彩灯
- //tim5_ch2_pwm(255,0);//R
- //tim5_ch3_pwm(255,0);//G
- //tim5_ch4_pwm(255,255);//B
- usart1_init(115200);
- tim13_ch1_pwm(1000,400);
- tim14_ch1_capture(1000);
-
- while(1)
- {
- tim13_ch1_pwm(10000,high);//R
- data = (float)high/58;
- printf("date=%f cm\r\n",(float)high/58);//在串口助手打印出来
- //printf("date=%f mm\r\n",(float)high*340/20);
- printf("low=%dus\r\n",low);//低电平时间
- printf("high=%dus\r\n",high);//高电平时间
- printf("***************************\r\n");
- if(data>=2 && data <100)
- {
- tim5_ch2_pwm(255,data*2 );//R
- tim5_ch3_pwm(255,0);//G
- tim5_ch4_pwm(255,0);//B
- }
- else if(data >=100 && data <200)
- {
- tim5_ch2_pwm(255,0);//R
- tim5_ch3_pwm(255,data-100);//G
- tim5_ch4_pwm(255,0);//B
- }
- else if(data >= 200)
- {
- tim5_ch2_pwm(255,0);//R
- tim5_ch3_pwm(255,0);//G
- tim5_ch4_pwm(255,data-200);//B
- }
- tim6_delay_ms(10);
- }
- }</font>
以上是部分程序,由于篇幅过长,有需要的电友可以点击链接下载所有工程资料,工程基于keil5
|