脈沖寬度調(diào)制(PWM)是一種使用開(kāi)關(guān)數(shù)字信號(hào)來(lái)控制傳遞到電子負(fù)載的功率量的技術(shù)。該技術(shù)背后的關(guān)鍵思想是,可以通過(guò)改變信號(hào)的占空比來(lái)改變數(shù)字信號(hào)的平均DC值,從而改變傳遞給負(fù)載的功率。該方法通常用于控制直流電動(dòng)機(jī)的速度和燈的亮度。開(kāi)關(guān)電源也基于PWM技術(shù)。在本教程中,我們將討論chipKIT Uno32板的PWM引腳,并通過(guò)控制兩個(gè)外部LED的亮度來(lái)說(shuō)明該概念。

PWM
理論
脈寬調(diào)制(PWM)是一種通過(guò)能量傳遞能量的方式脈沖而不是連續(xù)變化的信號(hào)。通過(guò)增加或減少脈沖寬度(頻率保持不變),可以控制輸出功率。信號(hào)打開(kāi)的時(shí)間周期的一部分稱(chēng)為占空比。信號(hào)的平均DC值可以通過(guò)改變占空比來(lái)改變。占空比可以在0(信號(hào)始終關(guān)閉)到1(信號(hào)一直打開(kāi))之間的任何位置。假設(shè),如果信號(hào)在開(kāi)啟時(shí)為+5 V,在關(guān)閉狀態(tài)時(shí)為0 V,則通過(guò)更改信號(hào)的占空比,可以模擬0-5 V之間的任何電壓。該方法通常用于控制直流電動(dòng)機(jī)的速度和燈的亮度。 PWM的原理如下圖所示。

PWM
電路設(shè)置
在chipKIT Uno32板上,可以將I/O引腳3、5、6、9和10配置為提供PWM輸出。我們將兩個(gè)LED(紅色和綠色)連接到PWM引腳3和5,并通過(guò)改變驅(qū)動(dòng)這些LED的PWM信號(hào)的占空比來(lái)控制它們的亮度。兩個(gè)100電阻用于限制通過(guò)LED的電流。

電路設(shè)置

在面包板上的實(shí)際設(shè)置
寫(xiě)草圖
可以使用 analogWrite生成Arduino平臺(tái)中的PWM信號(hào)()命令。在括號(hào)內(nèi),您可以指定引腳號(hào)和所需的占空比(0-255)。占空比“ 0”表示始終關(guān)閉,“ 255”表示始終打開(kāi)。調(diào)用 analogWrite()時(shí),將在指定的PWM引腳上生成具有指定占空比的穩(wěn)定方波。下圖使用變化的占空比PWM信號(hào)來(lái)控制傳遞到兩個(gè)LED的輸出功率。兩個(gè)LED交替淡入和淡出,這意味著當(dāng)一個(gè)LED處于峰值強(qiáng)度時(shí),另一個(gè)LED變暗,反之亦然。
int redLED = 3; // Red LED is connected to pin 3
int greenLED = 5; // Green LED is connected to pin 5
int redCount = 255; // Initial PWM values, RED is full
int greenCount = 1; // Green is dim
int i = 0;
void setup()
{
pinMode(redLED, OUTPUT);
pinMode(greenLED, OUTPUT);
}
void loop()
{
if (i 《 255) // First phase
{
redCount = redCount-1; // Red down
greenCount = greenCount+1; // Green up
}
else if (i 《 509) // Second phase
{
redCount = redCount+1; // Red up
greenCount = greenCount-1; // Green down
}
else // Re-set
{
i = 0;
}
i += 1;
analogWrite(redLED, redCount); // Write current values to LED pins
analogWrite(greenLED, greenCount);
delay(10); // Pause for 10 millisecond
}
輸出
在程序中的職責(zé)周期以1為步長(zhǎng)從1更改為255。首先,紅色LED由占空比為255的PWM信號(hào)驅(qū)動(dòng),這意味著它將完全打開(kāi)。驅(qū)動(dòng)綠色LED的PWM信號(hào)的占空比為1,這意味著其強(qiáng)度最小。在每10 ms中,驅(qū)動(dòng)紅色LED的PWM信號(hào)的占空比減小1,而綠色LED的占空比則增大1。大約2550 ms之后,亮度條件反轉(zhuǎn),并且綠色LED完全點(diǎn)亮。重復(fù)此操作以交替產(chǎn)生淡入和淡出效果。

淡入和淡出

紅色LED處于最大強(qiáng)度,而綠色則變暗了

綠色處于最大強(qiáng)度而紅色卻變淡
LED的工作電流非常低,因此,可以直接通過(guò)UNO32板的PWM輸出驅(qū)動(dòng)它們。對(duì)于直流電動(dòng)機(jī)控制,需要一個(gè)外部電動(dòng)機(jī)驅(qū)動(dòng)器電路(例如H橋),該電路基本上將從微控制器引腳發(fā)出的低電流PWM信號(hào)放大為能夠提供足夠電流來(lái)驅(qū)動(dòng)電動(dòng)機(jī)的高電流PWM信號(hào)。
責(zé)任編輯:wv
-
PWM
+關(guān)注
關(guān)注
116文章
5890瀏覽量
226503 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
26文章
6405瀏覽量
120557
發(fā)布評(píng)論請(qǐng)先 登錄
ON Semiconductor NCP3011GEVB:PWM 設(shè)備評(píng)估板解析
JL杰理AC696N開(kāi)發(fā)板PWM波形生成與控制(1):頻率、占空比配置
云臺(tái)驅(qū)動(dòng)板 PWM 載波優(yōu)化設(shè)計(jì)
【瑞薩RA × Zephyr開(kāi)發(fā)板評(píng)測(cè)】+動(dòng)態(tài)調(diào)節(jié)PWM占空比測(cè)試
【瑞薩RA6E2地奇星開(kāi)發(fā)板試用】PWM 驅(qū)動(dòng)舵機(jī)
UNO Q:開(kāi)啟Arduino的全新未來(lái)
【RA-Eco-RA6M4開(kāi)發(fā)板評(píng)測(cè)】PWM輸出
Arduino UNO Q 登陸 DigiKey,現(xiàn)已開(kāi)放預(yù)訂
【RA4E2開(kāi)發(fā)板評(píng)測(cè)】PWM 驅(qū)動(dòng)舵機(jī)
瑞芯微RK3506開(kāi)發(fā)板PWM輸入捕獲驅(qū)動(dòng)調(diào)試記錄
【RA-Eco-RA6M4開(kāi)發(fā)板評(píng)測(cè)】PWM 驅(qū)動(dòng)舵機(jī)
如何將 GPIO PWM 和 GPIO Capture 驅(qū)動(dòng)程序?qū)?Linux 內(nèi)核,實(shí)現(xiàn) PWM 輸出并檢測(cè)引腳的變化狀態(tài)?
如何用Arduino Nano/UNO R3開(kāi)發(fā)板給另一個(gè)Arduino IDE不能下載的Arduino Nano/UNO R3開(kāi)發(fā)板重新燒錄引導(dǎo)程序bootlaoder
chipKIT Uno32板的PWM引腳說(shuō)明
評(píng)論