0

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

任何帮助将不胜感激!

谢谢

4

1 回答 1

2

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

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

于 2012-05-01T02:30:26.437 回答