[STM32F4] 基于STM32F407VGT6的红外测距,用RGB彩灯颜色显示距离。

[复制链接]
 楼主| aqa 发表于 2019-6-18 17:53 | 显示全部楼层 |阅读模式
本帖最后由 aqa 于 2019-6-21 11:15 编辑

基于STM32F407VGT6的红外测距

用到的模块:红外测距(DHT11),RGB彩灯
描述:通过红外测距采集信息,RGB彩灯的颜色及亮度说明了距离的大小,具体数字可以在串口助手显示打印出来

  1. <font style="background-color: rgb(255, 255, 255);">/*
  2. 函数功能:超声波测距,用RGB灯的颜色来表示距离的大小
  3. 函数参数:无
  4. 函数返回值:无
  5. 设计者:彭XX
  6. 修改者:彭XX
  7. 设计时间:2019/6/18
  8. 修改时间:2019/6/18
  9. 备注:
  10. */
  11. int main(void)
  12. {
  13.     float data;
  14.    
  15.     //把红外侧距都注释即单独的RGB彩灯
  16.     //tim5_ch2_pwm(255,0);//R
  17.     //tim5_ch3_pwm(255,0);//G
  18.     //tim5_ch4_pwm(255,255);//B
  19. usart1_init(115200);
  20. tim13_ch1_pwm(1000,400);
  21.     tim14_ch1_capture(1000);
  22.    
  23. while(1)
  24. {
  25.         tim13_ch1_pwm(10000,high);//R
  26.         data = (float)high/58;
  27.         printf("date=%f cm\r\n",(float)high/58);//在串口助手打印出来
  28.         //printf("date=%f mm\r\n",(float)high*340/20);
  29.         printf("low=%dus\r\n",low);//低电平时间
  30.   printf("high=%dus\r\n",high);//高电平时间
  31.   printf("***************************\r\n");
  32.            if(data>=2 && data <100)
  33.             {
  34.                 tim5_ch2_pwm(255,data*2 );//R
  35.                 tim5_ch3_pwm(255,0);//G
  36.                 tim5_ch4_pwm(255,0);//B
  37.             }
  38.             else if(data >=100 && data <200)
  39.             {
  40.                 tim5_ch2_pwm(255,0);//R
  41.                 tim5_ch3_pwm(255,data-100);//G
  42.                 tim5_ch4_pwm(255,0);//B
  43.             }
  44.             else if(data >= 200)
  45.             {   
  46.                 tim5_ch2_pwm(255,0);//R
  47.                 tim5_ch3_pwm(255,0);//G
  48.                 tim5_ch4_pwm(255,data-200);//B
  49.             }
  50.   tim6_delay_ms(10);
  51.      }
  52. }</font>


以上是部分程序,由于篇幅过长,有需要的电友可以点击链接下载所有工程资料,工程基于keil5





红外(RGB)测距.zip

1.23 MB, 下载次数: 34

模块手册.zip

1.55 MB, 下载次数: 13

mmuuss586 发表于 2019-6-29 22:12 | 显示全部楼层
不错,感谢分享
wakayi 发表于 2019-7-9 11:07 | 显示全部楼层
非常感谢楼主分享
wangjiahao88 发表于 2019-7-9 14:48 | 显示全部楼层
RGB需要三根线。而且是三根PWM控制占空比完成的精度。。。你可以不可以利用 一片IIC-PWM的芯片?或者使用一个W2812之类的单总线去搞?
 楼主| aqa 发表于 2019-7-25 18:41 | 显示全部楼层
wangjiahao88 发表于 2019-7-9 14:48
RGB需要三根线。而且是三根PWM控制占空比完成的精度。。。你可以不可以利用 一片IIC-PWM的芯片?或者使用一 ...

我只是学习的时候玩的这个模块,如果具体要用的话用一个驱动芯片会更好
您需要登录后才可以回帖 登录 | 注册

本版积分规则

aqa

3

主题

26

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部