风湿热什么病

注册

 

发新话题 回复该主题

使用红外传感器的自动洗手间灯 [复制链接]

1#
北京看白癜风哪家好 https://wapyyk.39.net/hospital/89ac7_knowledges.html

这个基于ArduinoUno和IR传感器的项目用于自动打开和关闭洗手间灯。每当有人进入洗手间时,灯就会自动打开。当人离开浴室时,灯就关闭。这将节省使用洗手间后由于误开灯而产生的电费。

电路和工作

自动洗手间灯的电路图如下图所示。它使用ArduinoUno(Borad1)、BC晶体管(T1)、红外(IR)传感器模块(Module1和Module2)和继电器(RL1)构建。

红外线传感器

此处使用的IR传感器(FC-51),通常用于障碍物检测。两对红外传感器模块用于检测人员进出洗手间。

每个传感器都有三个引脚,即Vcc、Vout和GND。Vcc引脚接入5V直流电源,可从ArduinoUno的5V引脚获取。传感器的接地引脚(GND)可以连接到ArduinoUno的GND引脚。IRModule1和IRModule2的Vout引脚分别连接到ArduinoUno的8和7引脚。

5V继电器

5V机械继电器(RL1)用于打开和关闭灯。典型的方糖型5V继电器有五个端子,其中两个用于给线圈通电。其余为公共端(COM)、常闭(NC)和常开(NO)端子。

把灯连接在继电器的NO和COM触点上。很明显,在正常情况下,NO引脚与COM引脚没有任何接触。当继电器线圈通电时,COM引脚和NO引脚导通,灯泡获得V交流电源。继电器的引脚细节如下图所示。

V交流电源的火线(L)通过继电器连接到灯泡。零线(N)直接连接到灯泡。

当“in”传感器(Module2)先检测到人体,然后是“out”传感器(Module1)时,Arduino控制器认为有人正在进入洗手间,并在Board1的引脚9处提供5V。而来自Arduino输出引脚的电流不足启动继电器。因此,使用npn晶体管T1(BC)放大电流控制继电器导通进而开灯。

当“out”传感器检测到有人,随后“进入”传感器也检测到时,控制器认为有人正在离开并在引脚9输出0V,从而使继电器断电。火线断开灯泡关闭。

软件

ArduinoUno用于计算两个红外传感器的逻辑。程序是用ArduinoIDE1.8.5编写、编译并上传。

在代码中,“voidsetup()”初始化引脚7和8作为输入,以及引脚9作为输出。voidshow()是用于串行通信的函数。“voidsetup()”如图下图所示。

“voidloop()”包含要执行的逻辑。首先检查“in”传感器是否有障碍物(人)。如果有任何障碍物,在此阶段,“out”传感器尚未检测到障碍物,则执行while循环,等待“out”传感器感应结果。

当人挡住“out”传感器时,传感器的输出为低电平,则程序退出while循环,说明有人进入,进入人数递增1。

反之亦然,否则为elseif部分,人物出去计数值递减。Show()函数用于串口监视器,实际应用中不需要。

我反而觉得它比较适用于商店,用于和顾客打招呼,因为在公共洗手间计数,不会准确,因为同时进出的人可能有多个,也不能时亮时灭。但是它的用途不一定只用在控制卫生间的灯,还可以用于计数,检测物体移动方向,并做出响应。

分享 转发
TOP
发新话题 回复该主题