欢迎光临散文网 会员登陆 & 注册

基于51单片机的智能台灯

2023-03-12 22:18 作者:QQQTXx  | 我要投稿

以下是基于51单片机的智能台灯代码,能够检测台灯旁边有无人并进行相应自动开关、通过红外光电能够检测他们在学习时由于身体靠桌面比较近,造成身体坐姿不正,台灯就会报警提示等功能,仅供参考:

#include <reg51.h>

#define uchar unsigned char

#define uint unsigned int

sbit LDR = P3^2; // 光敏电阻连接的引脚P3.2

sbit LED = P1^0; // LED灯连接的引脚P1.0


sbit PIR = P3^3; // 人体红外检测连接的引脚P3.3

sbit buzzer = P1^1; // 蜂鸣器连接的引脚P1.1


void delay_ms(uint xms)

{

    uint i,j;

    for(i=xms;i>0;i--)

    {

        for(j=110;j>0;j--);

    }

}


void main()

{

    uchar i;

    while(1)

    {

        i = LDR; // 读取光敏电阻的值

        if(i == 0) // 昏暗状态,LED灯亮度为50%

        {

            if(PIR == 1) // 检测到人体近距离,开灯

            {

                LED = 0; // LED灯亮

            }

            else // 没有检测到人体近距离,关灯

            {

                LED = 1; // LED灯灭

            }

        }

        else // 明亮状态,LED灯亮度为100%

        {

            LED = 0; // LED灯亮

        }

        if(PIR == 1 && LDR == 0) // 检测到人体近距离和昏暗状态,报警提示

        {

            buzzer = 0; // 蜂鸣器响

            delay_ms(500); // 延时500ms

            buzzer = 1; // 蜂鸣器停止

            delay_ms(500); // 延时500ms

        }

    }

}


上述代码实现了通过热释电红外传感器检测旁边是否有人,并控制LED灯的开关。如果检测到旁边没有人在,则自动关闭台灯,以达到节省电能的目的。如果检测到人体在昏暗状态下靠近,则打开灯光。如果检测到人体在昏暗状态下靠近,则蜂鸣器会提示用户纠正坐姿,防止眼睛近视。如果需要更多控制功能,可以根据实际需求进行修改。

基于51单片机的智能台灯的评论 (共 条)

分享到微博请遵守国家法律