【Arduino入門】Arduino可變電阻教學

在”如何用按鈕開關控控LED燈中實物接線“段落提到LED燈與Arduino連接時,因為5V會導致LED燈燒毀,所以必須在之間加上一個220歐姆值電阻,也可以選用330歐姆值,只是LED燈會較暗點!大家有沒有注意到這電阻值的增加會造成LED燈明暗有變化耶!但手動換電阻來得到自己要的明亮度,這樣子實在很麻煩,有沒有一種零件可以調整電阻值呢?

答案是有的,這零件稱為可變電阻或電位器,它像是一個旋鈕的類比控制元件,旋轉約270~300度之間,就可以調整電阻值由小至大,而使得被控制端元件,有不同的變化,如LED燈明暗或音響的聲音大小。
可變電阻內部構造與接腳說明那我們話不多說,就開始本篇Arduino可變電阻教學的說明。

實驗準備材料

  • 旋鈕式可變電阻 x 1顆
  • LED燈 x 1顆
  • 220Ω電阻 x 1顆
  • 杜邦線 x 5條

設計邏輯想法

Arduino類比輸入(analogRead)的範圍值介於0~1023之間,而類比輸出(analogWrite)則介於0~255之間。為了調整數值範圍,我們可以將輸入值除以4,或者用map函數調整,使用旋鈕可變電阻,讓電阻值變化,讓LED燈能隨著明暗變化。

map函數說明:
調整結果=map(原始變數,起始值,結束值,起始值,結束值);
byte val = map(originValue, 0, 1023, 0, 255);

程式流程圖

VR_Learning

程式設計

				
					byte vrPin = A0;      //設定可變電阻A0腳位變數為vrPin
byte ledPin = 11;     //設定LED腳位11變數為ledPin
int originValue = 0;  //類比輸出值
byte val = 0;         //儲存轉換範圍值

void setup() {
  // put your setup code here, to run once:
  pinMode(ledPin, OUTPUT);  //設定ledPin為輸出
  pinMode(vrPin, INPUT);    //設定vrPin為輸入
}

void loop() {
  // put your main code here, to run repeatedly:
  originValue = analogRead(vrPin);          //將vrPink在類比讀取到的值付與給originValue
  val = map(originValue, 0, 1023, 0, 255);  //使用map函數將類比輸入值與輸出值做比率計算
  analogWrite(ledPin, val);                 //將val的值以類比輸出給ledPin,使LED明暗變化
}

				
			

實物接線

VR_Learning_Picture

實物執行影片

結論

在此篇我們運用了Arduino的(analog)類比輸出(Write)/輸入(Read)指令,並使用這map函數將讀取數值與輸出比率換算,取得此值來做為LED燈輸出功率大小,以觀察到這可變電阻控制LED燈明暗變化。

本篇參考了Arduino官網資料,連結如下:https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/

優質YouTube Paul McWhorter教學影片,連結分享如下:
https://youtu.be/7wKdxsvXAFo?si=je_JjSoGGXZ35Yfs

有主意,就動手!下篇見~

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

返回頂端