亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino 动力服务电梯

组件和用品

Arduino Mega 2560
× 1
OpenBuilds 微限位开关
× 4

关于这个项目

设计和测试运行四层的服务电梯的控制系统。微控制器 (ATMega2560) 用于通过检查电梯当前所在的楼层来确定为哪个接触器供电,以激活电梯电机以向上或向下移动电梯。当电梯到达所需楼层时,控制系统还应能够停止向电梯供电。应实施整体安全系数,以便在向上或向下移动之前始终关闭电梯门。控制系统能够成功确定需要为哪个接触器供电才能将电梯移动到所需楼层。系统可控制安全电梯门电机,在电梯需要移动时关门,到达所需楼层自动开门。

演示视频:

1.1 三相电机接线

在此应用中使用三相电机,因为这需要能够处理重负载的强大电机。三相电机通过主三相电源供电。电源通过两个主接触器运行。当第一个接触器打开而第二个接触器关闭时,电力通过第一个接触器到达电机的绕组,从而使电机向前移动。

当第二个接触器打开而第一个接触器关闭时,电力通过第二个接触器到达电机的绕组,从而使电机反向移动。注意反方向接线不同。

1.2 楼层检测

为了检测电梯当前所在的楼层,使用了限位开关。当电梯上下移动时,它会关闭并打开每层楼的限位开关。当电梯位于特定楼层时,该特定楼层的限制楼层关闭,向微控制器指示电梯所在的楼层。随着升降机移动,限位开关打开,向微控制器指示升降机正在移动。

当电梯穿过地板时,限位开关产生的从低到高信号的转换发生在几分之一秒内,而且通常太快而无法被微控制器检测到。限位开关连接到 5V DC 电源,NO(常开)端子的输出连接到微控制器的 IO 引脚。四层楼的四个限位开关向微控制器发送数据。这使微控制器能够通过检查哪个引脚从低到高来确定电梯所在的楼层。限位开关状态的转变如下图所示:

棘手的任务是使微控制器能够检测从低到高的转换。有两种方法可以解决这个问题。第一种方法是使用 if 条件确定限位开关引脚是否在循环功能内变为高电平。该程序基本上在执行其他代码时总是检查引脚是否变为高电平。这会占用大量内存,因为程序不断地从限位开关引脚寻找高电平信号。另一个问题是,有时程序可能会错过这个转换,因为在转换发生时循环函数正在执行一些其他代码。为了避免这些问题,使用了中断。中断本质上是暂停代码的执行并在满足特定中断条件时执行单独的函数。这是电梯操作的理想选择。当限位开关引脚从低到高时,会执行中断功能,该功能会检查电梯是否在当前楼层并停止电梯或允许其进一步移动。由于切换限位开关时程序会强制执行中断功能,因此系统可以确保程序不会故意跳过检测楼层。用于此应用程序的微控制器是 Arduino Mega 2560,它有 6 个可用于中断的数字引脚,非常适合用于四层楼。 attachInterrupt 的第一个参数是一个中断号。通常你应该使用 digitalPinToInterrupt(pin) 将实际的数字引脚转换为特定的中断号。例如,如果您连接到引脚 3,请使用 digitalPinToInterrupt(3) 作为 attachInterrupt 的第一个参数。还需要注意的是,delay() 函数在中断服务程序 (ISR) 执行的函数内部不起作用。

上图显示了限位开关如何连接到 MCU。 MCU 中的引脚通过下拉电阻连接。该电阻将 MCU 的引脚下拉至地,以确保当限位开关保持打开状态时 MCU 读取低电压读数。电阻配置如下图所示。

1.3 电机升降控制

两个 12V 直流继电器用于将交流电源切换到控制电机方向(向上或向下)的电机接触器。使用Multisim设计的电路如下图所示:

继电器线圈接触器的一端通过 PNP 晶体管连接到 12V 直流电源。这样做的主要原因是为了确保在电梯门关闭之前电机不供电。一旦电梯门关闭,连接到 PNP 晶体管栅极的 DoorSwitch 输出引脚被拉到地,确保 PNP 被打开,为两个继电器提供 VCC 电源。因此,即使 MotorUp 或 MotorDown 信号为高电平,继电器也不会打开。继电器线圈的另一端通过 NPN 晶体管接地。 MotorUp 信号由 MCU 生成。当 MotorUp 信号为高电平时,第一个 NPN 晶体管被激活,它将另一个线圈触点拉到地,以完成电路为向上继电器的线圈供电,从而为电机供电。使用相同的方法激活下行中继。使用晶体管来切换继电器的原因是:

  • 两个继电器都有 12VDC 线圈,因此需要使用 PNP 晶体管来切换线圈的高侧 (12V) 部分,因为 MCU 只能产生 5V,这不足以打开继电器线圈。
  • 晶体管可用于通过使用来自 MCU 的最小电流来打开继电器,因为通过晶体管基极的电流很小就可以激活它。当需要切换继电器时,这可以节省 MCU 的功率。
  • 它还可以将 MCU 与任何可能流回 MCU 引脚的反向电流隔离,这可能会损坏 MCU。

1.3.1 用于额外保护的反激二极管

一个反激二极管安装在继电器的线圈触点上,以确保在线圈打开和关闭时反向电流有路径流动。当电源电流突然中断时,继电器中的线圈等电感负载会产生突然的电压尖峰。这为 MCU 增加了额外的保护。下图显示了如何在继电器的线圈接触器之间连接反激二极管。

1.3.2 用户输入控制

用户通过楼层按钮控制电梯的运行。有四个楼层按钮,按下时会向微控制器指示电梯需要到达所需楼层。

按下按钮时会产生一个 HIGH 信号,然后当用户松开按钮时会产生一个 LOW 信号。微控制器的任务是识别来自用户按下的楼层按钮的高电平信号。这个特定任务不需要通过中断来处理。只要用户按下按钮足够长的时间,MCU 就能够注册来自按钮的信号。微控制器的下一个任务是根据用户输入和电梯的当前楼层来评估是打开还是关闭电机。

通过微控制器的智能编程,我们可以消除如果系统纯粹通过逻辑和模拟设计时可能需要的额外硬件。以前的电梯系统需要一个额外的方向开关,如下图所示,用于使系统能够识别电梯运行的方向(向上或向下)。

但是通过设计一种算法将电梯的当前楼层保持在一个变量中并将其与用户的输入进行比较,使系统能够完全摆脱方向开关来确定电梯应该移动的方向才能到达所需的位置地面。例如:在上图的输入和楼层感应连接到 MCU 图中,电梯通过引脚 3 向 MCU 指示它在二楼。然后用户通过按下四楼按钮输入。 MCU 接收此命令并比较两个输入。由于用户输入的“4”大于限位开关的输入,“2”MCU通过MotorUp引脚发送信号以激活晶体管为Up继电器供电。

随着电梯向上移动,程序中的当前楼层变量会在到达三楼时更新。一旦触发限位开关,它就会与用户的输入值进行比较,在这种情况下为“4”,并再次将此值与更新的当前楼层进行比较,以确定电梯是否已接近所需楼层。一旦第四层限位开关被触发,MCU识别出电梯已经接近第四层,并通过Motor Up信号引脚发送一个LOW信号来停止给电机供电以防止其进一步移动。

1.3.3 控制与输入的隔离

另一个重要因素是将微控制器的直流控制侧与可能通过系统输入影响 MCU 的任何交流干扰隔离。我遇到了一个问题,因为我最初没有安装任何隔离硬件,来自升降机金属机身的交流干扰通过限位开关转移到 MCU。即使限位开关在单独的直流电源上运行,限位开关的输入直接馈送到微控制器,当电梯开始移动时就会发生干扰,由于这种交流干扰,MCU 无法正确识别电梯的楼层是在。为了解决这个问题,每个输入都使用了一个光耦合器,以将 MCU 与外部干扰隔离。

光耦的目的是将地板限位开关产生的输入信号通过LED和光电晶体管传输到MCU。当限位开关关闭时,LED 通电,来自 LED 的入射光激活光电晶体管的栅极,然后将高电平信号传输到 MCU,成功地将输入与外部和 MCU 隔离。

1.4 原型


制造工艺

  1. 电梯
  2. Arduino Spybot
  3. FlickMote
  4. 自制电视 B-Gone
  5. 主时钟
  6. 找到我
  7. Arduino Power
  8. Tech-TicTacToe
  9. Arduino Quadruped
  10. Arduino Powered Weather Balloon Datalogger
  11. Arduino Joystick
  12. 数控机床