位置: IT常识 - 正文

基于51单片机的智能台灯设计(基于51单片机的电子秤设计)

编辑:rootadmin
基于51单片机的智能台灯设计 一.硬件方案

推荐整理分享基于51单片机的智能台灯设计(基于51单片机的电子秤设计),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:基于51单片机的电子密码锁,基于51单片机的温湿度检测设计,基于51单片机的数字频率计设计,基于51单片机的毕业设计,基于51单片机的温湿度检测设计,基于51单片机的电子琴设计,基于51单片机的智能台灯设计论文,基于51单片机的电子时钟设计,内容如对您有帮助,希望把文章链接给更多的朋友!

        本文介绍了一种基于PWM调光的智能台灯设计。把单片机技术和PWM调光技术结合起来实现台灯光强的调节。即在不改变PWM方波周期的前提下,利用单片机控制PWM的占空比,从而来改变电压的大小实现灯光亮度的调节。         当人体在台灯的范围内且环境光线较弱时,自动感应开灯,且灯的亮度随着环境光线的改变而自动调节,一旦人离开台灯范围,即红外热释传感器检测不到有人时,1分钟后自动熄灯。    主要由51单片机+光线检测雾传感+ADC0832模数芯片+人体检测模块+按键+LED灯等;  

二.设计功能基于51单片机的智能台灯设计(基于51单片机的电子秤设计)

(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

本文链接地址:https://www.jiuchutong.com/zhishi/297686.html 转载请保留说明!

上一篇:Win11如何截屏保存?Win11截屏保存方法(win11的截屏)

下一篇:uniapp 实现app自动更新(uniapp示例)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络