2012-04-30 21 views
0

这是一个普遍问题,我认为这可能是一个数学问题,但它是针对Arduino平台的。将位置传感器电压与电机转速关联PWM

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

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

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

我做了一个关于这两个变量的图表,它出人意料地非常线性。我确实在Excel的趋势线,并获得y的直线方程= 3.0265X + 15.05

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

的部分我有在Arduino中,模拟引脚的模拟电压值为0到1023,并将其与PWM模拟写入电机(A值从0到255)。

我知道analogRead()和ADC,所以我将0到1023的值通过(5.0 * analogvalue)/ 1023转换为电压;

这会给我电压,但我不知道如何将此与PWM相关联,例如传感器电压的变化与PWM对电机的变化。我认为我走在正确的轨道上,但不能把点子连接在一起。

任何帮助将不胜感激!

感谢

回答

2

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

请记住,PWM值的范围是0到255,所以您需要将期望的“analogRead()”值(范围为0到1023)除以四的因子使用PWM产生正确的输出电压。