Board logo

標題: 啊...我學識用 Arduion 控制共陽 RGB LED 了 [打印本頁]

作者: dulllou    時間: 2009-6-6 01:25     標題: 啊...我學識用 Arduion 控制共陽 RGB LED 了

原來 digital output pin 也可以用來作陰極用....只要在 output pin 用 PWM 來造出一個低於 5V 的 voltage, 令陽極來的 5V DC 可以在 digital output pin 離開就可以了  (不過不知到這樣做會不會損害  MCU 呢  ?)

Youtube Video , please CLICK HERE
DSCF4266.jpg
DSCF4268.jpg

[ 本帖最後由 dulllou 於 2009-6-6 01:51 編輯 ]

圖片附件: DSCF4266.jpg (2009-6-6 01:25, 128.15 KB) / 下載次數 237
https://www.hkepc.com/forum/attachment.php?aid=864907&k=5375efd51cbfe15ade0b8c208f7c67c1&t=1781383083&sid=4sHoRkvZZ9



圖片附件: DSCF4268.jpg (2009-6-6 01:25, 131.67 KB) / 下載次數 200
https://www.hkepc.com/forum/attachment.php?aid=864909&k=de7a2c6c949171ad8e0da40d2f8442de&t=1781383083&sid=4sHoRkvZZ9


作者: dulllou    時間: 2009-6-6 01:56

聽日去買個乒乓波做 diffuser 試下先

漸變 RGB 的 Code  (共陽)

int redPin = 5;
int greenPin = 6;
int bluePin = 3;

void fadeUp(int pin, int d = 100)
{
  int i;
  for (i = 255; i >= 0; i--)
  {
    analogWrite(pin, i);
    delay(d);
  }
}


void fadeDown(int pin, int d = 100)
{
  int i;
  for (i = 0; i <= 255; i++)
  {
    analogWrite(pin, i);
    delay(d);
  }
}

void setup()
{
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);

  analogWrite(redPin, 255);
  analogWrite(greenPin, 255);
  analogWrite(bluePin, 255);

  fadeUp(bluePin);
}

void loop()
{
  fadeUp(greenPin);
  fadeDown(bluePin);
  fadeUp(redPin);
  fadeDown(greenPin);
  fadeUp(bluePin);
  fadeDown(redPin);
}

[ 本帖最後由 dulllou 於 2009-6-6 08:57 編輯 ]
作者: BurnDuck    時間: 2009-6-6 02:45

即係電流流返落 digital pin?
如果我冇理解錯, input / output <40mA 好似冇問題
有錯請插
作者: jackli    時間: 2009-6-6 06:44

咁即係唔可以插多過兩粒

[ 本帖最後由 jackli 於 2009-6-6 06:44 編輯 ]
作者: dulllou    時間: 2009-6-6 08:56

原帖由 jackli 於 2009-6-6 06:44 發表
咁即係唔可以插多過兩粒


唔同時著咪插幾多粒都可以囉...
作者: 燕飛    時間: 2009-6-6 09:09

原帖由 dulllou 於 2009-6-6 08:56 發表


唔同時著咪插幾多粒都可以囉...

no
you need to learn how to control
作者: pupil    時間: 2009-6-6 11:53

原帖由 dulllou 於 2009-6-6 01:25 發表
原來 digital output pin 也可以用來作陰極用....只要在 output pin 用 PWM 來造出一個低於 5V 的 voltage, 令陽極來的 5V DC 可以在 digital output pin 離開就可以了  (不過不知到這樣做會不會損害  MCU 呢  ?)

Youtube Video , please CLICK HERE
864907
864909


呢個係正常做法, sink rather than source, is better.
作者: funghome    時間: 2009-6-6 12:01

analogWrite(pin, i);=PWM????
作者: edwardfcy    時間: 2009-6-6 12:42     標題: 回覆 7# 的帖子

但係佢最大可接受的Sink-current是幾大?接多幾粒是否可以加Open-drain line driver IC就OK呢?
作者: rossi_lao    時間: 2009-6-6 15:45

通常MCU系20~25mA,有d加强噶MCU脚可以去到40~50mA
作者: dulllou    時間: 2009-6-6 15:48

原帖由 funghome 於 2009-6-6 12:01 發表
analogWrite(pin, i);=PWM????


http://arduino.cc/en/Reference/AnalogWrite

作者: pupil    時間: 2009-6-6 16:36

原帖由 edwardfcy 於 2009-6-6 12:42 發表
但係佢最大可接受的Sink-current是幾大?接多幾粒是否可以加Open-drain line driver IC就OK呢?


一般來說, mcu i/o pins sink 嘅能力(current)係強過 source 嘅能力, 所以 sink design 係好 d. 如果 current 大, 當然要 driving circuit 喇. 一般 i/o pins 都係幾十 mA.
作者: dulllou    時間: 2009-6-6 17:10

原帖由 edwardfcy 於 2009-6-6 12:42 發表
但係佢最大可接受的Sink-current是幾大?接多幾粒是否可以加Open-drain line driver IC就OK呢?


You can sink 60mA at 25C and get down to a voltage of 1.5v.

That means sinking current you will not get the full 5v across the load but 5 - 1.5 = 3.5v

Sinking 40mA gets you down to under 1V on the output where as 20mA gets the output voltage down to 0.5v
作者: pupil    時間: 2009-6-6 18:03

原帖由 dulllou 於 2009-6-6 17:10 發表


You can sink 60mA at 25C and get down to a voltage of 1.5v.

That means sinking current you will not get the full 5v across the load but 5 - 1.5 = 3.5v

Sinking 40mA gets you down to under 1V on the ...


The graphs on the datasheet show the above figures, BUT
the ABSOLUTE MAX DC Current per I/O pin is 40mA only.

[ 本帖最後由 pupil 於 2009-6-6 18:34 編輯 ]
作者: edwardfcy    時間: 2009-6-6 19:27     標題: 回覆 12# 的帖子

咁即係要加line driver先可以同時接幾粒LED!
作者: pupil    時間: 2009-6-6 19:34

原帖由 edwardfcy 於 2009-6-6 19:27 發表
咁即係要加line driver先可以同時接幾粒LED!


用粒 transistor (or even darlington) 都得啫, 唔係咩都要 ic 嘅.
作者: edwardfcy    時間: 2009-6-7 01:12     標題: 回覆 16# 的帖子

咁咪1粒LED一個3極管,如果切5X 7既 MATRIX咪成12粒Transistor!咁係咪用IC會好D呢?C_HING:funk: :funk:
作者: gulakpi    時間: 2009-6-7 10:17

Very interesting!  
作者: 燕飛    時間: 2009-6-7 10:26

原帖由 edwardfcy 於 2009-6-7 01:12 發表
咁咪1粒LED一個3極管,如果切5X 7既 MATRIX咪成12粒Transistor!咁係咪用IC會好D呢?C_HING:funk: :funk:

u may consider the current need
作者: pupil    時間: 2009-6-7 12:20

原帖由 edwardfcy 於 2009-6-7 01:12 發表
咁咪1粒LED一個3極管,如果切5X 7既 MATRIX咪成12粒Transistor!咁係咪用IC會好D呢?C_HING:funk: :funk:


For matrix, you will arrange the LEDs in rows and columns, and 1 transistor for each row/column only.
作者: edwardfcy    時間: 2009-6-7 17:43     標題: 回覆 20# 的帖子

C-HING,我諗你誤解我意思,如果好似樓主用PWN玩法接LED-MATRIX,咁即係控制佢獨立每粒既光暗,C-HING你既方法控制單色MATRIX簡單的著和熄就無問題,但如樓主般用法控制同時著超過兩粒LED以上的變色應用就應該不行了。
作者: 燕飛    時間: 2009-6-7 17:54

原帖由 edwardfcy 於 2009-6-7 17:43 發表
C-HING,我諗你誤解我意思,如果好似樓主用PWN玩法接LED-MATRIX,咁即係控制佢獨立每粒既光暗,C-HING你既方法控制單色MATRIX簡單的著和熄就無問題,但如樓主般用法控制同時著超過兩粒LED以上的變色應用就應該不行了。

用一個NPN 一個PNP
就得了
作者: dulllou    時間: 2009-6-7 17:55

原帖由 燕飛 於 2009-6-7 17:54 發表

用一個NPN 一個PNP
就得了


請問可以詳細一點麼 ?
看來是很重要的技巧
作者: 燕飛    時間: 2009-6-7 18:01

LE2D.png
THis is ok

[ 本帖最後由 燕飛 於 2009-6-7 18:04 編輯 ]

圖片附件: LE2D.png (2009-6-7 18:04, 2.96 KB) / 下載次數 151
https://www.hkepc.com/forum/attachment.php?aid=866172&k=d7e5d3fc042d195c4187bb421d9592a6&t=1781383083&sid=4sHoRkvZZ9


作者: edwardfcy    時間: 2009-6-7 18:08     標題: 回覆 24# 的帖子

咁一粒單色LED用2粒三極管,c-hing咁5乘7既MATRIX共需用多少呢?但如果是1粒LED可出3隻色又是否可行呢?Anyway Thanks!
作者: 燕飛    時間: 2009-6-7 18:16

原帖由 edwardfcy 於 2009-6-7 18:08 發表
咁一粒單色LED用2粒三極管,c-hing咁5乘7既MATRIX共需用多少呢?但如果是1粒LED可出3隻色又是否可行呢?Anyway Thanks!

5 X 7
睇Common Cathode 定anode  
不過係用5X1+7X1 個IO
仲有出RGB的LED 最少4 隻腳

[ 本帖最後由 燕飛 於 2009-6-7 18:17 編輯 ]
作者: dulllou    時間: 2009-6-7 18:31

原帖由 燕飛 於 2009-6-7 18:01 發表
866172
THis is ok


要再咀嚼下先....暫時未睇得閒
作者: edwardfcy    時間: 2009-6-7 18:36     標題: 回覆 26# 的帖子

係呀!正如你所說RGB的LED要4隻腳,每隻腳1隻3極管=用4隻三極管for一粒LED。SO 5 X 7-MATRIX即是要12乘4咁多粒3極管,所以我問先前果位C-HING用driver IC在這個CASE上是否比較簡單些!
作者: 燕飛    時間: 2009-6-7 18:47

原帖由 edwardfcy 於 2009-6-7 18:36 發表
係呀!正如你所說RGB的LED要4隻腳,每隻腳1隻3極管=用4隻三極管for一粒LED。SO 5 X 7-MATRIX即是要12乘4咁多粒3極管,所以我問先前果位C-HING用driver IC在這個CASE上是否比較簡單些!

可以common 其中一組來用
ie. 5+ 7x3 / 5x3+7





歡迎光臨 電腦領域 HKEPC Hardware (https://www.hkepc.com/forum/) Powered by Discuz! 7.2