首页IT科技基于51单片机的智能台灯设计论文(基于51单片机的智能台灯设计)

基于51单片机的智能台灯设计论文(基于51单片机的智能台灯设计)

时间2025-06-20 16:11:29分类IT科技浏览4962
导读:一.硬件方案 本文介绍了一种基于PWM调光的智能台灯设计。把单片机技术和PWM调光技术结合起来实现台灯光强的调节。即在不改变PWM方波周期的前提下,利用单片机控制PWM的占空比,从而来改变电压的大小实现灯光亮度的调节。...

一.硬件方案

        本文介绍了一种基于PWM调光的智能台灯设计             。把单片机技术和PWM调光技术结合起来实现台灯光强的调节                    。即在不改变PWM方波周期的前提下             ,利用单片机控制PWM的占空比                   ,从而来改变电压的大小实现灯光亮度的调节      。

        当人体在台灯的范围内且环境光线较弱时       ,自动感应开灯       ,且灯的亮度随着环境光线的改变而自动调节                   ,一旦人离开台灯范围             ,即红外热释传感器检测不到有人时       ,1分钟后自动熄灯             。

   主要由51单片机+光线检测雾传感+ADC0832模数芯片+人体检测模块+按键+LED灯等;

 

二.设计功能

(1)上电之后                    ,绿色的 LED 灯点亮             ,代表当前是自动控制模式                    。

(2)通过按键 1,可以在手动模式(绿灯灭)和自动模式(绿灯亮)之间来回切换 .

(3)在手动模式下                    ,可以通过按键 2 降低亮度                    ,按键 3 增加亮度      。

(4)在自动模式下,首先要检测到有人             ,才进行亮度的自动控制                    ,否则台灯熄灭       。 可以挡住光敏电阻的光线       ,或用手电筒来照射光敏电阻             ,模拟光照的变化                   ,从而就可以 看到台灯的亮度会随着环境中的光照强度的改变而改变       ,效果是光照越弱       ,台灯越亮                    。 如果人体传感器 1 分钟检测不到有人                   ,台灯就会自动熄灭             。

(5)无论是自动模式还是手动模式             ,都是把亮度分为 10 个等级的       。

(6)人体感应检测功能只在自动模式下有效                    。

三.设计原理图

        (1)原理图如图:

(2)Protues仿真图及PCB图如下:

四.软件设计

        main函数源码

/*********************************************************/ // 主函数 /*********************************************************/ void main() {     uchar ret;          TimerInit();                     // 定时器初始化          LED=0;                                // 指示灯点亮(自动模式指示灯)     ret=Get_ADC0832();        // 获取AD采集结果(环境光照强度)     AutoControl(ret);            // 上电先进行一次自动亮度控制         AutoControl(ret+7);          while(1)     {         /* 模式切换控制 */         if(Key1==0)                    // 如果按键1被按下去         {             LED=~LED;                    // 切换LED灯状态             DelayMs(10);            // 延时消除按键按下的抖动             while(!Key1);            // 等待按键释放             DelayMs(10);            // 延时消除按键松开的抖动         }                      /* 亮度控制 */         if(LED==1)                            // 如果LED是灭的         {             ManualControl();            // 则进行手动控制         }         else                                        // 如果LED是亮的         {             if(gTime<60000)             {                 ret=Get_ADC0832();        // 获取AD采集结果(环境光照强度)                 AutoControl(ret);            // 进行自动控制                     DelayMs(200);             }         }                  /*检测是否有人*/         if(Module==1)         {             gTime=0;                                        // 检测到有人       ,则把60秒计时清零         }         if(gTime>60000)                                // 如果gTime的值超过了60000         {             gTime=60000;                                // 则把gTime的值重新赋值为60000                    ,避免过大溢出             gIndex=0;                                        // 如果1分钟检测不到有人             ,则把台灯熄灭         }     } }

资料链接:https://pan.baidu.com/s/1BMuQrXZPMYbdpq51VE11kg?pwd=d21e 

提取码:d21e

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
文心一词的出处(文心一言:中国版“ChatGPT”介绍与测评)