Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz

關於用PWM+可變電阻去控制LED的亮度的問題

查看數: 4378 | 評論數: 2 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發佈時間: 2011-12-11 15:38

正文摘要:

大家好 這個問題是這樣的, 我用的是3mm的食人魚led, 當我直接用電源供應器接一個led要量測記錄led的電壓電流時, 發現它需一加到3V以上才能點亮, 而其原理就是他的順向電壓的關係 然後, 我接著用arduino uno 在digit ...

回復

nichal 發表於 2011-12-11 22:59:04
這樣量是有問題的

PWM所造出來的有效電壓是一個理論值
實際上跟電路的配接有關係

PWM產生50%的ON跟50%的OFF
造出來的效果理論上等同於供應一半的供應電壓
至於為什麼要用PWM的方式去驅動?
概念就是因為2.5V並不能讓LED點亮
所以我就用5V開一段時間, 再關掉一段時間
如果這兩個時間間隔相同
理論上亮度就會等同於供應2.5V去點亮了
不過要這樣用有一個前提
就是開關的頻率要讓眼睛分辨不出來
人一秒鐘最快好像可以看到16次閃爍
超過16次就會因視覺殘留看不到閃爍
vegewell 發表於 2011-12-11 20:27:35
回復 1# jeffliao


    調整PWM的週期控制led閃爍的間隔時間:
http://arduino.tw/articlesindex/electricity/206-whatspwm.html
http://blog.21ic.com/user1/5475/archives/2009/58014.html
----------------------------------------------------
int sensorReading; // create a variable to store the
// value of variable resistor
int ledValue; // create a variable to store the
// value of led
void setup() {
}
void loop() {
// get the value of variable resistor and store in sensorReading
// it has a range between 0 - 1023
sensorReading = analogRead(3);
// however value for LED can only be 0 to 255, so we have to
// scale down the sensorReading using 「map」 function
ledValue = map(sensorReading, 0, 1023, 0, 255);
// send the signal to pin 9 (PWM) to control intensity of the LED
analogWrite(9, ledValue);
}

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-9-29 07:53 , Processed in 0.158618 second(s), 12 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表