답변:
못된! :-). 그들이 저항을 사용한다고 말하면 좋은 이유가 있습니다! 지금 끄세요!
저항은 LED의 전류를 제한하기 위해 존재합니다. 그것을 생략하면 전류 제한은 Arduino의 출력에서 가져와야하며 좋아하지 않습니다. 저항이 무엇인지 어떻게 알 수 있습니까? 옴의 법을 알고 있습니까? 그렇지 않은 경우 큰 글자로 적어 두십시오.
전압은 전류와 저항을 곱한 값과 같습니다. 아니면 말할 수 있습니다
그건 같은거야. 알고있는 전압 : Arduino는 5V에서 작동합니다. 그러나 모든 것이 저항을 넘어서는 것은 아닙니다. 또한 LED에는 전압 강하가 있으며 일반적으로 빨간색 LED의 경우 약 2V입니다. 따라서 저항에는 3V가 남아 있습니다. 일반적인 표시기 LED의 공칭 전류는 20mA입니다.
Arduino Uno는 ATmega328 마이크로 컨트롤러를 사용합니다 . 데이터 시트에 따르면 모든 I / O 핀의 전류는 일반적으로 절대 최대 정격이라고 알려진 40mA를 초과하지 않아야합니다. 전류를 제한 할 것이 없기 때문에 출력 트랜지스터의 저항은 (낮습니다!)입니다. 전류가 40mA보다 높을 수 있으며 마이크로 컨트롤러가 손상 될 수 있습니다.
편집
ATmega의 데이터 시트에서 다음 그래프는 전류 제한 저항없이 LED를 구동하면 어떻게되는지 보여줍니다.
부하가 없으면 출력 전압은 예상대로 5V입니다. 그러나 전류가 높을수록 출력 전압이 낮아질수록 매 4mA 부하마다 약 100mV가 떨어집니다. 내부 저항은 25 입니다. 그때
그래프는 그렇게 멀리 가지 않고 저항은 온도에 따라 상승하지만 전류는 매우 높게 유지됩니다. 데이터 시트는 절대 최대 정격으로 40mA를 제공했습니다. 당신은 세 번 있습니다. 이 것입니다 확실히 당신이 오랜 시간 동안이 작업을 수행 할 경우, I / O 포트를 손상. 그리고 아마도 LED도 마찬가지입니다. 20mA 표시기 LED의 절대 최대 정격은 30mA입니다.
줄거리,
나는 당신이 무엇을하고 있는지 알지 못한다면 저항없이 LED를 구동하는 것이 권장되지 않는다고 말해야합니다. 그러나 LED의 동작을 이해하면 저항없이 안전하게 구동 할 수 있습니다. 사실, 전류 제한 저항없이 LED를 구동하는 것이 종종 더 좋습니다.
왜 저항없이 LED를 구동 하시겠습니까? 회로를보다 에너지 효율적으로 만들기 위해 간단합니다.
PWM을 일정한 듀티 사이클로 설정하여 LED를 구동해야합니까 (즉, 평균 전압 1.7V를 달성하기 위해 34 % 듀티 사이클에서 5V PWM)?
예, 아니오 PWM을 사용하면 특정 전압을 적용 할 수있을뿐 아니라 (주의 할 경우) 더 좋은 방법이 있습니다. PWM 방식을 사용할 때 걱정할 사항.
참고 : 전류 스파이크 지속 시간이 짧으면 모든 구성 요소가 최대 정격 이상의 임시 전류 스파이크를 안전하게 처리 할 수 있습니다 . 일부 구성 요소는 다른 구성 요소보다 더 관대하며 운이 좋으면 구성 요소의 데이터 시트에서 전류 급상승을 얼마나 잘 처리 할 수 있는지 지정합니다.
참고 : PWM을 평균화하고이 문제를 해결하기 위해 커패시터를 회로에 추가 할 수 있습니다.
에이. 주변 온도의 변화. LED가 포함 된 닫힌 상자에 모터 드라이버, 전압 조정기 등이있는 경우 어떻게됩니까? 다른 구성 요소가 인클로저 내부의 주변 온도를 25C에서 50C로 올리는 것은 드문 일이 아닙니다. 이렇게 온도 가 상승 하면 LED, 전압 조정기 등의 동작이 변경됩니다. 일단 안전한 1.7V는 더 이상 1.7V가 아니며 2.5V에서 프라 이어링에 사용 된 LED는 이제 2.2V에서 프라 이어링됩니다.
비. 공급 전압의 변화. 소모품이 배터리 인 경우 어떻게됩니까? 배터리가 방전되면 전압이 상당히 떨어집니다. 약간 사용한 9V 배터리와 잘 작동하도록 회로를 설계했지만 새 9V 배터리를 추가 한 경우 어떻게해야합니까? 새로운 9V 납 축전지는 일반적으로 실제 전압이 9.5V입니다. PWM에 사용되는 5V를 제공하는 회로에 따라 추가 0.5V가 5V PWM을 5.3V까지 증가시킬 수 있습니다. 충전식 배터리를 사용하는 경우 어떻게됩니까? 전체 방전주기에서 훨씬 더 넓은 전압 범위를 갖습니다.
씨. EMI의 유도 전류와 같은 다른 시나리오가 있습니다 (모터가이를 수행함).
전류 제한 저항을 사용하면 이러한 많은 문제를 방지 할 수 있습니다.
PWM을 사용하여 LED를 구동하는 것은 그리 좋은 해결책이 아닙니다. 전류 제한 저항이 필요없는 더 좋은 방법이 있습니까?
예! 그들이 당신의 가정을 위해 LED 전구에서 무엇을합니까. 전류 컨트롤러로 LED를 구동합니다. 전류 컨트롤러가 LED 정격 전류를 구동하도록 설정하십시오.
적절한 전류 컨트롤러를 사용하면 LED를 크게 증가시킬 수 있으며 오픈 루프 구동 LED와 관련된 대부분의 문제를 걱정하지 않고 안전하게 LED를 구동 할 수 있습니다.
단점 : 전류 컨트롤러가 필요하고 회로의 복잡성을 10 배나 높였습니다. 낙심하지 마십시오. 전류 컨트롤러 IC, LED 드라이버 IC를 구매하거나 자체 전류 제어 부스트 컨버터를 만들 수 있습니다. 그렇게 어렵지 않습니다. 바쁜 일정을 벗어나 부스트 및 벅 컨버터에 대해 알아보십시오. 전원 공급 장치 전환에 대해 알아보십시오. 그것들은 당신의 컴퓨터에 힘을 실어주고 매우 에너지 효율적입니다. 그런 다음 처음부터 새로 구축하거나 저렴한 IC를 구입하여 대부분의 작업을 수행하십시오.
물론 모든 전자 설계와 마찬가지로 회로를 개선하기 위해 할 수있는 일이 항상 더 있습니다. 요즘 가정용 LED 전구조차도 얼마나 복잡한 지 보려면 다음 PDF의 그림 3을 확인하십시오.
요약하면 : 회로에 얼마나 많은 위험을 감수 할 것인지 스스로 결정해야합니다. 5V PWM을 사용하여 LED를 구동하면 (특히 PWM 구형파를 부드럽게하고 PWM 주파수를 최대화하기 위해 커패시터를 추가하는 경우) 제대로 작동 할 것입니다. 전자 장치를 일반적인 작동 조건에서 벗어나게하는 것을 너무 두려워하지 마십시오. 작업을 수행 할 때 알림을 받고 위험을 감수하십시오.
즐겨!
참고 : 나는 "현재 제한 저항을 사용해야합니다"라는 대답에 즉시 뛰어 넘는 사람들에 놀랐습니다. 의도는 좋았지 만 지나치게 안전한 조언입니다.
오르 트
제안 당신은 내장 풀업 저항을 사용할 수 있습니다 여기에 :
풀업 저항은 입력으로 구성된 핀에 연결된 LED를 희미하게 비추기에 충분한 전류를 제공합니다.
OUTPUT
, 그것은 일련의 저항이 필요하다고 언급 : "이것은 예를 들어, LED를 (직렬 저항을 잊지 마세요) 조명을 밝게, 또는 여러 개의 센서를 실행할 충분한 전류 있지만, 대부분의 실행 전류 것만으로는 충분하지 않습니다 릴레이, 솔레노이드 또는 모터. "
stevenvh의 답변은 필요한 작업을 설명하지만 전압 강하 저항을 태우지 않도록 LED 전체의 전력 소비를 계산해야합니다. 예를 들어 공급 전압이 5V이고 저항의 순방향 전압이 1.0V이면 4V가 떨어집니다. 220ohm 저항을 사용하면 18mA의 전류 (I = V / R)와 72mW의 전력 소비 (P = IV)가 발생합니다.
0402 영국식 (1005 미터법) 저항은 일반적으로 1 / 16W로 62.5mW입니다. 따라서이 경우에는 작동하지 않습니다. 저항이 과열되고 작동 수명이 단축됩니다. 따라서 1 / 10W 정격의 0402 저항 또는 더 큰 0603 저항으로 변경해야합니다.
이와 같은 계산을 수행 할 때마다 검토자가 작업을 쉽게 다시 확인할 수 있도록 회로도에 계산을 추가하십시오.
순방향 전압 (따라서 저항 값)은 LED의 기능이며, LED의 다른 색상은 다른 값을 갖습니다. 청색 LED는 특히 높은 순방향 전압 (~ 3.0V 일반)을 갖습니다. 따라서 동일한 밝기를 갖도록 4 개의 다른 LED를 얻으려면 각 LED에 대해 계산을 반복해야합니다. 실제로 올바르게하려면 정격 전류에서 각 LED의 광학 특성을보고 그에 따라 조정하십시오.
짧은 대답은 예와 아니오입니다. arduino에 따라 다르며 led의 색상에 따라 다릅니다. LED의 순방향 전압이 매우 높기 때문에 예를 들어, 3.3V 보드는 작은 녹색 LED와 직렬 저항을 필요로하지 않는, 볼 이. 내부 저항은 약 25 Ohm이며 (3.3-3) / 25 = 12mA이므로 여전히 괜찮습니다 .UNO 보드에 사용되는 328p atmel 프로세서의 경우 핀당 최대 전류 40mA를 넘지 않아야합니다 (단, 328p의 파생물을 사용하여 다른 이야기가 될 수 있습니다). 그러나 5V에서 작동하는 arduino의 경우 순방향 전압이 훨씬 낮은 일반적으로 1.2V, (5-1.2) / 25 = 150mA 인 적외선 LED로 인해 문제가 발생합니다. 이러한 유형의 LED를 구동하는 저항으로 사용됩니다. Arduino 보드의 핀 13 (또는 변형의 다른 핀)에는 이미 LED와 저항이 직렬로 있습니다. 또한 보드의 전원 공급 장치의 최대 정격은 일반적으로 200mA이며이 레벨을 유지해야하며 핀 그룹당 일정량 이상의 mA를 그릴 수 없습니다.여기 . 많은 LED를 구동하려면 멀티플렉싱을 수행하는 매트릭스 LED 드라이버를 사용하는 것이 좋습니다. 예를 들어 MAX7219CNG 드라이버를 시연하는 YouTube 영역을 참조하십시오. 또한 Arduino Uno는 멀티플렉싱을 수행 할 수 있습니다. YouTube의 4 개의 7 세그먼트 LED가있는 IR 온도계를 참조하십시오. 행복한 해킹.
예! 할 수 있습니다.
말한 내용이 맞지만 다른 방법이 있습니다. 5v로 LED를 구동하는보다 에너지 효율적인 방법.
이것은 약간 문서화되지 않았으며 솔루션이 LED를 마모 시킬지 여부는 알 수 없지만 수행 할 수 있습니다. 실제로하고 있습니다.
하드웨어 별 PWM 사용 : 예 는 다음과 같습니다 .
#include <avr/io.h>
#include <util/delay.h>
void pwm_init()
{
// initialize TCCR0 as per requirement, say as follows
TCCR0 |= (1<<WGM00)|(1<<COM01)|(1<<WGM01)|(1<<CS00);
// make sure to make OC0 pin (pin PB3 for atmega32) as output pin
DDRB |= (1<<PB3);
}
void main()
{
uint8_t duty;
duty = 1; // duty cycle = 0.39% of the time (depends on the oscillator.)
// initialize timer in PWM mode
pwm_init();
// run forever
while(1)
{
OCR0 = duty;
}
}
소프트웨어 및 avrs 타이머를 사용하여 PWM을 시뮬레이션 할 수도 있습니다. lufa 라이브러리에서이라는 예제를 찾을 수 있습니다 LEDNotifier.c
.
내 결론 : 5V에서 LED를 구동하는 것이 가능합니다.
장점 : 저항이 필요 없습니다. 약간의 에너지 절약 (~ 50 %)
단점 : 구성 요소에 스트레스가 있는지, 수명이 단축되는지 모르겠습니다.
analogWrite()
해당 핀에서 PWM을 더 쉽게 얻을 수 있습니다 . 이것이 좋은 아이디어인지는 확실하지 않지만 적어도 IR LED의 경우 데이터 시트가 듀티 사이클 100 % 미만에서 훨씬 더 높은 피크 전류를 허용하는 것이 일반적입니다.