ARDUINO_實驗3_ 類比訊號輸入(Analog)

目的   

      今日實驗室要要利用可變電阻控制Arduino版上 LED 燈的閃爍快慢。





介紹

 

  利用可變電阻Potentiometer改變所產生的電壓變化,來調整類比電壓的輸入值。

 

可變電阻樣式具有三個端子,如下圖 。


可變電阻-標號

 

  圖接腳1和接腳3分別接地和電源(相反亦可),接腳2傳輸可變電阻造成的電壓變化。

  當旋鈕順時鐘旋轉接腳1和接腳2的電阻值會升高,接腳2和接腳3的電阻值則降低。

常見的可變電阻分兩種特性:電阻成指數遞增,代號A;電阻成線性遞增,代號B。




使用材料
項次
圖片 材料名稱 數量
1 Arduino_1_thumb8_thumb Arduino載板 1
2 USB_thumb7_thumb USB連接埠 1
3 LED_2_thumb4_thumb LED燈 1
4 可變電阻
可變電阻
1
5 _thumb3_thumb 跳線 若干
6 breadboard_thumb4 麵包版 1
7 _thumb9 電阻
2k歐姆
(黑紅橙)和
220歐姆
(紅紅棕)
2




接線方式:按鈕在Arduino的實際配線法,如圖

Analog



程式
int sensorPin = 0;              // 宣告可變電阻輸入腳位為0
int ledPin = 2;                 // 宣告LED控制腳位為2
int sensorValue = 0;            // 宣告sensorValue變數,初始為0

void setup() {
  pinMode(ledPin, OUTPUT);             //設定LED腳位為輸出
}

void loop() {
    //讀取感測器的數值,儲存在sensorValue變數中
  sensorValue = analogRead(sensorPin);  
   
    //LED接腳輸出高電壓,LED亮
  digitalWrite(ledPin, HIGH);            
   
    //以sensorValue的讀值為延遲時間
  delay(sensorValue);         
   
    //LED接腳輸出低電壓,LED滅
  digitalWrite(ledPin, LOW);           

   //以sensorValue的讀值為延遲時間
  delay(sensorValue);                   
}






說明


    執行程式,並且轉動可變電阻的旋鈕,LED燈亮滅時間會有長短變化,這是受到可變電阻控制的影響。

   當可變電阻的旋鈕向右轉,LED燈亮滅間隔時間就會變長,因為類比接腳P0所接收到的電壓值增加, sensorValue值變大;相反的當可變電阻的旋鈕向左轉,LED燈亮滅間隔時間會縮短,因為類比接腳P0所接收到的電壓降低,sensorValue值變小。


    由Arduino提供的5V電壓,可透過可變電阻,改變輸入到類比接腳P0的電壓大小。
  
    由於Arduino本身具有10bit(2的”10”次方=1024)解析度的ADC轉換,也就是A(類比)轉D(數位),
  因此可以將0~5V的類比電壓值,轉換成0~1023的數位數值,方便程式作運算。


    如果類比接腳接收到電壓是0V,轉換成的數值是0;如果接收到電壓是5V,轉換成的數值是1023;如果接收到電壓是2.5V,轉換成的數值是511。
  
  程式中delay()的時間單位是毫秒,1000毫秒即1秒。
  
  類比腳位讀取訊號的範圍值是0~1023,換算成LED的亮滅延遲時間是在0~1.023秒間。
  
  Arduino的類比接腳接收到電壓值越高,從電壓轉換數位數值越高,也就代表的延遲時間越高,LED亮滅相隔時間越長,亮滅越慢。




結果


沒有留言: