實驗說明:
- Arduino Uno R3 總共有6 個PWM Pins,分別為3、5、6、9、10、11 Pins。
- 本章節將完成一個用可變電阻控制的LED小燈。
- 可變電阻器可經由滑動(轉動)而改變滑動端與兩個固定端間電阻值的電子零件,可變電阻沒有分正負級,中間接上類比訊號A0~A5 Pin即可。
材料:
- Arduino Uno R3
- USB 傳輸線
- 直插LED
- 220Ω直插電阻
- 麵包板
- 麵包板跳線
- 可變電阻
程式:
- 在編寫程序的過程中,我們會用到類比值寫入analogWrite(PWM Pin,類比值)函數,對於類比值寫入analogWrite()函數,此函數用法也很簡單,大家可以理解為此程序是在類比值讀取的實驗程序中多加了將類比值賦給PWM Pin 這一部分,下面給大家提供一段參考源程序。
int potpin=0;
int ledpin=11;
int val=0;
void setup()
{
pinMode(ledpin,OUTPUT);
Serial.begin(9600);
}
void loop()
{
val=analogRead(potpin);
Serial.println(val);
analogWrite(ledpin,val/4);
delay(10);
}
程式說明:
- 第 1 列定義類比接口0Pin 。
- 第 2 列定義數位接口11Pin(PWM輸出) 。
- 第 3 列暫存來自傳感器的變量數值。
- 第 6 列定義數位接口11Pin為輸出。
- 第 7 列設置鮑率每秒9600。
- 第 11 列讀取傳感器的類比值並賦值給val 。
- 第 12 列顯示val變數值。
- 第 13 列打開LED 並設置亮度(PWM 輸出最大值255)
- 第 14 列延遲0.01 秒。
我們在本實驗中讀取可變電阻的類比值信號並將其賦給PWM Pin使LED燈產生相應的亮度變化,並在序列埠監控視窗上顯示出讀取的類比值。