Follower

2017年6月24日 星期六

【Arduino Lesson 3】可調光的LED

  最近小弟去了一趟旅行,不過網誌用的素材在旅行前就做好了,本來想帶著電腦邊更新部落格邊旅行,不過後來想想,玩就好好玩,等回來再更新部落格也不遲。




可調光的LED實體成果

實作目標:

  • 讓LED透過可變電阻進行亮度控制。

硬體電路:

可調光的LED硬體電路
  • 其硬體電路十分的簡單,只要組合LED元件和可變電阻器元件即可,不過在此我們需要討論兩個比較重要的概念,其一是可變電阻器的結構,其二是類比輸出輸入的概念,這兩個概念會在「研究討論」進行說明。

程式碼:

int potpin = A0 ; //類比接腳,調光必須用此
int ledpin = 11 ;
int val = 0 ; //暫存來自可變電阻的變量值
void setup()
{
  pinMode(ledpin, OUTPUT) ; 
  Serial.begin(9600) ;
}
void loop()
{
  val = analogRead(potpin) ; //讀取可變電阻的模擬值,最大輸入類比值為1024
  Serial.println(val) ; //顯示val值在Serial Monitor
  analogWrite(ledpin, val/4) ; //透過可變電阻調整LED亮度,最大輸出類比值為255
  delay(10) ;
}

實作成果:


研究討論:

  1. 可變電阻器結構:
    可變電阻器內部結構
    可變電阻器可以改變阻抗值,使得電流變大或是變小,其原理來自「歐姆定律」:V = I*R的概念,當R值(阻抗值)上升,I值(電流值)與R呈現反比,電流下降;反之亦然,而可變電阻器往左調節是降低總抗值,往右調節是增加阻抗值,中間的動片是判斷阻抗的重要依據,旁邊兩側定片可以分別連接到正極和負極。
  2. 類比輸入輸出:
類比輸入輸出 例圖
Arduino的類比輸入有2^10的解析度,也就說最高解析度可達1024,這個觀念在「Arduino Lesson 0」闡述過了,不過1024是輸入解析度,我們在操控LED必須使用輸出的解析度,而輸出解析度最高只有255,所以在調整可變電阻之時,倘若輸入解析度高於255,便會使LED呈現最高亮度,所以在此我們必須把輸入解析度1024除掉4,分別對應輸出解析度255才會使可變電阻器在調光的時候有相對的亮度呈現。

沒有留言:

張貼留言