日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pwm原理及arduino使用pwm教程详解(超详细超基础)

發(fā)布時間:2024/3/7 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pwm原理及arduino使用pwm教程详解(超详细超基础) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 前言
  • 一、PWM到底是什么
  • 二、arduino使用PWM
  • 總結


前言

此篇文章以一個通俗的方式帶你了解PWM信號,寫得非常詳細和基礎,但是在實際arduino編程中也夠用了。如果有瑕疵的地方歡迎大家在評論區(qū)留言,我將及時改正,如果覺得寫的不錯的話也不要忘了點贊吖~


一、PWM到底是什么

????PWM的專業(yè)解釋叫做脈沖寬度調(diào)制,是不是感覺很抽象,其實我剛開始學的時候也感覺比較抽象,所以我們就先不糾結這個啦,來我們換一種方法來認識PWM信號。(大佬可以略過了,因為下面講的很基礎繁瑣)

????我們來先提出一個問題,假設你有一塊開發(fā)板,開發(fā)板的一個引腳連接了一個LED小燈,我們想控制LED小燈的亮度(控制電機轉(zhuǎn)速也行,反正哪樣方便就哪樣),你作為一個開發(fā)者,你會怎么來實現(xiàn)呢?

????要控制LED小燈的亮度,那么只需要控制輸入電壓就行了,當輸入電壓比較高的時候,LED就較亮,當輸入電壓比較低的時候LED亮度較弱。

????所以此刻你想到的可能是通過設置LED引腳的電壓大小來控制LED小燈的亮度。嗯,好像也對。。但是如果只有這樣簡單那我們還說什么PWM。問題出在哪兒呢?

????實際上要想控制引腳的電壓高低并不是那么容易的事情,很多開發(fā)板都沒有能直接控制引腳電壓的功能。這種情況下,引腳的電壓只能是高電平或者低電平這兩個值,所以LED小燈要么只能亮,要么只能不亮。

????既然我們不能控制引腳的電壓,有想控制LED小燈的亮度,那只能尋找其他辦法啦。好了好了,再不說PWM的話,想必你們也要不耐煩啦。下面就有請PWM登場。

????下圖是三個信號,信號1一直保持高電平,信號2一直保持低電平,如果這兩個信號接到LED小燈上,那可以很容易的想到:信號1的情況下LED保持亮,信號2的情況下LED熄滅。信號3其實就是一個典型的PWM信號啦。可以看到信號3是不停的在高電平和低電平之間跳動,那么在這種情況下LED小燈會怎么樣呢?

????聰明的你應該已經(jīng)想到啦,在信號3的情況下,LED小燈是不斷閃爍的,可以在實際生活中PWM信號的頻率都很高,當頻率很高的時候,我們?nèi)庋劬筒煊X不到LED小燈在閃爍了,此時看到的就是LED小燈常亮,不同的是LED小燈雖然是常亮,但是亮度有信號1情況下那么強嗎?當然沒有啦。

????總結一下,信號1情況下LED小燈一直亮,信號2情況下LED小燈熄滅,信號3也就是PWM信號下,LED小燈也處于亮的狀態(tài),只是亮度稍弱。

????堅持一下,下面是PWM信號的重中之重。我們來看另外3個PWM信號:

????發(fā)現(xiàn)這三個信號的不同點和相同點了嗎?先來看相同點吧,是不是周期是一樣的,換句話說這三個信號的頻率是一樣的,那不同點呢,就是在一個周期T里面,高電平和低電平所占的百分比是不一樣的。如果用這三個信號來驅(qū)動LED小燈,LED亮度一樣嗎,不一樣的話,哪個亮度最強?

????相信你已經(jīng)知道了,同樣頻率的信號4、信號5、信號6,它們驅(qū)動LED小燈的亮度是不一樣的。亮度依次是:信號6 > 信號5 信號4,為什么會出現(xiàn)這種情況呢,因為高電平占的百分比不一樣

????高電平的百分比其實有個專業(yè)術語叫做占空比,即是指在一個脈沖循環(huán)內(nèi),通電時間相對于總時間所占的比例。舉個例子,上面的三個信號假設周期為1ms,信號4的占空比為20%,那么也就是說在1ms內(nèi),高電平占了0.2ms。懂了吧,這個就是占空比。占空比不一樣,LED小燈的亮度就不一樣,占空比越高,LED小燈就越亮。下面是不同占空比的信號對比。

來總結一下吧,PWM信號其實就是一種占空比可以調(diào)節(jié)的信號,其實就是用占空比的調(diào)節(jié)來達到類似于模擬信號的效果。占空比越高,其效果就越強。

二、arduino使用PWM

如果你只是想知道PWM信號是什么,那么就不用往下看啦

  • 語法

????arduino里面可以使用函數(shù)analogWrite()來實現(xiàn)PWM輸出。具體用法為:

analogWrite(pin, value)`//pin: 設置引腳編號 //value: 設置PWM信號強度,value介于0和255之間,當value為255時占空比最大,當value為0時占空比最小
  • 示例

????將LED小燈的正極串聯(lián)一個電阻接到arduino開發(fā)板的9引腳,負極連接到arduino開發(fā)板的GND引腳,上傳下面代碼:

int ledPin = 9; //LED小燈連接的引腳 int val = 0; // LED小燈亮度void setup() {pinMode(ledPin, OUTPUT); // sets the pin as output }void loop() {for(val=0;val<255;val++){analogWrite(ledPin, val); // 設置PWM輸出,val越大,PWM占空比越大,led越亮delay(10);//延遲}for(val=255;val>=0;val--){analogWrite(ledPin, val); // 設置PWM輸出,val越大,PWM占空比越大,led越亮delay(10);//延遲}delay(1000); }

上傳代碼后就可以看到LED小燈由暗變亮,再由亮變暗啦。

總結

????此文首先演示了PWM信號的原理,再從實際角度出發(fā)演示了arduino中如何使用PWM信號。真心希望能幫到大家,不足的地方望大家指正呀。

總結

以上是生活随笔為你收集整理的pwm原理及arduino使用pwm教程详解(超详细超基础)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。