2010年12月23日 星期四

Arduino 筆記 - Lab4 使用可變電阻調光

實驗目的
使用可變電阻 (potentiometer) 控制 LED 的燈光亮度,達到調光的目的。
材料
  • 麵包板 x 1
  • Arduino 主板 x 1
  • LED x 1
  • 220 ohm 電阻 x 1
  • 可變電阻 x 1
  • 單心線 x N
接線
  • LED 接到 pin9 和 GND,長腳(陽極)串接一顆 220 ohm 電阻到 pin9,短腳(陰極)直接接到 GND
  • 可變電阻中間腳位接到類比輸入(Analog Input) pin3,剩下的兩支腳位,一支接到 5V,另外一支接到 GND
image
電路圖
image
程式碼

potentiometer.pde



說明:
  • L01: 宣告可變電阻所用的類比輸入腳位
  • L02: 宣告 LED 燈號腳位
  • L05: 設定 SerialPort 的傳輸速率,鮑率為 9600 bps (bit per second)
  • L09: 讀取可變電阻讀值並且放到 sensorValue 變數裏
  • L10: 使用 Serial.println(sensorValue, DEC) 把電阻值列印到 SerialPort。DEC 代表以十進位顯示數字
  • L12: analogRead() 讀進來的是一個 10 位元的數值,值域為 0 到 1023,由於 analogWrite() 的參數只能接受 0 到 255 的數值,所以得將 sensorValue 除以 4,讓 sensorValue 的數值從 0-1023 等比例縮小到 0-255 的範圍。
範例照片/影片
編譯好程式,上傳到 Arduino 後,按下 Serial Monitor image 這個按鈕,就會看到 COM Port 不斷收到一串範圍介於 0 到 1023 的數值,這些數值與可變電阻是相關聯的。如果旋轉可變電阻,對應的數值也會跟著改變,而且 LED 燈號的亮度也會跟著改變。
image
Youtube 上正好有段示範利用可變電阻控制 LED 燈光亮度的影片,我們來看看他的示範:

1 則留言:

  1. 您好 我把壓力感測器取代可變電阻,沒有施加力量的情況壓力感測器電阻非常大,LED沒有亮可是我發現 Serial Monitor裡的數值卻一直保持在0,不是應該保持在最大值1023嗎?請問一下為什麼會這樣呢
    (我使用的是相同的程式碼)

    回覆刪除

注意:只有此網誌的成員可以留言。