276-基于stm32单片机多功能书桌智能台灯控制系统(程序+原理图+元器件清单)
·
一:功能介绍
1、实物组成部分:采用stm32f103c8t6核心板+超声波传感器+DHT11温湿度+光敏传感器+蜂鸣器+继电器风扇+OLED显示屏+独立按键;
2、采用DHT11传感器采集温湿度,OLED显示温湿度;
3、采用光敏传感器采集当前光照强度,OLED显示光照强度;
4、采用超声波传感器采集人与书桌之间距离,OLED显示距离;
5、自动模式下,光照越弱,台灯越亮,手动模式下,可以通过按键调节台灯亮度;
6、当温度大于设置阈值或者湿度大于设置阈值,风扇自动打开进行降温排气;
7、当检测距离小于设置阈值,蜂鸣器进行报警提醒(防近视);
8、可以通过按键进行定时,定时时间到达蜂鸣器进行提醒(防止久坐);
二:实物演示视频
276-基于stm32单片机多功能书桌智能台灯控制系统(程序+原理图+元器件清单)
三:程序代码预览(采用keil5编写,使用的C语言,程序有中文注释,新手容易看懂)
特别注意:下载资料包以后一定要先解压! !!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。

int main(){u16 adcx;int gz,buf=0,liangdu=0,time=0,t=0,buf1=0;TIMER2_init(999,71);SysTick_Init(72);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中断优先级分组 分2组USART1_Init(9600);LED_Init();DHT11_Init ();Adc_Init();Ultrasonic_init();delay_ms(100);KEY_Init();beep=Q=1;OLED_Init();OLED_ShowString(0,0,"TEMP:",16,1); OLED_ShowString(80,0,"C",16,1);OLED_ShowString(0,16,"HUMI:",16,1); OLED_ShowString(80,16,"%",16,1);OLED_ShowString(0,32,"JULI:",16,1); OLED_ShowString(80,32,"CM",16,1);OLED_ShowString(0,48," LUX:",16,1); OLED_ShowString(80,48,"LUX",16,1);OLED_Refresh();TIM1_PWM_Init();while(1){if(K1==0)//自动/手动{buf++;if(buf>1) buf=0;while(K1!=0);}if(buf==0)//自动{pwm_led_out_test((100-gz)/18);OLED_ShowString(110,48,"zd",16,1);}if(buf==1)//手动{if(K2==0){liangdu++;if(liangdu>5) liangdu=0;}pwm_led_out_test(liangdu);OLED_ShowString(110,48,"sd",16,1);}if(K3==0){time=time+1;if(time>300) time=0;buf1=1;}if(buf1==1){t++;if(t/60>time){buf1=0;beep=0;delay_ms(300);beep=1;delay_ms(300);beep=0;delay_ms(300);beep=1;delay_ms(300);beep=0;delay_ms(300);beep=1;delay_ms(300);beep=0;delay_ms(300);beep=1;delay_ms(300);beep=0;delay_ms(300);beep=1;delay_ms(300);beep=0;delay_ms(300);beep=1;delay_ms(300);beep=0;delay_ms(300);beep=1;delay_ms(300);beep=0;delay_ms(300);beep=1;delay_ms(300);beep=0;delay_ms(300);beep=1;delay_ms(300);beep=0;delay_ms(300);beep=1;delay_ms(300);}}adcx=Get_Adc_Average(ADC_Channel_0,10);gz=(330-(float)adcx/4096*330)/3.3;if(gz<0) gz=0;DHT11_Read_TempAndHumidity ( & DHT11_Data );oled_Ultrasonic();OLED_ShowNum(50,0,DHT11_Data .temp_int,2,16,1);OLED_ShowNum(50,16,DHT11_Data.humi_int,2,16,1);OLED_ShowNum(50,32,length_num,3,16,1);OLED_ShowNum(50,48,gz,3,16,1);OLED_ShowNum(105,0,time,3,16,1); // OLED_ShowNum(100,16,t,5,16,1);OLED_Refresh();beep=1;if(length_num<30) beep=0;if(DHT11_Data .temp_int>30||DHT11_Data.humi_int>70) Q=0;else Q=1;}}
四:原理图展示(源文件采用Altium Designer打开,公众号有安装包)


五:实物图展示


六:元器件清单展示

7:资料清单展示(文件中包含的相关资料)

更多推荐

所有评论(0)