切換
舊版
前往
大廳
主題

[arduino學堂]arduino基礎程式教學(下)

白鷗 | 2020-02-15 14:44:18 | 巴幣 6 | 人氣 830

今天的這篇要來介紹arduino的類比讀取PWM輸出


事不宜遲,馬上進入主題

首先是PWM輸出,有些人可能不知道PWM是甚麼,可以參考之前的這篇(或是自己去google)

這個函式的功能有點類似那種耳機音響的DAC的感覺,不過又不太一樣,DAC出來的是真正的類比訊號,PWM只是用調整1跟0的時間比例來模擬出類似的感覺
上面這就是arduino的PWM輸出函式,需要注意的是,只有接腳編號前面有波浪符的才能輸出PWM訊號喔~像是Arduino Uno就是3、5、6、9、10、11這幾支接腳

而PWM輸出的範圍是0~2550對應到0V,255則對應到5V,在這個範圍內的值接可任意選擇(不過只能是整數,甚麼3.14或是根號2之類的都不行)

下面是實際的例子:
輸出0:
輸出50:
輸出255:
可以看的出來,輸出50時雖然燈有亮,但亮度還是不及輸出為255時




接著來看類比讀取的部分
這個函式跟前面數位讀取其實滿像的,不過digitalRead()只會讀到0跟1,而analogRead()讀出來的值則會從0到1023(對應到0V~5V)
(透過程式也能讓最大值1023對應的電壓變為內建電壓或是AREF讀到的電壓,不過因為很少用所以這裡就沒特別提了)

還有另一點就是,能使用analogRead()的接腳只有A開頭的那些而已(像Arduino Uno就是A0~A5)


直接來看例子吧,這裡是直接將A0讀到的值輸出到9號腳的LED,不過因為analogRead()讀到的值是0~1023,需要將讀到的值除以4才能符合PWM的輸出範圍0~255

在電路的部分,LED照舊,不過我們加入了一顆可變電阻作為類比輸入,在可變電阻的左右兩端各接上5V與GND,然後中間那隻腳就接上A0,這樣就利用了分壓定理做出了簡易的類比輸入源

這是實作的影片連結,可以看的出來,當可變電阻轉向左邊,LED就變暗甚至暗掉,轉向越右邊LED就越亮

那麼這篇就到這裡啦(好快!)

下一篇就來講序列埠傳輸吧!



創作回應

至上大天神超星宿及月
之前計概好像也在教這塊板子,但是我都沒有認真聽XD
2020-02-15 15:28:56
白鷗
喂!給我認真上課啊
2020-02-15 15:31:31
pentel
很棒的教學 這東西其實我也玩過 雖然我學校那時剛好沒教這個
arduino好用就是因為很多功能都幫你寫好了
只需要套函數庫,網路也不少特別用途已寫好的函數庫可以利用w
2020-02-15 18:25:49
白鷗
嘿啊,傳說中的裝x神器,基本上有一點c語言概念+基本電學就能做出許多不錯的東西了
2020-02-15 20:01:34
小路(,,・ω・,,)
很棒的教學文 我看不懂
2020-02-18 18:35:20

更多創作