Arduino項目:analogWrite()函數和PWM

我們使用由Arduino語言提供的analogWrite()函數來輸出模擬信號。 好吧,其實不是真正的模擬信號,而是**PWM(脈衝寬度調變)**信號。 以Arduino Uno為例,你會注意到有6個類比輸入引腳A0-A5,但沒有類比輸出引腳。 我們使用數字輸出引腳以特定方式來模擬類比輸出。 PWM意味著脈衝寬度調變,這是一種我們從數字設備模擬類比輸出的技術。我們基本上會發出高電平信號一小段時間,然後發出低電平信號,並且我們不斷重複這個過程,速度非常快。類比設備將根據週期的平均值。高電平的時間越短,平均值越小。 要模擬0V的類比信號,使用: analogWrite(0) 要模擬高電平類比信號(Arduino Uno上的5V),使用: 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引腳的列表。