0

我目前analog pin 3在我的 Arduino Uno 上使用来发送 0 到 5V 的电压。我正在使用该电压来控制电机,目前我正在使用以下功能:

analogWrite(pin, PWM_PULSE);

我正在255 pwm使用5V2.5V127。问题是 PWM 以 255pwm(5V) 发送全周期,但在 127V 时,周期为 50%,这导致我的电机有点抽搐。

我该如何解决这个问题?我正在寻找一种即使在较低电压下也能发送完整 PWM 周期的方法。可能吗?

4

1 回答 1

3

首先,我相信您的意思是 D3 而不是 A3,因为 A3 上不存在 PWM。假设您正在驱动直流电机,而不是伺服或步进电机

你有两个问题。

第一个。你可能需要一个平滑电容器。您的公式将是 F=L*C 请注意,analogWrite 使用 F=490Hz。这个概念很简单,简而言之,上限根据占空比平均出 PWM 的高点和低点。所需的电容取决于频率和阻抗。这将提供模拟电压。

第二。更大的问题是 Arduino 的输出无法提供足够的电流来正确驱动电机。它将在大约 20ma 时达到最大值,并且电机可能需要更多。因此,在低速时,一周内的脉冲会在其低速期间停止。

你应该让你的 PWM 输出驱动一个晶体管,这反过来将直接从电源开关电机。现在你的电机可能有足够的惯性不需要盖子。

adafruit-arduino-lesson-13-dc-motors/breadboard-layout

在此处输入图像描述

在这里讨论平滑上限

于 2014-01-06T22:44:46.053 回答