2014-01-06 39 views
0

我目前在我的Arduino Uno上使用analog pin 3發送電壓從0到5V。 我使用的電壓來控制電機,目前我使用的功能:如何使用Arduino在較低電壓下發送完整的週期脈衝?

analogWrite(pin, PWM_PULSE); 

我使用255 pwm5V1272.5V。 問題是PWM在255pwm(5V)發送完整週期,但在127V週期是50%,這會導致我的電機抽動一點點。

我該如何解決這個問題?我正在尋找一種即使在較低電壓下也能發送完整PWM週期的方法。可能嗎?

+0

'analogWrite()'不實際編寫的模擬,除非你有一個DAC(其中僅因如此) 。 –

+0

@ IgnacioVazquez-Abrams;是的,我發現它的名字如此想念領先。在AVR上,它確實設置了一個PWM @ 490Hz的佔空比。 – mpflaga

回答

3

首先我相信你的意思是D3不是A3,因爲A3上不存在PWM。 假設你駕駛的是直流電機,而不是像伺服或步進電機那樣的東西

你有兩個問題。

1st。你可能需要一個平滑電容器。如果你的公式是F = L * C注意analogWrite使用F = 490Hz。這個概念很簡單,總之,根據佔空比的不同,PWM的上限和下限將平均分配給上限。所需的電容取決於頻率和阻抗。這將提供模擬電壓。

2nd。而更大的問題是,Arduino的輸出無法提供足夠的電流來正確驅動電機。它將在20點左右達到最大值,而電機可能需要更多。所以在低速時,週期內的脈衝在低速期間失速。

你應該有你的PWM輸出驅動一個晶體管,這反過來將直接從電源開關電動機。現在你的電機可能有足夠的慣性,因爲不需要帽子。

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

enter image description here

,並在這裏對有關討論smoothing cap

相關問題