FET를 설치하고 (처음에 이걸 고려 안했었다.... 겁네 조그만 공간에 꾸역꾸역 집어넣었음)
LED바를 연결....
처음에는 하이플럭스 LED 를 사용할 예정이였는데 승현이가 몇개 가져다 쓴 것도 있고....
LED 바가 생긴것도 있고....
LED 바는 3색 LED 가 3개 박혀있고 밝기도 상당한 듯 하여 이걸로 선택하였는데.....
잔상시계를 돌리니 생각보다 어둡다.....
뭐가 잘못인지....
그래서 저항을 떼고 테스트 하니 그래도 좀 밝아졌네......
데이타시트에는 LED 당 30mA 까지 사용가능하다고 써져있는데....
LED 바를 연결했을경오 17mA가 나온다.... 3개가 직렬임에도 불구하고......
LED 하나에 4V 씩 걸리는건데.....
하나당 6mA.... 이건 쫌 아닌듯......
내가 Gate에 1Kohm 을 달아서 그런가?.....
내일은 Gate에 저항을 바꿔보고. 안되면 바를 짤라서 LED를 1개 2개 동작시켜 봐야지.....
어차피 보니까 최대 120mA 까지 가능한데
Duty Ratio=1/10 Pulsse Width = 0.1ms 이면...
10us 인가?..... 10 us 16 clock 이 1us 이니까. 160 clock 인가?....
그럼 이걸 주기로 PWM 제어 해서 색 변경해도 되겠네....
이참에 아예 LED 도 파볼까나?
원본 :http://cafe.naver.com/carroty/80838
안녕하세요.
오늘은 자주 게시되는 내용이 있어서 간단한 설명을 드리려고 합니다.
AVR에서는 GPIO로 LED를 바로 컨트롤 할 수 있는데 왜 궂이 TR,FET 등 을 사용해야 하는 것인가?
이런 의문을 갖는 분이 꽤 있는것 같습니다.
AVR(ATMEGA128)의 경우 전체 핀을 통털어서 제어할 수 있는 전류는 극한 상황에서 400mA정도입니다.
하지만 AVR에서 많은 전류를 끌어서 쓸 경우에 많은 발열을 하게 되고,
내부의 ADC라든가, Internal RC오실레이터 등의 각종 기능에 영향을 주게 됩니다.
이러한 이유로 가능하면 TR등을 사용해서 부하를 제어하는게 좋습니다.
가장 구하기 쉽고, 싸고, 소전력에서 사용하기 편리한 놈으로 TOSHIBA에서 나온 2SC1815가 있습니다.
거의 동일한 호환품으로 KEC제작인 KTC3198 등 을 사용해도 유사한 결과를 나타냅니다.
이 둘은 NPN이라고 하는 구조로 되어있으며, 가격은 낱개로 구매해도 개당 50원 이하입니다.
사용 전압(Vcbo/Vceo)는 최대 60V/50V이고, 베이스 전압(Vbeo)는 최대 5V입니다.
사용가능한 컬렉터 전류(Ic)는 150mA, 베이스 전류(Ib)는 50mA입니다.
구입하게 되면 보통 "GR"급또는 "Y"급의 제품을 얻게 됩니다. 이는 모델명 바로 뒤에 표기됩니다.
의미는 증폭율에 따른 급수로써 GR급은 Hfe가 200~400정도, Y급은 Hfe가 120~240정도인 제품을 말합니다.
일단 2SC1815GR을 사용해 LED를 켜보도록 하죠.
LED는 Vf=2.2V, If=20mA의 50mW 일반 3pi LED를 사용한다고 가정합니다.
또한 20mA의 전류로는 LED의 정격 최대치에 다다르므로 밝기는 크게 떨어지지 않고
사용에 무리가 없는데다가 수명을 여유있게 잡을 수 있게 10mA로 사용하려고 합니다.
회로예는 아래와 같습니다.
R1,R2,R3은 부하에 따라 결정되는데 아래와 같이 계산하면 됩니다.
R3은 최종적으로 LED의 전류를 제한하기 위한 저항입니다.
아래 식을 사용하면 R3에 의해 LED의 사용 전류가 10mA로 제한됩니다.
V = Vcc - Vce(sat-TR) - Vf(LED)
= 5V - 0.1V - 2.2V
= 2.7V
TR의 Vce(sat)의 값과 LED의 Vf값은 각 제품의 데이터 시트에 나와있으며
시트가 없는 모델명을 모르는 그냥 LED도 대충 위와 같은 식으로 계산하시면 거의 맞습니다.
R3 = 2.7V / 10mA = 270 Ohm을 사용하면 전류 제한은 10mA가됩니다.
이 저항값은 최대 정격인 20mA를 가정할때는 135Ω이 되므로,
LED가 살아서 반짝이는 모습을 오래 보고 싶다면 135Ω보다 큰 값을 쓰도록 합니다.
R2는 입력이 하이임피던스이거나 오픈상태일때 출력을 내보내지 않기 위해 사용합니다.
MCU의 출력이 0도 아니고 1도 아닌 상태를 가질때 이 저항이 없으면 출력의 상태는 예측할 수 없습니다.
(잡음에 의해서도 LED에 불이 들어올 수 있습니다.)
만일 이 상태를 사용하지 않고 부하와 MCU의 그라운드를 공유한다면 일반적으로 생략됩니다.
R1은 MCU의 포트로부터 TR의 베이스로 들어가는 신호의 전류를 제한합니다.
최종적으로 10mA를 출력하기 위해서는 Hfe(최소값인 200)로 나눈 값인 10mA/200 = 50uA면 충분합니다.
(여기서 최소 값으로 결정하는 이유는 TR을 2개를 사도 2개의 특성이 동일하지 않기 때문에 데이터 시트에서
보증하는 Hfe에서 가장 작은 값으로 사용해야만 LED의 밝기를 균일하게 유지할 수 있습니다.)
VCC=5V에서 50uA를 입력시키기 위해서는
V = Vcc - Vbe(sat)@10mA
= 5V - 0.75V
= 4.25V,
R1 = 4.25V/50uA = 85kΩ (Y급은 51kΩ)에 의해서 최소 목표를 달성합니다.
하지만 최초 사용한 LED가 20mA정격이었으므로, 좀 더 밝게 사용하기 위해서 R3으로 120옴을 사용했을 때에
20mA를 충분히 흘려줄수 있게 설계해야 합니다. (부하의 용량과 특성에 따라 다르지만 R3에 의해 전류가
제한되기 때문에 20mA로 설계해도 최종 출력 전류는 R3으로 설정한 값으로 흐릅니다.)
저항을 삽입하지 않았을 경우에는 약 0.7V와 Vcc가 쇼트된것과 마찬가지 상태가 되며,
MCU와 TR에서 많은 열이 발생됩니다. 이 저항값은 설계값+오차(5%)보다 작기만 하면 되지만
작을수록 Ib가 많이 흐르기 때문에 TR에서 쓸데없는 전력을 소비하지 않도록 계산하는게 좋습니다.
V = 5 - 0.8 = 4.2V, R1 = 4.2V / 100uA = 42kΩ 을 사용하면 최대 20mA까지 사용할 수 있는
드라이브 회로가 됩니다. 하지만 42kΩ과 같은 저항은 구하기가 힘이 듭니다. 해서 , 보통은 33kΩ같은
계산값보다는 작고 자주 쓰는 저항값의 저항을 쓰게 됩니다.이때의 계산은 아래와 같습니다.
V = 5 - 0.8 = 4.2V, Ib = 4.2V / 33k = 127uA로 Hfe가 200일때 약 25mA까지 흐를 수 있습니다.
(Y급은 20k에서 25mA)
위의 계산에 의하면 일반적인 LED를 켜기 위해서는 R1은 33kΩ, R2는 필요없고 R3은 240Ω으로 하면
간단히 ON/OFF 제어가 가능함을 알 수 있습니다.
예제1. 만일 2.2V, 20mA, 50mW의 LED2개를 병렬 구동하는 3.3Vcc환경이라면?