我目前使用analog pin 3在我的Arduino Uno发送电压从0到5V。我用那个电压来控制电机,现在我使用的功能是:
analogWrite(pin, PWM_PULSE);我使用255 pwm表示5V,使用127表示2.5V。问题是PWM正以255 PWM(5V)的速度发送整个周期,但在127 V时,周期是50%,这使我的电机稍微抽动了一下。
我怎么才能解决这个问题?我正在寻找一种方式,以发送完整的PWM周期,甚至在较低的伏特。有可能吗?
发布于 2014-01-06 22:44:46
首先,我认为您的意思是D3而不是A3,因为A3上不存在脉宽调制。假设你驾驶的是直流电机,而不是伺服或步进电机。
你有两个问题。
第一个。你可能需要一个平滑的电容器。您的公式将是F=L*C,注意到analogWrite使用F=490Hz。这一概念很简单,简而言之,基于占空比,上限平均为PWM的高低。所需的电容是根据频率和阻抗来确定的。这将提供模拟电压。
第二名。更大的问题是Arduino的输出不能提供足够的电流来正确地驱动电机。它将在大约20马赫最大,发动机可能需要更多。所以在低速的情况下,每周的脉冲会在低谷期停止。
你应该有你的PWM输出驱动一个晶体管,这反过来将开关电机直接从电源。现在你的马达可能有足够的惯性,因为不需要盖。
请参阅adafruit-arduino-lesson-13-dc-motors/breadboard-layout

在这里讨论一下平滑帽
https://stackoverflow.com/questions/20959651
复制相似问题