【问题标题】:Relating position sensor voltage to motor speed PWM将位置传感器电压与电机速度 PWM 相关联
【发布时间】:2012-04-30 12:32:50
【问题描述】:

这是一个普遍的问题,我相信它可能是一个数学问题,但它适用于 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 变化。我认为我在正确的轨道上,但没有将这些点连接在一起。

任何帮助将不胜感激!

谢谢

【问题讨论】:

    标签: math arduino


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多