我目前analog pin 3
在我的 Arduino Uno 上使用来发送 0 到 5V 的电压。我正在使用该电压来控制电机,目前我正在使用以下功能:
analogWrite(pin, PWM_PULSE);
我正在255 pwm
使用5V和2.5V127
。问题是 PWM 以 255pwm(5V) 发送全周期,但在 127V 时,周期为 50%,这导致我的电机有点抽搐。
我该如何解决这个问题?我正在寻找一种即使在较低电压下也能发送完整 PWM 周期的方法。可能吗?
我目前analog pin 3
在我的 Arduino Uno 上使用来发送 0 到 5V 的电压。我正在使用该电压来控制电机,目前我正在使用以下功能:
analogWrite(pin, PWM_PULSE);
我正在255 pwm
使用5V和2.5V127
。问题是 PWM 以 255pwm(5V) 发送全周期,但在 127V 时,周期为 50%,这导致我的电机有点抽搐。
我该如何解决这个问题?我正在寻找一种即使在较低电压下也能发送完整 PWM 周期的方法。可能吗?
首先,我相信您的意思是 D3 而不是 A3,因为 A3 上不存在 PWM。假设您正在驱动直流电机,而不是伺服或步进电机
你有两个问题。
第一个。你可能需要一个平滑电容器。您的公式将是 F=L*C 请注意,analogWrite 使用 F=490Hz。这个概念很简单,简而言之,上限根据占空比平均出 PWM 的高点和低点。所需的电容取决于频率和阻抗。这将提供模拟电压。
第二。更大的问题是 Arduino 的输出无法提供足够的电流来正确驱动电机。它将在大约 20ma 时达到最大值,并且电机可能需要更多。因此,在低速时,一周内的脉冲会在其低速期间停止。
你应该让你的 PWM 输出驱动一个晶体管,这反过来将直接从电源开关电机。现在你的电机可能有足够的惯性不需要盖子。
见adafruit-arduino-lesson-13-dc-motors/breadboard-layout
在这里讨论平滑上限