霍尔效应传感器
霍尔效应传感器可以检测磁场的存在,并在检测到磁场时产生输出电压。霍尔效应传感器,与线性执行器,通常与磁盘一起位于执行器的齿轮箱内。当线性致动器伸出或缩回时,该圆盘旋转经过霍尔效应传感器,导致传感器产生电压脉冲形式的数字输出。可以对这些脉冲进行计数并用于确定执行器移动了多远。
霍尔效应传感器的位置反馈
使用霍尔效应传感器进行位置反馈的缺点是它们不能测量绝对位置。相反,它们产生脉冲,可以通过计数来确定执行器移动了多远。要利用这些脉冲进行位置反馈,您需要使用 微控制器 计算产生的脉冲。为此,您需要利用微控制器的外部中断引脚来对这些脉冲发生时进行计数。外部中断是检测电压变化的引脚,在我们的例子中可用于检测来自霍尔效应传感器的电压脉冲。您需要查阅微控制器的数据表,以确保微控制器的哪些引脚可以用作中断引脚。使用 Arduino Uno 例如,引脚 2 和 3 可用于外部中断。选择合适的中断引脚后,您可以将霍尔效应传感器输出的导线连接到该引脚,并将输入电压连接到 5V,并将接地连接到接地引脚。
下面的代码示例显示了如何在 Arduino IDE 中设置中断,其中中断将在电压脉冲的上升沿触发。您可以将中断设置为在电压变化的不同点触发,并且应查阅微控制器的数据表以确定可用选项。设置中断需要做的最后一个方面是编写中断服务例程,这是每次触发中断时代码将运行的函数。该函数应该很短,并且只执行简单的任务,例如计算霍尔效应传感器的脉冲数。下面代码示例中的函数 countSteps() 用于计算霍尔效应传感器的脉冲数。
要利用这些脉冲来确定位置值,您需要知道线性执行器的先前位置以及线性执行器行进的方向。您的微控制器已经知道您驱动线性执行器的方式,因此,您可以简单地设置一个变量来跟踪代码中执行器的方向,该变量将用于确定是否在之前的位置上添加或减去脉冲。更新位置后,您需要将计数的脉冲重置为零。下面的代码示例向您展示了一个根据计数的脉冲数更新位置的函数。一旦您获得了以脉冲表示的位置,您就可以使用线性执行器的每英寸脉冲规格将其转换为英寸。在下面的代码示例中,每英寸行程的脉冲为 3500。
归位您的线性执行器
为了准确利用霍尔效应传感器的位置反馈,您需要始终知道线性执行器的起始位置。尽管当您第一次打开系统时,您的微控制器将无法判断执行器是否伸出。这将要求您将线性执行器归位到已知位置。要归位线性执行器,您需要将其驱动到已知位置,例如完全缩回。您还可以利用 外部限位开关 将您的已知位置设置为完全伸展或缩回以外的位置。使用下面的 Arduino 代码作为示例,我们需要设置一个 WHILE 循环,将线性执行器驱动到您的已知位置,在本例中完全缩回。我们知道您处于我们已知的位置,因为霍尔效应传感器的中断不会触发。在这种情况下,我们检查steps变量是否发生变化,以确定中断是否被触发。我们还需要确保已经过去了足够的时间来触发中断,为此我们使用 millis() 函数,该函数输出代码启动后的时间(以毫秒为单位),并将其与之前的时间戳进行比较。一旦我们确定线性执行器处于原始位置,我们就停止驱动执行器,重置步骤变量,并退出 WHILE 循环。
处理错误触发因素
虽然霍尔效应传感器对电噪声不像电位计那么敏感,但电噪声仍然会影响输出信号。开关弹跳也可能是霍尔效应传感器的一个问题,它可能会触发错误的脉冲计数,这会影响微控制器认为线性执行器移动的距离。一些额外的脉冲不会对定位产生太大影响,因为每英寸有数千个脉冲,但随着时间的推移,这可能会成为一个更大的问题。您可以通过使用内部计时器来过滤掉错误触发来解决这些问题。由于您可以确定期望检测到新脉冲的频率,因此您可以过滤掉噪声触发中断的时间。在下面的代码示例中,trig-Delay 是每个脉冲之间的时间延迟。如果在此延迟之前触发中断,则不会对脉冲进行计数。
该延迟的时间长度将根据您的应用而有所不同,但如果它太短,它将无法正确滤除噪声,如果它太长,它将错过来自线性执行器的实际脉冲。线性执行器的速度也会影响此延迟,如果您想调整速度,可能需要更改此变量以调整到预期脉冲的新频率。要准确确定每个脉冲之间的确切延迟,您可以使用逻辑分析仪查看来自霍尔效应传感器的实际信号。虽然这在大多数应用中不是必需的,但如果您需要非常精确的定位,则可能需要确定精确的延迟。
对抗错误触发的另一种方法是每次执行器到达已知位置时校正位置值。与使线性执行器归位一样,如果您已将线性执行器驱动到完全缩回或伸出位置,或者如果您使用 外部限位开关,您就会知道执行器移动了多远。由于您知道霍尔效应传感器应发送多少步才能到达您的已知位置,因此您可以在到达该位置时简单地纠正该值。在下面的代码示例中,这是针对完全伸展和完全缩回位置完成的。由于执行器一旦到达这些位置之一就不会移动,如果我们尝试驱动执行器并且位置值没有改变,我们就知道我们已经达到了极限。此方法提供了一种实用的解决方案,可确保您的位置值保持准确,特别是当您在操作过程中的某个时刻完全缩回或完全伸展执行器时。您可以将此方法与上述方法结合使用,这将有助于保持位置值的准确性。
概括
与电位计的反馈相比,利用霍尔效应传感器进行位置反馈可提供更高的分辨率。由于每英寸的运动可能有数千个脉冲,霍尔效应传感器可在定位线性执行器时提供精确性和可靠性。霍尔效应传感器还提供了更大的能力来确保多个线性执行器同时移动,因为脉冲计数比电位计的变化电压更准确。利用我们的 FA-SYNC-X 执行器控制器,您甚至可以确保执行器一致移动,无论负载如何。对于 DIY 爱好者,您可以使用 Arduino 检查如何确保执行器一致移动 这里.
以下是本博客中使用的完整示例代码,旨在控制 14 英寸行程长度 Bullet 系列 36 口径。线性执行器。线性致动器使用 电机驱动器,您可以了解如何设置 这里.
[1] Monari, G.(2013 年 6 月) 了解光学和磁性编码器的分辨率。从...获得: https://www.electronicdesign.com/technologies/components/article/21798142/understanding-resolution-in-optical-and-magnetic-encoders