将位置传感器电压与电机速度 PWM 相关联


这是一个

一般性问题,我相信这可能是一个数学问题,但它适用于Arduino平台。

我正在做一个球悬浮项目,该项目将使乒乓球悬在管中的设定点,用激光位置传感器读取球的位置,该传感器给出与球位置相关的模拟电压。传感器输出对于管子长度的工作范围非常线性。

然后我有一个用PWM控制的风扇作为%,这是用锅手动调节的,我以一英寸的增量在管子上标记了一个刻度。

基本上我做了一个传感器电压输出值表,与管中不同位置的电机的PWM%值有关。

我做了一个将两个变量联系起来的图表,它令人惊讶地非常线性。我在 excel 中做了一条趋势线,得到了一个 Y = 3.0265X + 15.05 的线方程

X 是传感器位置(以伏特为单位(,Y 是以 % 为单位的 PWM 值

我遇到问题的部分是从模拟引脚获取模拟电压,该电压在 arduino 中是 0 到 1023 的值,并将其连接到 PWM 以模拟写入电机(从 0 到 255 的值(。

我知道 analogRead(( 是和 ADC,所以我将 0 到 1023 的值转换为电压 (5.0 * 模拟值(/1023;

这会给我伏特,但我不明白如何将其与PWM联系起来,就像传感器电压的变化与PWM对电机的变化一样。我认为我走在正确的轨道上,但没有将这些点连接在一起。

任何帮助将不胜感激!

谢谢

一般来说,PWM百分比与电源电压的电压直接相关。 也就是说,如果你有一个 5 伏的 Arduino,并且 PWM 百分比为 75%,输出应该是 3.75 伏,前提是你有一个能够"滤除"单个脉冲的输出电路。

请记住,PWM 值在 0 到 255 的范围内,因此您需要将所需的"analogRead(("值(在 0 到 1023 的范围内(除以 4 倍,以使用 PWM 产生正确的输出电压。

最新更新