基于STM32的智能电梯控制系统设计
2023-07-21 来源:elecfans
电梯自动控制系统一般是基于PLC,但是在一些干扰较少,层数较少,且控制精度要求不高的情况下,使用单片机是十分适合的。虽然它在抗干扰及稳定性上比不上PLC,但是它的价格、体积及灵活性是PLC所不及的。
1、系统硬件设计
1.1、系统总体组成
如图1系统总体结构,本系统将基于ARMCortex-M3内核的STM32F103ZET6芯片作为主控芯片,连接电机控制、压力传感、液晶显示、光感检测、按键输入模块,通过程序控制组成了一个智能电梯控制系统。其中,电机控制模块用于模拟电梯门的开关和电梯的上下运动;压力传感模块用于模拟电梯门关闭时受到阻力的情况及超重警告;光感模块用于模拟电梯抵达楼层时的位置检测;液晶显示模块用于模拟电梯内部的楼层显示及电梯门开关动画;按键模块用于模拟电梯内楼层按键及电梯外的上下楼层按键。为了达到高效节能的目标,将电梯设计为:不可以按相邻楼层的按键,即不能通过电梯到达相邻楼层,这样就可以使得只上一层或下一层的人不使用该电梯,从而提高了电梯的工作效率,并且节约了能源。
图1 系统总体结构
1.2、步进电机及TB6560电机控制
步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”)。
图2 电机与TB6560连接图
TB6560是一款带细分的低功耗、高集成两相混合式步进电机驱动芯片,配合简单的外围电路即可开发出高性能的驱动电路。本系统中TB6560用来控制57系列两相四线步进电机,如图2 电机与TB6560连接图所示。微控制器通过软件驱动,控制步进电机的转动角位移,如图3 TB6560与MCU连接原理图所示,其中当输入电平为5V时,R_EN、R_CW、R_CLK为0;当输入电平为12V时,R_EN、R_CW为1kΩ,R_CLK为1.5kΩ;当输入电平为24V时,R_EN、R_CW为2kΩ,R_CLK为3kΩ。
图3 TB6560与MCU连接原理图
1.3、HX711称重A/D转换器及压力传感器
HX711是一款24位A/D转换器芯片。通过给芯片的SCK引脚输入固定脉冲数,达到配置输入通道、增益选择及DOUT引脚数据读取的作用。
本系统中,用HX711芯片来充当压力检测器。当电梯超重时,控制STM32给出声音警报,并拒绝启动电梯上下。另当电梯关门时,HX711也被用来检测两门受到的压力,若两门间感受到的压力大于设定值时,门将停止关闭并且重新打开。其中一个压力传感器装在电梯门上,另一个装在电梯底部。如图4HX711与MCU及压力传感器连接原理图所示,L1为用于隔离模拟与数字的电源,Q1为用于关断传感器和ADC的电源,STM32通过GPIO口与HX711的SCK引脚和DOUT引脚相连。当需要读取压力数据时,使用TIM定时器往SCK发送固定个数的脉冲,在DOUT处可以得到想要获得的数据。
图4 HX711与MCU及压力传感器连接原理图
1.4、TCRT5000光电传感器模块
TCRT5000光电传感器模块是基于TCRT5000红外光电传感器设计的一款红外反射式光电开关。传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,光敏三极管一直处于关断状态,此时模块的输出端为高电平;被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,光敏三极管饱和,此时模块的输出端为低电平。
本系统共用了两个TCRT5000模拟检测“电梯到达某一楼层时”的情形。实际情况中可以在每一楼层装多个光感。当检测到已到达指定楼层时,控制电梯运动的电机停止,电梯停在该楼层。TCRT5000电路原理图如图5所示。
图5 TCRT5000电路原理图
1.5、按键及TFT彩屏设计
一般电梯内设有电梯门开关以及多个楼层按键,还有显示楼层信息的液晶屏。本系统使用开发板自带TFT彩屏模拟电梯内部结构。当按下“开”或“关”按键时,液晶屏上显示电梯门对应动画且电机配合运转;电梯在楼层间运动时,每当抵达某个楼层,液晶屏左上角显示动画中的数字便改为当前楼层。当电梯向高楼层运动时,液晶屏左上角显示向上箭头,反之则是向下箭头。电梯外设有“上”和“下”两个按键,用来发送电梯请求。LCD显示界面如图6所示。
2、软件设计
2.1、主控模块
如图7系统主控程序流程图所示,当STM32接收到电梯内外按键请求时,判断电梯是否在同楼层,若是,则打开电梯门,反之则将电梯运行到该楼层。当电梯抵达目的楼层时,通过光感检测电梯是否处于合适位置,如果是,则打开电梯门。若有较多乘客或者货物进入,超过电梯负重时,给出声音提醒,并将电梯门处于打开状态后锁死电机,直到负重达到正常水平,再进行电梯运作。
图7 系统主控程序流程图
2.2、电机控制模块
当电梯门需要打开或关闭时,STM32通过用定时器输出脉冲的方式,使用某个GPIO口给TB6560电机驱动器的CLK引脚输入脉冲,控制步进电机运动。假设电梯门打开时电机正转,即CW引脚低电平或者悬空,反之,关闭时则将CW引脚置高。同时该电机还模拟控制电梯在楼层中的运动。假设上楼时电机正转,CW引脚置低;下楼时,CW引脚置高,电机反转。如图8电机控制流程图所示,在获得电梯请求后,判断是开关电梯门还是上下楼层,然后按流程图中的顺序进行对应的操作。若是开关电梯门,则在关门时实时监测HX711处的数据;若是上下楼层,则当抵达楼层后,进行电梯门操作。
图8 电机控制流程图
2.3、HX711压力传感控制模块
在本设计中,对于HX711的初始化设置,选择输入通道A,128增益。在电梯关闭时,打开对应定时器通道,定时读取HX711采集到的数据,一旦超过限值,控制电机转向从而打开电梯门,确保乘客安全。
2.4、LCD显示模块、按键模块及TCRT5000光感模块
在按键响应中,本系统使用外部中断迅速反应电梯内外部请求,TCRT5000光感模块也使用到了外部中断检测。而对于模拟电梯内部的LCD显示,使用现有的库函数对界面进行设计。具体界面如图6LCD显示界面所示,屏幕的左侧作为电梯内部的按钮及楼层显示液晶。当电梯在楼层中移动时,抵达某一层,屏幕左上角的数字就会刷新成当前楼层的数字,若是上升则数字边的箭头向上,反之向下。屏幕右侧模拟电梯门的开关,与电机同步。
3、小结
本例只是电梯正常工作的基本原理及方法的模拟实现。由于只是探求电梯的运行原理,减少了电机、光感、压力传感器、按键的数量。实际应用中,需要更好的仪器设备以及调试方法。