APP下载

基于Arduino的感光式电动窗帘系统研究

2022-09-14郑泽华宋文轩尧澜李墨涵吴雨桐吴炎贤

电子制作 2022年17期
关键词:窗帘光照电机

郑泽华,宋文轩,尧澜,李墨涵,吴雨桐,吴炎贤

(中国矿业大学(北京)机电与信息工程学院,北京,100083)

0 引言

随着人类在数字电子技术、模拟电子技术、嵌入式技术以及各种控制算法等方面取得的进步,使得各类智能家居产品相继问世。智能控制窗帘作为家居智能生活系统的结构之一,在智能家居系统中占据了很大一部分地位。对光感式电动窗帘系统的研究,旨在免去日常重复的开关窗帘操作,通过对夜晚、日间光照强度的检测,实现早晨和晚上窗帘的自动开关,并在日间光照过强时自动关闭窗帘,保持日间室内光照强度始终处于合理的范围,以此提升生活品质,同时也可以帮助行动不便的病人和老年人更加方便地使用窗帘。

1 系统机械传动部分

系统机械传动以及窗帘示意结构如图1所示,本系统采用百叶帘的收放结构。百叶帘的叶片两侧通过线绳串行连接,线绳末端固定在卷绳器的一侧,卷绳器内有一方型通孔,管状电机通过方型传动轴将旋转力矩传至卷绳器。以上各组件放置在“C”型不锈钢托架中。共同构成窗帘的机械传动部分,而后仅需控制电机的转动方向即可实现窗帘的收起和下落。

图1 百叶帘机械结构

2 系统控制部分设计

系统基于电动百叶帘产品,在其已经基本实现的直流电机传动控制百叶帘的基础上增加各模块,实现光强信息的获取并即时地判断是否超过预设临界值,对不同的光照强度区间执行对应的动作,使得窗帘完成自动地从感知到执行一系列控制。另外,为了增加实用性,还设计了红外遥控功能,并在算法中将红外遥控设为高优先级,接收到使用者的红外控制信号能够优先执行,此时不再采集判断光强信号,以便人工控制窗帘的收起与放下。

系统控制部分的总体实现思路如图2所示,核心电路模块作为主要的数据处理部分,以来自红外控制模块接收的红外信号为输入;而后在自动控制模式下,同时接收光强信号采集模块的信号输入,核心电路模块对接收的数据综合处理后输出控制信号至电机驱动模块的控制端。电机驱动模块中的控制端选通供电端到电机的通路,稳定的直流电压驱动直流电机的正转、反转,进而完成窗帘的收起或放下。

图2 系统控制部分

3 系统硬件设计

如图3所示,由BH1750FVI采集光强模拟信号,经过A/D转换后将数字信号以IIC总线通讯方式传输至Arduino Nano开发板,由VS1838B作为红外信号采集模块将接收的控制信息传输至开发板。开发板将控制信号传输至L298Nmini电机驱动模块。同时采用百叶帘产品配套的整流电路与CK1602M迷你直流降压电路为开发板与电机驱动电路提供5V直流电。

图3 系统硬件设计

■ 3.1 BH1750FVI光照采集模块

BH1750FVI是一款数字型光强度传感器集成芯片。支持PC Bus接口,可以用多种方式调试,便于软件设计;光谱灵敏度特性接近人视觉灵敏度,结合50Hz/60Hz除光噪音功能,采集的数据贴合人的真实体验,能够满足本系统检测太强的光照时放下窗帘的目的;而且内置模数转换,可以直接输出对应光照强度的数字值,并且可采集的输入光范围大,相当于1~65535lx。芯片内部设计了低功耗功能,实现低电流化,减小整个系统的耗能。其原理如图4所示,BH1750的内部由光敏二极管、运算放大器、ADC采集、晶振等组成。OSC作为芯片的时钟源为内部的振荡器提供内部逻辑时钟。光电二极管(PD)是由一个PN结组成的具有单方向导电特性的半导体器件,反向电压下光电二极管处于工作状态,在不同光线照射下,产生不同强度的光电流,能够将输入的光强信号转变成电信号,射入光窗的光照越强,产生的光电流越大,使得电阻两端电压越大。以此实现通过测量电压的大小就可以判断光照大小,但是电压和光强对应关系不是成正比的,所以这个芯片内部使用放大器(AMP)与一个电容先将转换的电压线性处理,处理后电压大小与光照强度呈线性关系,同时放大电压。数模转换器(ADC)采集处理后的电压,将电压强度信号转换成16位二进制数并将其存储在BH1750的寄存器中。模块引出I2C通讯所需的时钟输入线、双向数据传输线、地址线,核心电路与BH1750通过I2C协议进行通讯[1]。

图4 BH1750结构

■ 3.2 红外信号发射接收模块

红外发射模块使用NEC协议,38kHz的脉冲信号作为载波调制,为确保传输的稳定性地址和命令数据各8位传输两次。红外控制信号的接收模块是一体化红外接收头VS1838B,其内部结构图见图5。该接收头有红外线接收二极管、前置放大器、AGC放大器、限幅器、带通滤波器、积分整形电路、比较器组合以及必要的而成。红外接收模块中,红外信号被接收二极管接收到,而后通过其前置放大器进行放大;再经过AGC放大器,使较强的信号小幅放大,较弱的信号的用较高的增益放大,将前置放大器放大的信号调整置合适幅值;调整后的信号通过限幅放大器将其幅度限制在适当的电压范围间。带通滤波器对被限幅的信号滤波,滤波后信号经解调器和积分处理后通过比较器输出数字信号,这样就解调出红外遥控器的消息信号。将发射信号通过OUT引脚传输至核心电路模块[2]。

图5 VS1838B内部结构

■ 3.3 L298N电机驱动模块

结合电机驱动需求以及整体系统结构采用L298Nmini模块,具有体积小,接线便捷的特点。

驱动信号端可承受1.8~7V电压,整个芯片的供电电压从2~10V,采用双路H桥电机驱动,可同时驱动两个直流电机,进行正反转以及PWM调速,每路能够提供1.5A连续电流,电流峰值可达2.5A。INx端接开发板四个引脚来传输控制信号,MOTOR-A和MOTOR-B端接两电机。本系统仅包含一个电机故只需使用IN1/2与MOTOR-A单电机控制。逻辑功能表如表1所示[3]。

表1 L298N逻辑功能表

■ 3.4 Arduino Nano开发板

Arduino是一系列便捷灵活、方便上手的开源电子原型平台,包含硬件即各种型号的Arduino板和配套开发环境Arduino IDE。本系统采用Arduino Nano3.0作为核心控制模块。Nano3.0的处理器核心是ATmega328,ATmega328是一款Microchip公司生产的高性能、低功耗AVR8位微控制器,采用RISC指令集体系结构,内含有32KB的Flash内存,其中2KB用于Bootloader,同时还有2KB的SRAM和1KB的EEPROM,工作时钟频率在16MHz。Arduino Nano开发板在此基础上增加了CH340芯片将串口信息转为USB信号以便和主机通讯,并且添加复位电路、供电电路、等外围电路。其引脚分配如图6所示,其中Dx引脚为数字I/O口,其中六路可以输出PWM波在本系统中可以用于控制直流电机转速,Ax是具有10位分辨率的模拟I/O口,本系统使用A4引脚的I2C复用功能作SCL接口和A5引脚作SDA接口。

图6 Arduino Nano引脚简图

4 系统软件设计

总体程序在Arduino IDE标准编程环境下完成,主要分为初始化、BH1750驱动、VS1838B通讯、电机控制信号输出几部分。下面介绍主要模块的驱动程序。

■ 4.1 BH1750FVI光照采集实现流程

BH1750的通讯方式是简化版I2C通讯协议,主机首先发送上电命令;接下来发送测量命令来选择BH1750的工作模式,本系统采用单次高分辨率模式,测量后自动断电;测量结束后传感器发送起始信号向主机,而后主机接收包括两字节光照信息等数据,直至结束信号。在以上协议的基础上,通过依次控制ADDR口的电平高低,完成轮序读取每一个传感器的数据,传感器光照采集流程如图7所示。

图7 光照采集模块流程

■ 4.2 核心板控制实现流程

如图8所示,核心板在接收到红外信号后进行两种模式选择,若是收起/放下指令则执行相应动作并将系统的工作模式设为手动模式,此时停止采集光照信号;若是自动指令则开始接收四个传感器数据并取平均数后选择对电机的控制方式。

图8 核心板控制实现流程图

5 系统的测试与分析

使用手电照明模拟晴天光照太强的环境,黑纸覆盖传感器表面来模拟夜间环境,正常的室内灯光作为适中照射条件,在主机上通过串口通讯获取部分数据,以此作为光照控制的判断阈值。通过硬件系统搭建和软件测试,设计的系统各部分功能实现,性能较为稳定。考虑到特殊天气或地区差异等因素,其中光强检测部分可能由于设置的阈值不合适会执行错误的动作,因此需要测取更多不同环境下的数据以增加系统的实用性。

6 结语

本文完成了感光式电动窗帘的系统设计,阐述了硬件原理与软件设计方式,为家居智能化增添了一个新内容,本系统通过使用光照传感器采集环境中的光照强度变化,传输到单片机进行数据分析后控制窗帘的自动开合,合理有效的控制窗帘,实用性强,易于操作,有较高的集成性并提高用户体验。此光感窗帘以较低的成本和极高的性价比,提升了家居的便利性、舒适性、尤其是对提高老年人及行动不便的患者的生活质量具有积极的作用。

猜你喜欢

窗帘光照电机
肉种鸡的光照不应性对养殖生产的不良影响分析
新能源车用驱动电机系统的匹配应用
窗帘儿跟我杠上了
小番茄发电机
隐蔽的力量
赶路人
相思湖
水禽舍的光照及其控制
X2412S多旋翼专用电机
电机Ⅱ个股表现