|
用到的模塊:
紅外遙控 、OLED 屏幕(iic)、ds1302時(shí)鐘模塊、超聲波測(cè)距模塊、dht11溫濕度模塊、錄音模塊、MP3模塊、蜂鳴器、LED燈、BH1750光強(qiáng)模塊。
功能:紅外遙控通過pwm波控制LED燈的不同的亮度,外加光強(qiáng)模塊調(diào)節(jié)亮度,OLED 屏幕顯示時(shí)間、溫濕度、可以設(shè)置起床鬧鐘,超聲波測(cè)距測(cè)量離燈的距離,具有防近視的功能,有語音提示注意保持坐姿,可以通過錄音模塊自己錄制,還增加了MP3播放功能等。
具體代碼在壓縮包中,這里只提供了主函數(shù)的程序。
Keil代碼下載:
智能臺(tái)燈.rar
(327.9 KB, 下載次數(shù): 326)
2018-6-9 03:32 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
stm32單片機(jī)源碼:
- #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(); //調(diào)節(jié)燈的亮度 PA6
- I2C_Configuration(); //iic的配置 PB6 -- SCL; PB7 -- SDA
- OLED_Init(); //顯示屏的初始化
- Remote_Init(); //紅外接收初始化
- LED_config(); //燈的初始化 燈PB0 人體紅外PB1
- DHT11_Init(); //溫濕度的初始化 PA11溫濕度傳感器
- DS1302_config(); //時(shí)鐘模塊的配置 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();//光強(qiáng)
- DHT11_TX();//溫濕度
- delay_ms(500);
- OLED_CLS();
- DS1302_TX();//時(shí)間 日期 DAT需要上拉電阻
- delay_ms(500);
- OLED_CLS();
- // alarm_set(); //鬧鐘 8:00 PB11
- LED_On_Off();//紅外控制等的開關(guān) 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
- // 燈的亮度調(diào)節(jié)
- 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的開關(guān) CH+
- GPIO_SetBits(GPIOB,GPIO_Pin_10);
- if(key_date == 0xc2)
- GPIO_ResetBits(GPIOB,GPIO_Pin_10);
-
- if(key_date == 0x90) //關(guān)閉鬧鐘
-
- GPIO_ResetBits(GPIOB,GPIO_Pin_11);
-
- Wave_StarMeasure(); //測(cè)距
- Wave_distance();
- }
- }
復(fù)制代碼
|
評(píng)分
-
查看全部評(píng)分
|