步进电机28BYJ-48:如何找到角度0?还是它的起点?

Stepper motor 28BYJ-48: How to find the angle 0? Or its initial point?

我想找到步进电机的初始点,如果它存在,那么我可以将它始终旋转 90 度或 512 步(完整旋转 2048 步)。我在步进电机上放了四个杯子,我想用 0 度来表示杯子 1,用 90 度来表示杯子 2,依此类推。我将它与 python 语言的 Beaglebone Black 一起使用。到目前为止,我只能移动电机,让他走几步。我正在使用 Adafruit_BBIO 库从 Beaglebone 控制 GPIO。 是否有可能获得电机的初始位置或将其移动到初始位置?我以前从未使用过步进电机。

谢谢。

否 - 没有附加信息(输入)就无法确定步进电机的准确位置。正如您所注意到的,您只能移动一定数量的步数,但除非您知道从哪里开始,否则您将不知道最终会到达哪里。

这通常是通过在已知位置使用另一个输入来解决的,通常是限位开关,这样当移动部件直接位于该位置上方时开关就会关闭。第一次启动时,旋转步进器直到开关闭合,此时您知道当前位置。一旦你校准了你的初始位置,那么你就可以通过计算步数来确定你的确切位置(假设你的电机永远不会打滑!)

你在喷墨打印机上经常看到这种情况;当您第一次打开它们时,打印头将一直滑到一侧(几乎肯定有某种检测器)。那是打印机找到它的零点。

开关的一些替代方案:

如果不需要全旋转,可以用伺服电机代替。这些 DO 具有内部位置感应功能。

另一种使用步进器的黑客解决方案是在一个末端放置一个机械块,以防止您的机械装置通过。然后只需将步进器沿给定方向旋转一整圈即可。你知道在某个时候你会碰到障碍并停止。这不是很好;你必须小心 运行 进入停止不会损坏任何东西或将任何东西撞错。由于步进器的特性,您的步数最多也可能相差 3 步,因此这不会是超高精度。