|
Pulse Width Modulation 就是通常所說的PWM,譯為脈沖寬度調(diào)制,簡稱脈寬調(diào)制。脈沖寬度調(diào)制(PWM)是一種對模擬信號電平進行數(shù)字編碼的方法,由于計算機不能輸出模擬電壓,只能輸出0 或5V 的的數(shù)字電壓值,我們就通過使用高分辨率計數(shù)器,利用方波的占空比被調(diào)制的方法來對一個具體模擬信號的電平進行編碼。PWM 信號仍然是數(shù)字的,因為在給定的任何時刻,滿幅值的直流供電要么是5V(ON),要么是0V(OFF)。電壓或電流源是以一種通(ON)或斷(OFF)的重復(fù)脈沖序列被加到模擬負載上去的。通的時候即是直流供電被加到負載上的時候,斷的時候即是供電被斷開的時候。只要帶寬足夠,任何模擬值都可以使用PWM 進行編碼。輸出的電壓值是通過通和斷的時間進行計算的。
輸出電壓=(接通時間/脈沖時間)*最大電壓值
圖片3.png (159.21 KB, 下載次數(shù): 73)
下載附件
2018-7-26 09:07 上傳
PWM 被用在許多地方,調(diào)光燈具、電機調(diào)速、聲音的制作等等。
下面介紹一下PWM 的三個基本參數(shù):
1、脈沖寬度
2、脈沖周期(1 秒內(nèi)脈沖頻率個數(shù)的倒數(shù))
3、電壓高度(例如:0V-5V)
圖片4.png (96.56 KB, 下載次數(shù): 93)
下載附件
2018-7-26 09:08 上傳
Arduino 控制器有6 個PWM 接口分別是數(shù)字接口3、5、6、9、10、11,這次我們就來完成一個用可調(diào)電阻輸入模擬電壓,單片機是別后產(chǎn)生響應(yīng)比例的PWM波來控制小燈的亮度。
需要的元器件有:
可調(diào)電阻*1
直插LED*1
220Ω直插電阻
面包板*1
面包板跳線*1 扎
電位計即為模擬值輸入我們接到模擬口,小燈我們接到PWM 接口上,這樣通過產(chǎn)生不同的PWM 信號就可以讓小燈有亮度不同的變化。
圖片5.png (35.4 KB, 下載次數(shù): 80)
下載附件
2018-7-26 09:08 上傳
按照下圖鏈接好電路后,就可以開始編寫程序了。
圖片6.png (91.52 KB, 下載次數(shù): 80)
下載附件
2018-7-26 09:09 上傳
參考源程序如下:
int potpin=0;//定義模擬接口0
int ledpin=11;//定義數(shù)字接口11(PWM 輸出)
int val=0;// 暫存來自傳感器的變量數(shù)值
void setup()
{
pinMode(ledpin,OUTPUT);//定義數(shù)字接口11 為輸出
Serial.begin(9600);//設(shè)置波特率為9600
//注意:模擬接口自動設(shè)置為輸入
}
void loop()
{
val=analogRead(potpin);// 讀取傳感器的模擬值并賦值給val
Serial.println(val);//顯示val 變量
analogWrite(ledpin,val/4);// 打開LED 并設(shè)置亮度(PWM 輸出最大值255)
delay(10);//延時10ms
}
|
評分
-
查看全部評分
|