/

Arduino項目:analogWrite()函數和PWM

Arduino項目:analogWrite()函數和PWM

我們使用由Arduino語言提供的analogWrite()函數來輸出模擬信號。

好吧,其實不是真正的模擬信號,而是PWM(脈衝寬度調變)信號。

以Arduino Uno為例,你會注意到有6個類比輸入引腳A0-A5,但沒有類比輸出引腳。

我們使用數字輸出引腳以特定方式來模擬類比輸出。

PWM意味著脈衝寬度調變,這是一種我們從數字設備模擬類比輸出的技術。我們基本上會發出高電平信號一小段時間,然後發出低電平信號,並且我們不斷重複這個過程,速度非常快。類比設備將根據週期的平均值。高電平的時間越短,平均值越小。

要模擬0V的類比信號,使用:

1
analogWrite(0)

要模擬高電平類比信號(Arduino Uno上的5V),使用:

1
analogWrite(255)

介於這兩個值之間的任何值都是在這兩個值之間的值。2.5V的類比信號是analogWrite(127)

這適用於輸出5V的設備。一些Arduino設備(例如Arduino MKR 1010 WiFi)最大輸出3.3V,因此這些值將適應輸出引腳可以發出的最高電壓。

並非所有數字輸出引腳都可以做到這一點。特別是我們可以使用analogWrite()的引腳上標有波浪號。在Arduino Uno上,我們可以使用3、5、6、9、10、11引腳。

在Arduino MKR 1010 Wifi上,我們可以使用0-8、10、11、A3、A4引腳。

在每個板的官方規格中,您將找到PWM引腳的列表。

tags: [“Arduino”, “PWM”, “analogWrite”, “脈衝寬度調變”, “模擬信號”]