目录

一.元件清单

二.实现效果

三.主要内容

四.代码

五.总结


一.元件清单

AT89C51单片机、ADC0809、5V有源蜂鸣器、USB电源线DC电源插头、万用板、

红外接近传感器、红外遥控器、红外接收头、人体感应模块HC-SR501、三极管、LED等。

红外接近传感器

人体感应模块HC-SR501

5v有源蜂鸣器

红外接收头
​​​​

红外遥控器

二.实现效果

(1)手动调节台灯亮度;

(2)根据环境亮度调节亮度;

(3)人体感应调节台灯亮度;

(4)距离过近提醒坐姿不正;

(5)通过遥控进行模式选择以及控制灯的亮度;

三.主要内容

1.流程图:

2.主要内容

(1)  手动调节台灯亮度

按键控制电路采用独立式接法,利用单片机I/O口读取口的电平高低来判断是否有键按下。将常开按键的一端接地,另一端接一个I/O 口,程序开始时将此I/O口置于高电平,平时无键按下时I/O口保护高电平。当有键按下时,此I/O 口与地短路迫使I/O 口为低电平。按键释放后,单片机内部的上拉电阻使I/O口仍然保持高电平。

(2)  根据环境亮度调节亮度

对于台灯亮度的感应采用了光敏电阻,光敏传感器用于检测环境明暗程度,并能对环境变化迅速反应;利用光敏电阻的阻值随着亮度的改变而改变,电阻值的改变会改变光敏电阻上的电压值。这时,通过AD转换器采集电压,转换成相应的光强数据传输给单片机,由此来控制台灯亮度。

(3) 人体感应调节台灯亮度

人体感应电路采用了HC-SR501基于红外线技术的数字传感器。当传感器感应到人体时,传感器IO引脚输出高电平;当无人体时,传感器输出低电平。红外热释电传感器用于检测台灯周围是否有人员存在,当台灯所处环境较暗且周围有人时,台灯自动打开,并可根据环境明暗程度实时调节台灯亮度。

(4)  距离过近提醒坐姿不正

距离检测采用E18-D80NK数字型红外传感器,E18-D80NK是一种集发射与接收于一体的光电传感器,发射光经过调制后发出,接收头对反射光进行解调输出,有效的避免了可见光的干扰。正常状态是高电平输出,检测到目标是低电平输出;此传感器的功能为检测用户坐于台灯前的距离,可通过调节传感器的检测范围设定人体距离台灯的距离,距离过近时蜂鸣器用于报警提醒,达到坐姿规范的目的。

(5)  通过遥控进行模式选择以及控制灯的亮度

按键模块用于工作模式的切换,以及系统工作相关参数的设置。红外遥控的发射电路是采用红外发光二极管来发出经过调制的红外光波;红外接收电路由红外接收二极管、三极管或硅光电池组成,它们将红外发射器发射雕红外光转换为相应的电信号,再送后置放大器。

四.代码

//宏定义
#define uint unsigned int
#define uchar unsigned charuint X1=0;
uint X2;//头函数
#include <reg52.h>
#include <ADC0809.h>//时间计算
#define Imax 14000    //此处为晶振为11.0592时的取值,
#define Imin 8000    //如用其它频率的晶振时,
#define Inum1 1450    //要改变相应的取值。
#define Inum2 700
#define Inum3 3000
//解码变量
unsigned char Im[4]={0x00,0x00,0x00,0x00};
uchar show[2]={0,0};//全局变量
uchar f;
unsigned long m,Tc;
unsigned char IrOK;//LED灯光强度
uchar LL=0;
uint  YK=0;uint ZY=0,Xi=0,FZ=0;uchar Mode=1;//函数声明
void Init();
void delay(uchar i);//管脚声明
sbit LED = P1^4;
sbit LEDR= P2^2;
sbit LEDG= P2^4;
sbit LEDY= P2^6;
sbit set = P1^5;
sbit add = P1^6;
sbit dec = P1^7;//主函数
void main()
{//定时器初始化100HZInit();m=0;f=0;//模式1LEDR=1;LEDY=1;LEDG=1;delay(3);LEDR=0;LEDY=1;LEDG=1;//循环while(1){//读取亮度AD值LL=ADC0809();////亮度控制//光敏控制if(Mode==2){if(LL>50){X1=0;}else{if(LL-1>0xf0)LL=1;X1=1020-LL*20;}}//遥控器okelse if(Mode==1){X1=YK;ZY++;elseZY--;}if(ZY==400){FZ=1;     }if(ZY==0){{X1--;}    LED=1;X2=1000-X1;while(X2!=0){X2--;}///if(set==0){delay(20);if(set==0){Mode++;if(Mode==1){LEDR=1;LEDY=1;LEDG=1;delay(100);LEDR=0;LEDY=1;LEDG=1;}if(Mode==2){LEDR=1;LEDY=1;LEDG=1;delay(100);LEDR=1;LEDY=1;LEDG=0;}if(Mode==3){LEDR=1;LEDY=1;LEDG=1;delay(3);LEDR=1;LEDY=0;LEDG=1;}if(Mode==4){Mode=1;LEDR=1;LEDY=1;LEDG=1;delay(100);LEDR=0;LEDY=1;LEDG=1;}while(set==0);   }}if(add==0){delay(20);if(add==0){YK=YK+100;if(YK>1000){YK=0;}while(add==0);    }}if(dec==0){delay(20);if(dec==0){YK=YK-100;if(YK>1000){YK=0;}while(dec==0); }}if(IrOK==1) {//1键if(Im[2]==0x0c){LEDR=1;LEDY=1;LEDG=1;delay(100);LEDR=0;LEDY=1;LEDG=1;Mode=1;}//2键else if(Im[2]==0x18){LEDR=1;LEDY=1;LEDG=1;delay(100);LEDR=1;LEDY=1;LEDG=0;Mode=2;}//3键else if(Im[2]==0x5e){LEDR=1;LEDY=1;LEDG=1;delay(3);LEDR=1;LEDY=0;LEDG=1;Mode=3;}//+else if(Im[2]==0x40){YK=YK+100;if(YK>1000){YK=0;}}//-else if(Im[2]==0x19){YK=YK-100;if(YK>1000){YK=0;}}IrOK=0;     }}
}//定时器初始化
void Init(void)
{EA=1;//开启总中断IT1=1;//下降沿有效EX1=1;//外部中断1开TMOD=0x11;//定时器初始化  TH0=0;//T0赋初值TL0=0;TR0=0;//t0开始计时
}
//延时
void delay(uchar i)
{uchar j,k; for(j=i;j>0;j--)for(k=125;k>0;k--);
}
//外部中断解码程序_外部中断0
void intersvr1(void) interrupt 2 using 1
{LED=1;TR0=1;Tc=TH0*256+TL0;//提取中断时间间隔时长TH0=0; TL0=0;         //定时中断重新置零if((Tc>Imin)&&(Tc<Imax))
if(f==1){if(Tc>Inum1&&Tc<Inum3) {Im[m/8]=Im[m/8]>>1|0x80; m++; }if(Tc>Inum2&&Tc<Inum1) {Im[m/8]=Im[m/8]>>1; m++; //取码}if(m==32) {m=0;  f=0;if(Im[2]==~Im[3]) {IrOK=1;TR0=0; }else IrOK=0;   //取码完成后判断读码是否正确}//准备读下一码}
}

五.总结

随着人们对智能化的需求越来越高,电器的综合性越来越强,本项目设计的台灯兼容了多种功能,有效的满足了不同场景下的多种需求。可实现基本的通过按键控制,调节台灯亮度。台灯能够根据周围环境亮度自动调节自身亮度,一定程度上避免了能源浪费,使简易台灯最大程度上智能化。同时台灯具有人体感应功能,可通过感应人体控制灯的开关。为满足更多条件下的需求,项目添加了红外遥控器,可直接通过遥控器控制灯的模式及亮度,极大的方便了使用者。此外,台灯加入了坐姿矫正功能,可通过检测人与台灯的距离,提醒使用者坐姿规范。项目实现了生活基本所需的多种功能,具有极大的集成性,满足多种条件下的需要。

51单片机控制的自动感应调光、坐姿矫正智能台灯相关推荐

  1. (毕业设计资料)基于51单片机控制的自动浇水系统设计

    功能描述: 本次毕业设计是设计一种51单片机控制的自动浇水系统,实现室内盆花浇水的自动化系统.该系统可对土壤的湿度进行监控,并对作物进行适时适量的浇水.其核心是51单片机和土壤湿度检测器YL-69和显 ...

  2. 练手小项目:51单片机控制的智能台灯设计(自动感应调光) 电路图,测试图,源代码全技术资料

    功能及概述 本系统组成如图一所示,主要由三部分组成: 传感器及信号处理部分:检测人体辐射红外信号及光强信号经过处理后变成可处理的数字信号 以80C51组成的中央处理单元:处理信号并发出控制命令 提醒电 ...

  3. 81、基于STM32单片机智能台灯 PWM调光坐姿矫正 灯光控制定时台灯设计

    毕设帮助.开题指导.技术解答(有偿)见文末. 目录 摘要 一.硬件方案 二.设计功能 三.实物图 四.原理图 五.PCB图 六.硬件框图 七.流程图 八.程序源码 九.资料包括 摘要 随着社会在不断进 ...

  4. 单片机自动调光C语言,51单片机led灯渐变PWM调光(渐亮渐灭)C语言和汇编源程序

    PWM控制led灯渐亮渐灭程序 适用ME500开发系统 短接JP41-2选用8个LED灯 PWM-PulseWidthModulation(脉冲宽度调制) PWM足?种周期?走而高低电平的rV空比可以 ...

  5. pmw调光c语言程序,51单片机led灯渐变PWM调光(渐亮渐灭)C语言和汇编源程序

    ; PWM 控制 LED 灯渐亮渐灭程序 ; 适用 ME500 开发系统 ; 晶振为11.0592M ; 利用定时器控制产生占空比可变的 PWM 波 ; 按K1,PWM值增加,则占空比减小,LED 灯 ...

  6. 51单片机+直流电机PWM 10级调速控制

    51单片机+直流电机PWM 10级调速控制 Proteus仿真演示 示例程序代码 #include <STC89C5xRC.H> typedef unsigned char u8; typ ...

  7. 51单片机控制二相四线步进电机

    步进电机按定子上绕组来分,有二相.三相和五相等系列.最受欢迎的是两相混合式步进电机,约占97%以上的市场份额,其原因是性价比高,配上细分驱动器后效果良好.该种电机的基本步距角为1.8°/步,配上半步驱 ...

  8. 51单片机控制TB6600驱动器驱动42步进电机

    51单片机控制TB6600驱动器驱动42步进电机 第一次 功能实现目标 硬件简介 硬件连接 程序代码 第一次 以前总是看别人写的博客,通过别人的博客解决了我很多问题,从中也学到了各种知识,虽然不是很系 ...

  9. 详细介绍如何从零开始制作51单片机控制的智能小车(二)———超声波模块、漫反射光电管、4路红外传感器的介绍和使用

       我会通过本系列文章,详细介绍如何从零开始用51单片机去实现智能小车的控制,在本系列的上一篇文章中介绍了如何让小车动起来,本文作为本系列的第二篇文章,主要介绍让小车实现自动避障所涉及的一些传感器, ...

最新文章

  1. 前端——解决微信网页清除缓存的方法
  2. 重新想象 Windows 8 Store Apps (49) - 输入: 获取输入设备信息, 虚拟键盘, Tab 导航, Pointer, Tap, Drag, Drop...
  3. 成功解决UnicodeDecodeError: 'gbk' codec can't decode byte 0xab in position 28: illegal multibyte sequenc
  4. .jar中没有主清单属性_IDEA中spring boot helloword打包运行-0228-2020
  5. [ZJOI2010]网络扩容[网络流24题]
  6. 交叉编译及linux简单程序设计,嵌入式实验6交叉编译及Linux简单程序设计实验
  7. QT5开发及实例学习之十三Qt5文本编辑功能
  8. 无法显示添加端口对话框 服务器,服务器添加开放端口
  9. C++11 并发指南三(Lock 详解)(转载)
  10. PHP设计模式——代理模式
  11. 线性方程组迭代解法——雅可比(Jacobi)迭代法,Gauss-Seidel迭代法和超松弛(SOR)迭代法
  12. Centos7 FastDFS 安装和配置启动
  13. 五月康乃馨,爱心献父母---母亲节快乐
  14. input在vue中如何一次性上传多张图片_小程序图片上传,存储,获取,显示
  15. SQL审核 | 如何使用 SQLE 进行开发阶段 SQL审核
  16. Ardunio开发实例-雨滴传感器
  17. python实现BP神经网络
  18. ramda 函数 relation type
  19. iOS开发常用三方库、插件、知名博客等等
  20. 分块矩阵求逆(推导)

热门文章

  1. 瀑布流的3种实现方式
  2. 使用Jetpack Compose竟能做出如此漂亮的倒计时APP
  3. linux人员最爱用的键盘,Linux工作者必备-filco 87 忍者2代 黑色青轴
  4. 星辉信息科技教程-Centos上silk微信语音转换成mp3格式
  5. 统计学习导论之R语言应用(四):分类算法R语言代码实战
  6. Eclipse插件TPTP-程序Profile与分析工具详细教程
  7. ruoyi vue 其功能介绍
  8. lammps一对一课程学习大纲
  9. php利用七牛云的对象存储完成图片上传-高效管理图片(用php搭建一个自己的图床) nice!!!
  10. hdu 4598 Difference(奇圈判定+差分约束)