单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1923|回复: 10
打印 上一主题 下一主题
收起左侧

基于stm32f103c8t6的智能台灯源码

  [复制链接]
跳转到指定楼层
楼主
wulikanhua 发表于 2018-6-8 11:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用到的模块:
        红外遥控 、OLED 屏幕(iic)、ds1302时钟模块、超声波测距模块、dht11温湿度模块、录音模块、MP3模块、蜂鸣器、LED灯、BH1750光强模块。
功能:红外遥控通过pwm波控制LED灯的不同的亮度,外加光强模块调节亮度,OLED 屏幕显示时间、温湿度、可以设置起床闹钟,超声波测距测量离灯的距离,具有防近视的功能,有语音提示注意保持坐姿,可以通过录音模块自己录制,还增加了MP3播放功能等。


具体代码在压缩包中,这里只提供了主函数的程序。

全部资料51hei下载地址:
智能台灯.rar (327.9 KB, 下载次数: 109)

stm32单片机源码:
  1. #include "stm32f10x.h"
  2. #include "gpio.h"
  3. #include "systick.h"
  4. #include "dh11.h"
  5. #include "iic_BH1750.h"
  6. #include "iic.h"
  7. #include "USART.H"
  8. #include "timer3_pwm.h"
  9. #include "timer.h"
  10. #include "timer2.h"
  11. #include "remote.h"
  12. #include "OLED_I2C.h"
  13. #include "wave.h"
  14. #include "RTC.h"

  15. u8 key_date = 0;
  16. int main()
  17. {
  18.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
  19.         timer_config();
  20.         timertwo_confing();
  21.         LED_EXTI_cfg();
  22.         LED_NVIC_cfg();
  23.         timer3_pwm_config();    //调节灯的亮度  PA6
  24.         I2C_Configuration();   //iic的配置 PB6 -- SCL; PB7 -- SDA
  25.         OLED_Init();          //显示屏的初始化
  26.         Remote_Init();       //红外接收初始化
  27.         LED_config();       //灯的初始化                              灯PB0   人体红外PB1
  28.         DHT11_Init();      //温湿度的初始化                                PA11温湿度传感器
  29.         DS1302_config();  //时钟模块的配置    CLK/SCK PB0    DAT/IO PA1    RST PA7
  30.         IIC_Init();      //iic初始化       GPIOB14(SCL),GPIOB15(SDA)
  31.         OLED_CLS();     //清屏
  32.         wave_config(); // 超声波的配置   tring(控制端) PA4  echo(接收端) PA5  录音模块 P-L  PB5   P-E  PB8
  33.   ds1302_init();//DS1302初始化
  34.         ds1302_write_time(); //写入初始值
  35.         while(1)
  36.         {
  37.                         BH1750_TX();//光强
  38.                         DHT11_TX();//温湿度
  39.                         delay_ms(500);   
  40.                         OLED_CLS();
  41.                         DS1302_TX();//时间 日期    DAT需要上拉电阻
  42.                         delay_ms(500);
  43.                         OLED_CLS();
  44. //                         alarm_set();  //闹钟 8:00   PB11
  45.                         LED_On_Off();//红外控制等的开关   LED PA6 红外 PB1
  46.                         key_date = Remote_Scan();        //返回按键值
  47.                         if(key_date == 0xa2)
  48.                         {
  49.                                 GPIO_SetBits(GPIOB,GPIO_Pin_0);                //灯亮                CH-
  50.                         }
  51.                         else if(key_date == 0x62)
  52.                                 GPIO_ResetBits(GPIOB,GPIO_Pin_0);        //灯灭    CH
  53.                                 // 灯的亮度调节
  54.                         else if(key_date == 0x30)     //  1
  55.                                 set_pwm(200);
  56.                         else if(key_date == 0x18)     //  2
  57.                                 set_pwm(600);
  58.                         else if(key_date == 0x7a)     //  3
  59.                                 set_pwm(1000);
  60.                         else if(key_date == 0x10)     //  4
  61.                                 set_pwm(1400);
  62.                         else if(key_date == 0x38)     //  5
  63.                                 set_pwm(1800);
  64.                         else if(key_date == 0x5a)     //  6
  65.                                 set_pwm(1999);
  66.                         else if(key_date == 0x68)     //  0
  67.                                 set_pwm(0);
  68.                        
  69.                         if(key_date == 0xe2)                                //mp3的开关   CH+
  70.                                 GPIO_SetBits(GPIOB,GPIO_Pin_10);
  71.                         if(key_date == 0xc2)         
  72.                                 GPIO_ResetBits(GPIOB,GPIO_Pin_10);
  73.                        
  74.                         if(key_date == 0x90)                                //关闭闹钟
  75.                        
  76.                                 GPIO_ResetBits(GPIOB,GPIO_Pin_11);
  77.                        
  78.                                 Wave_StarMeasure(); //测距
  79.                                 Wave_distance();
  80.         }
  81. }



复制代码


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 转播转播 分享分享 分享淘帖 顶 踩
回复

使用道具 举报

沙发
w1554980424 发表于 2018-6-19 19:56 | 只看该作者
怎么用啊
回复

使用道具 举报

板凳
w1554980424 发表于 2018-6-19 19:57 | 只看该作者
怎么使用啊,我怎么打不开
回复

使用道具 举报

地板
qqhuacong 发表于 2018-7-22 20:54 | 只看该作者
还没有试验 可以控制风扇吧
回复

使用道具 举报

5#
1251144 发表于 2018-10-18 21:43 | 只看该作者
有电路图吗    楼主
回复

使用道具 举报

6#
1251144 发表于 2018-10-18 21:45 | 只看该作者
楼主  能分享一下智能台灯的原理图吗
回复

使用道具 举报

7#
jingboxu 发表于 2018-10-22 09:47 | 只看该作者
看起来好厉害的样子,下来学习学习
回复

使用道具 举报

8#
may-DAY 发表于 2018-11-18 15:07 | 只看该作者
请问有原理图吗?
回复

使用道具 举报

9#
mythboy 发表于 2019-1-8 12:36 | 只看该作者
不错 看看~
回复

使用道具 举报

10#
1078403 发表于 2019-3-23 16:34 | 只看该作者
同问有原理图吗?求
回复

使用道具 举报

11#
zs33521 发表于 2019-3-24 22:00 | 只看该作者
学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51hei电子论坛2群 联系QQ:125739409;技术交流QQ群219535678

Powered by 单片机教程网

快速回复 返回顶部 返回列表