基于stm32的智能臺燈設計
STM32F103C8T6,輸出PWM通過三極管開關控制高亮燈珠。
按鍵控制模式轉變,自動手動感應三種模式。
HTU21溫濕度采集。
光強度采集。
單片機源程序如下:
- #include "delay.h"
- #include "sys.h"
- #include "oled.h"
- #include "bmp.h"
- #include "SHT2x.h"
- #include "adc.h"
- #include "led.h"
- #include "key.h"
- #include "timer.h"
- u16 light,RT;
- float temp,humi;
- u16 DS18B20Temp;
- extern u8 mode_flag;
- int main(void)
- {
- delay_init(); //延時函數初始化
- NVIC_Configuration(); //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級 LED_Init();
- Adc1_Channe_Init();
- LED_Init();//LCED端口初始化
- KEY_Init();
- OLED_Init(); //初始化OLED
- OLED_StartShow();
- OLED_Clear();
- OLED_StaticShow();
- delay_ms(20);
- SHT2x_Init();
- TIM4_PWM_Init(1000,0);//PWM頻率80KHz
-
- TIM_SetCompare4(TIM4,1000);//初始化燈滅,1000為反相占空比
- while(1)
- {
-
- KEY_Scan_s();
- light=get_Adc_Value(ADC_Channel_1);
- light=light*10000/(409.6*17);
- temp= SHT2x_GetTempPoll();//獲取SHT20 溫度
- humi= SHT2x_GetHumiPoll();//獲取SHT20 濕度
-
- RT=get_Adc_Value(ADC_Channel_4);
- // light_on_off();
- OLED_ShowNum(36,4,temp,2,16);//顯示溫度值
- OLED_ShowNum(36,6,humi,2,16);//顯示濕度值
- OLED_ShowNum_point(32,2,light);
- // OLED_ShowNum(120,0,mode_flag,1,16);//顯示ASCII字符的碼值
- }
- }
復制代碼
所有資料51hei提供下載:
基于單片機的智能臺燈程序.7z
(214.6 KB, 下載次數: 74)
2019-4-11 20:26 上傳
點擊文件名下載附件
|