设置步进电机STM32的原点位置

问题描述

我有一个 Nucleo-IHM01A1 电机驱动器来驱动装有主轴的电机。主轴的长度有限,中间有一个物体。随着电机旋转,物体沿主轴移动。

如何设置电机的 Home 位置,以便每次在 MCU 上运行程序时,当对象位于主轴中心时设置 Home 位置。

解决方法

不幸的是,您描述的机械和电气设置实际上并不能以适当的方式自动进行家庭校准。

步进电机,顾名思义,用于执行步骤。他们不能靠自己进行绝对定位。如果您需要绝对定位,则必须在当前位置未知时(例如启动或丢失步数后)设置您的原点,或向系统添加绝对编码器(然后您始终知道系统状态) .

自动家庭检测的一种解决方案是 limit switches,常用于许多机械系统,尤其是 3D 打印机和其他 CNC 机器。您可能希望将其中一个添加到您的设置中,然后朝着开关行驶,直到按下为止。然后将它移动到将其移动到中心所需的确切步数,就完成了。

但是,如果您无法更改设置中的任何内容,您只需将雪橇向一个方向移动主轴的长度即可。当雪橇到达终点时,电机应停止运转并松开剩余的台阶。然后您将其移回中心(与之前相同的步数)并且您已居中。考虑到电机失速会使电机和电机驱动器过热。这可能会降低他们的预期寿命。

还有其他解决方案,如伺服系统或绝对编码器,但据我了解您的目标,限位开关应该没问题。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...