标题:
基于stm32f103c8t6的智能台灯源码
[打印本页]
作者:
wulikanhua
时间:
2018-6-8 11:07
标题:
基于stm32f103c8t6的智能台灯源码
用到的模块:
红外遥控 、OLED 屏幕(iic)、ds1302时钟模块、超声波测距模块、dht11温湿度模块、录音模块、MP3模块、蜂鸣器、LED灯、BH1750光强模块。
功能:红外遥控通过pwm波控制LED灯的不同的亮度,外加光强模块调节亮度,OLED 屏幕显示时间、温湿度、可以设置起床闹钟,超声波测距测量离灯的距离,具有防近视的功能,有语音提示注意保持坐姿,可以通过录音模块自己录制,还增加了MP3播放功能等。
具体代码在压缩包中,这里只提供了主函数的程序。
Keil代码下载:
智能台灯.rar
(327.9 KB, 下载次数: 326)
2018-6-9 03:32 上传
点击文件名下载附件
下载积分: 黑币 -5
stm32单片机源码:
#include "stm32f10x.h"
#include "gpio.h"
#include "systick.h"
#include "dh11.h"
#include "iic_BH1750.h"
#include "iic.h"
#include "USART.H"
#include "timer3_pwm.h"
#include "timer.h"
#include "timer2.h"
#include "remote.h"
#include "OLED_I2C.h"
#include "wave.h"
#include "RTC.h"
u8 key_date = 0;
int main()
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
timer_config();
timertwo_confing();
LED_EXTI_cfg();
LED_NVIC_cfg();
timer3_pwm_config(); //调节灯的亮度 PA6
I2C_Configuration(); //iic的配置 PB6 -- SCL; PB7 -- SDA
OLED_Init(); //显示屏的初始化
Remote_Init(); //红外接收初始化
LED_config(); //灯的初始化 灯PB0 人体红外PB1
DHT11_Init(); //温湿度的初始化 PA11温湿度传感器
DS1302_config(); //时钟模块的配置 CLK/SCK PB0 DAT/IO PA1 RST PA7
IIC_Init(); //iic初始化 GPIOB14(SCL),GPIOB15(SDA)
OLED_CLS(); //清屏
wave_config(); // 超声波的配置 tring(控制端) PA4 echo(接收端) PA5 录音模块 P-L PB5 P-E PB8
ds1302_init();//DS1302初始化
ds1302_write_time(); //写入初始值
while(1)
{
BH1750_TX();//光强
DHT11_TX();//温湿度
delay_ms(500);
OLED_CLS();
DS1302_TX();//时间 日期 DAT需要上拉电阻
delay_ms(500);
OLED_CLS();
// alarm_set(); //闹钟 8:00 PB11
LED_On_Off();//红外控制等的开关 LED PA6 红外 PB1
key_date = Remote_Scan(); //返回按键值
if(key_date == 0xa2)
{
GPIO_SetBits(GPIOB,GPIO_Pin_0); //灯亮 CH-
}
else if(key_date == 0x62)
GPIO_ResetBits(GPIOB,GPIO_Pin_0); //灯灭 CH
// 灯的亮度调节
else if(key_date == 0x30) // 1
set_pwm(200);
else if(key_date == 0x18) // 2
set_pwm(600);
else if(key_date == 0x7a) // 3
set_pwm(1000);
else if(key_date == 0x10) // 4
set_pwm(1400);
else if(key_date == 0x38) // 5
set_pwm(1800);
else if(key_date == 0x5a) // 6
set_pwm(1999);
else if(key_date == 0x68) // 0
set_pwm(0);
if(key_date == 0xe2) //mp3的开关 CH+
GPIO_SetBits(GPIOB,GPIO_Pin_10);
if(key_date == 0xc2)
GPIO_ResetBits(GPIOB,GPIO_Pin_10);
if(key_date == 0x90) //关闭闹钟
GPIO_ResetBits(GPIOB,GPIO_Pin_11);
Wave_StarMeasure(); //测距
Wave_distance();
}
}
复制代码
作者:
w1554980424
时间:
2018-6-19 19:56
怎么用啊
作者:
w1554980424
时间:
2018-6-19 19:57
怎么使用啊,我怎么打不开
作者:
qqhuacong
时间:
2018-7-22 20:54
还没有试验 可以控制风扇吧
作者:
1251144
时间:
2018-10-18 21:43
有电路图吗 楼主
作者:
1251144
时间:
2018-10-18 21:45
楼主 能分享一下智能台灯的原理图吗
作者:
jingboxu
时间:
2018-10-22 09:47
看起来好厉害的样子,下来学习学习
作者:
may-DAY
时间:
2018-11-18 15:07
请问有原理图吗?
作者:
mythboy
时间:
2019-1-8 12:36
不错 看看~
作者:
1078403
时间:
2019-3-23 16:34
同问有原理图吗?求
作者:
zs33521
时间:
2019-3-24 22:00
学习学习
作者:
阿瑟东a
时间:
2019-7-23 16:16
顶起,蛮好用的
作者:
laylalala
时间:
2020-2-1 20:05
可以看成品的视频吗?
作者:
sssqqqeee
时间:
2023-6-8 23:20
有PCB文件吗?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1