基于STM32的智能电梯控制系统设计

发布者:静默思考最新更新时间:2023-07-21 来源: elecfans关键字:STM32  电机控制 手机看文章 扫描二维码
随时随地手机看文章

电梯自动控制系统一般是基于PLC,但是在一些干扰较少,层数较少,且控制精度要求不高的情况下,使用单片机是十分适合的。虽然它在抗干扰及稳定性上比不上PLC,但是它的价格、体积及灵活性是PLC所不及的。


1、系统硬件设计

1.1、系统总体组成

如图1系统总体结构,本系统将基于ARMCortex-M3内核的STM32F103ZET6芯片作为主控芯片,连接电机控制、压力传感、液晶显示、光感检测、按键输入模块,通过程序控制组成了一个智能电梯控制系统。其中,电机控制模块用于模拟电梯门的开关和电梯的上下运动;压力传感模块用于模拟电梯门关闭时受到阻力的情况及超重警告;光感模块用于模拟电梯抵达楼层时的位置检测;液晶显示模块用于模拟电梯内部的楼层显示及电梯门开关动画;按键模块用于模拟电梯内楼层按键及电梯外的上下楼层按键。为了达到高效节能的目标,将电梯设计为:不可以按相邻楼层的按键,即不能通过电梯到达相邻楼层,这样就可以使得只上一层或下一层的人不使用该电梯,从而提高了电梯的工作效率,并且节约了能源。

基于STM32的智能电梯控制系统设计

图1  系统总体结构


1.2、步进电机及TB6560电机控制

步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”)。

基于STM32的智能电梯控制系统设计

图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Ω。

基于STM32的智能电梯控制系统设计

图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处可以得到想要获得的数据。

基于STM32的智能电梯控制系统设计

图4  HX711与MCU及压力传感器连接原理图


1.4、TCRT5000光电传感器模块

TCRT5000光电传感器模块是基于TCRT5000红外光电传感器设计的一款红外反射式光电开关。传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,光敏三极管一直处于关断状态,此时模块的输出端为高电平;被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,光敏三极管饱和,此时模块的输出端为低电平。


本系统共用了两个TCRT5000模拟检测“电梯到达某一楼层时”的情形。实际情况中可以在每一楼层装多个光感。当检测到已到达指定楼层时,控制电梯运动的电机停止,电梯停在该楼层。TCRT5000电路原理图如图5所示。

基于STM32的智能电梯控制系统设计

图5  TCRT5000电路原理图


1.5、按键及TFT彩屏设计

一般电梯内设有电梯门开关以及多个楼层按键,还有显示楼层信息的液晶屏。本系统使用开发板自带TFT彩屏模拟电梯内部结构。当按下“开”或“关”按键时,液晶屏上显示电梯门对应动画且电机配合运转;电梯在楼层间运动时,每当抵达某个楼层,液晶屏左上角显示动画中的数字便改为当前楼层。当电梯向高楼层运动时,液晶屏左上角显示向上箭头,反之则是向下箭头。电梯外设有“上”和“下”两个按键,用来发送电梯请求。LCD显示界面如图6所示。


2、软件设计

2.1、主控模块

如图7系统主控程序流程图所示,当STM32接收到电梯内外按键请求时,判断电梯是否在同楼层,若是,则打开电梯门,反之则将电梯运行到该楼层。当电梯抵达目的楼层时,通过光感检测电梯是否处于合适位置,如果是,则打开电梯门。若有较多乘客或者货物进入,超过电梯负重时,给出声音提醒,并将电梯门处于打开状态后锁死电机,直到负重达到正常水平,再进行电梯运作。

基于STM32的智能电梯控制系统设计

图7  系统主控程序流程图


2.2、电机控制模块

当电梯门需要打开或关闭时,STM32通过用定时器输出脉冲的方式,使用某个GPIO口给TB6560电机驱动器的CLK引脚输入脉冲,控制步进电机运动。假设电梯门打开时电机正转,即CW引脚低电平或者悬空,反之,关闭时则将CW引脚置高。同时该电机还模拟控制电梯在楼层中的运动。假设上楼时电机正转,CW引脚置低;下楼时,CW引脚置高,电机反转。如图8电机控制流程图所示,在获得电梯请求后,判断是开关电梯门还是上下楼层,然后按流程图中的顺序进行对应的操作。若是开关电梯门,则在关门时实时监测HX711处的数据;若是上下楼层,则当抵达楼层后,进行电梯门操作。

基于STM32的智能电梯控制系统设计

图8  电机控制流程图


2.3、HX711压力传感控制模块

在本设计中,对于HX711的初始化设置,选择输入通道A,128增益。在电梯关闭时,打开对应定时器通道,定时读取HX711采集到的数据,一旦超过限值,控制电机转向从而打开电梯门,确保乘客安全。


2.4、LCD显示模块、按键模块及TCRT5000光感模块

在按键响应中,本系统使用外部中断迅速反应电梯内外部请求,TCRT5000光感模块也使用到了外部中断检测。而对于模拟电梯内部的LCD显示,使用现有的库函数对界面进行设计。具体界面如图6LCD显示界面所示,屏幕的左侧作为电梯内部的按钮及楼层显示液晶。当电梯在楼层中移动时,抵达某一层,屏幕左上角的数字就会刷新成当前楼层的数字,若是上升则数字边的箭头向上,反之向下。屏幕右侧模拟电梯门的开关,与电机同步。


3、小结

本例只是电梯正常工作的基本原理及方法的模拟实现。由于只是探求电梯的运行原理,减少了电机、光感、压力传感器、按键的数量。实际应用中,需要更好的仪器设备以及调试方法。

关键字:STM32  电机控制 引用地址:基于STM32的智能电梯控制系统设计

上一篇:如何通过STM32的定时器输出PWM?
下一篇:STM32CUBEMX开发GD32F303(11)----ADC在DMA模式下扫描多个通道

推荐阅读最新更新时间:2024-11-08 12:50

STM32学习笔记之十六——题外话,自己做块工程板
一、我的学习计划将STM32单片机的硬件设计工作: 第一步 用STM32F103CBT6的48脚芯片,为光电平台的简单控制为目标,实现基本外围硬件、PWM、串口、I/O。将SPI、I2C留插针。 第二步 为集成传感器应用为目标,在第一步硬件基础上制作功能性的套版,两板连接实现AD、SPI、I2C、RTC等等功能。 二、硬件规划 选用STM32F103CBT6,面积7 7mm,128K flash,16K RAM,4个16bit PWM,12个12bit PWM或CAP,2个SPI,2个I2C,3个串口,1个CAN,1个USB,),12ADC。 管脚分配目标1如图,之后的功能包括:4个AD,3个串口(1个与I2C复用),1个S
[单片机]
STM32 常见的下载方法
一、使用串口下载程序 串口下载程序的操作步骤如下: 1)连接电源线,连接好串口线 2)在断电的状况下将BOOT0连接电源(3.3V)配置为高电平 原因:STM32 的启动区域可以通过BOOT0 和BOOT1 两个引脚进行设置,各种设置方式所对应的启动区域如表1.1 所示。使用串口下载需要单片机内有相应的程序的支持,而系统存储器中就放了这么一段程序,由ST 在生产线上写入,用于通过可用的串行接口对闪存存储器进行重新编程。我们可以称这段程序为bootloader。 表1.1 3)连接好串口线和电源线,打开电源开关。 4)打开程序下载软件Flash Loader Demo,如图1.3 所示。 图1.3 5)配置下载软件的
[单片机]
stm32内存管理总结
一、内存管理简介 内存管理,是指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。内存管理的实现方法有很多种,他们其实最终都是要实现 2 个函数:malloc 和 free;malloc 函数用于内存申请,free 函数用于内存释放。本章,我们介绍一种比较简单的办法来实现:分块式内存管下面我们介绍一下该方法的实现原理,如图 42.1.1 所示: 内存管理表的项值代表的意义为:当该项值为 0 的时候,代表对应的内存块未被占用,当该项值非零的时候,代表该项对应的内存块已经被占用,其数值则代表被连续占用的内存块数。比如某项值为
[单片机]
<font color='red'>stm32</font>内存管理总结
STM32基于标准外设库的外部中断配置
本文介绍了STM32基于标准外设库的外部中断配置,以及基于参考手册如何更加寄存器配置外部中断 2 STM32的外部中断 下图来自《STM32参考手册》,从整个架构图可以知道,外部中断的功能可以配置六个寄存器; 中断屏蔽寄存器(EXTI_IMR) 事件屏蔽寄存器(EXTI_EMR) 上升沿触发选择寄存器(EXTI_RTSR) 下降沿触发选择寄存器(EXTI_FTSR) 软件中断事件寄存器(EXTI_SWIER) 挂起寄存器(EXTI_PR) EXTI支持配置20个中断和事件屏蔽位; GPIO端口以下图的方式连接到16个外部中断/事件线上;EXTI_Line0 — EXTI_Line15; EXTI_Line16 连接到PVD
[单片机]
<font color='red'>STM32</font>基于标准外设库的外部中断配置
基于STM32单片机的DLP驱动电路的研究
DLP投影技术是应用美国德州仪器公司开发的数字微镜元件——DMD(Digital Micromirror Device)作为主要关键处理元件以实现数字光学处理过程的技术。DLP显示的色彩清晰度高、艳丽、细腻、逼真,且为全数字显示即可靠性极高,能在各类产品(如大屏幕数字电视、公司/家庭/专业会议投影机和数码相机(DLP Cinema))中提供最佳图像效果。目前,大部分的家用或商用DLP投影机都采用了单片结构,使得其便于移动携带,因而得到越来越广泛的应用。在目前应用发展的基础上,又对其结构的精简性、携带的方便性提出了更高的要求。传统的DLP投影仪是通过DVI接口接收外部信号,并且经过信号转换传送给DLP控制器来控制DLP的显示,占
[单片机]
基于<font color='red'>STM32</font>单片机的DLP驱动电路的研究
stm32设置唯一MAC地址
stm32参考手册中指出,在地址为0x1FFFF7E8处,有一个唯一的身份标识寄存器。 可以直接访问该值。 printf( rnChip ID: %x, %x, %xrn , *(vu32*)(0x1ffff7e8), *(vu32*)(0x1ffff7e8+4), *(vu32*)(0x1ffff7e8+8)); Chip ID: 5d8ff39, 36364e4e, 43137403 虽然这个96bit的ID是唯一的,但是MAC地址却只有48bit,因为量产有不同批次,而且采购的很随机的话这个ID号也是不唯一的,比较靠谱一点的还是自己在指定FLASH位置定义一个变量,这样程序就写死去读这个地方的值,而这个地
[单片机]
<font color='red'>stm32</font>设置唯一MAC地址
STM32 定时器2+串口
USART.c #include STM32Lib\stm32f10x.h /********************************************** **串口配置函数,这里使能了两个串口,其中串口2使用了中断接收模式 ** **********************************************/ u8 Uart1_Get_Flag; //串口1接收到数据标志 u8 Uart1_Get_Data; //串口1接收的数据 void USART_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTyp
[单片机]
STM32自定义printf实现多串口互用
STM32 串口使用频繁的朋友可能知道一个问题,库自带的 USART_SendData 函数一次只能发送 1 Byte 字符 如果我们要输出一个带格式、带参数的串口数据就只能通过 sprintf 打印到一个临时数组,然后再使用一个for循环调用USART_SendData一个字符一个字符的输出,过程非常麻烦! 姜斌是一个非常怕麻烦的人所以这种方法无疑让我发疯!后来在原子(OpenEDV)那里购买了开发板拿到了例程。里面重定向了printf函数作为串口输出函数,有了这个函数之后就能够很轻松的参数输出,但问题就在这里我们串口1 串口2 都要带参数输出怎么办? 本次实验:自定义printf函数 实验数据来源: 配置usart
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved