Arduino를 사용하여 약 100 개의 독립적 인 LED를 제어하고 싶습니다. 문제는 Arduino에이를 구성 할 수있는 핀이 거의 없다는 것입니다. 이 문제를 해결하는 방법은 무엇입니까? Arduino의 복잡한 신호를 디 먹싱하여 LED를 제어 할 수있는 칩이 있습니까? 아니면 다른 해결책이 있습니까?
Arduino를 사용하여 약 100 개의 독립적 인 LED를 제어하고 싶습니다. 문제는 Arduino에이를 구성 할 수있는 핀이 거의 없다는 것입니다. 이 문제를 해결하는 방법은 무엇입니까? Arduino의 복잡한 신호를 디 먹싱하여 LED를 제어 할 수있는 칩이 있습니까? 아니면 다른 해결책이 있습니까?
답변:
우선, Arduino는 100 개의 LED를 직접 구동 할 수 없습니다. 장치가 소싱 또는 싱크해야하는 결합 된 전류는 마이크로 컨트롤러와 Arduino 보드의 전압 조정기를 훨씬 초과하기 때문입니다. 그러나 자체 전원과 규정을 갖춘 맞춤형 Arduino Shield 가이 법안에 적합 할 수 있습니다.
몇 가지 쉬운 방법이 있으며 가장 간단한 방법은 다음과 같습니다.
TLC5940은 IC 당 16 개의 LED를 구동하며 약간의 변형 된 SPI 인터페이스를 통해 직렬 입력으로 제어됩니다. 최대 40 개의 TLC5940 장치를 캐스케이드 연결할 수 있지만 그 중 7 개는 문제가되는 100 개의 LED를 구동하기에 충분합니다.
TLC5940 에는 최소한 두 개의 Arduino 라이브러리 ( 1 , 2 ) 가 있습니다.
Arduino에서 보낼 권장 클럭 속도 및 해당 재생 빈도 :
이는 데이터 시트의 공식을 기반으로합니다.
f (GSCLK) = 4096 * f (업데이트)
f (SCLK) = 193 * f (업데이트) * n
여기서 :
f (GSCLK) : GSCLK에 필요한 최소 주파수
f (SCLK) : SCLK 및 SIN에 필요한 최소 주파수
f ( 업데이트) : 전체 캐스케이드 시스템의 업데이트 속도
n : TLC5940 장치의 캐스케이드 수
TLC5940은 정전류 싱크 이므로 LED의 양극은 LED Vf보다 몇 볼트 큰 전압 또는 약 7V 중 더 낮은 전압에 연결되며 Arduino의 전원 핀과 독립적으로 전원이 공급됩니다. 이 전압 소스는 100 * (LED를 구동하는 전류에 관계없이)를 공급할 수 있어야하지만 조정되지 않은 소스 일 수 있습니다.
LED 캐소드는 각각의 TLC5940 IC의 구동 라인으로 간다.
TLC5940 자체는 데이터 쓰기 중 장치 당 최대 Icc = 60mA를 소비하므로 Arduino에서 7 개 전원을 공급할 수 없으며 독립적으로 3.3V에서 5V로 조정 된 Vcc를 제공해야합니다. Arduino의 Vcc가 사용 중이며,지면 흔적은 물론 Arduino의지면으로 다시 연결되어야합니다. Arduino와 다른 전압에서 TLC 부품을 작동하면 직렬 신호의 레벨 변환이 필요하므로 피하는 것이 가장 좋습니다.
여러 YouTube 동영상 은 계단식 TLC5940 IC와 함께 Arduino를 사용하는 방법을 보여줍니다.
이 IC는 7 세그먼트 숫자 LED 디스플레이를 구동하도록 설계되었지만 개별 LED 제어 기능을 제공하므로 IC 당 최대 64 개의 LED에 사용할 수 있습니다. 이들 중 2 개를 캐스케이드 연결하여 필요한 100 개의 LED를 구동 할 수 있습니다. 데이터 시트 13 페이지에 캐스케이드 구성이 나와 있습니다.
이 설계를 위해 LED는 각각 하나의 음극선 (공통 음극)을 공유하는 최대 8 개의 LED 그룹으로 전기적으로 연결되어야합니다.
MAX7219 / 7221은 멀티플렉싱 LED 드라이버이므로 LED의 최대 밝기는 이전 섹션과 같은 정적 LED 드라이버보다 낮습니다.
다음은 MAX7219를 사용 하는 유용한 LED 매트릭스 라이브러리 및 가이드입니다.
일부 관련 YouTube 동영상 ( 1 , 2 )이 관심이있을 수 있습니다.
이 IC는 7 세그먼트 숫자 LED 디스플레이를 구동하도록 설계되었으며 개별 LED 제어 기능을 제공하므로 IC 당 최대 40/64 개의 LED에 사용할 수 있습니다. 그중 2/3 개를 Arduino SPI 버스에 연결하여 필요한 100 개의 LED를 구동 할 수 있습니다.
디자인 노트는 이전 섹션과 동일하게 유지됩니다. 또한 개별 LED 최대 밝기는 MAX7219의 스트레이트 멀티 플렉스 설계보다 낮다.
몇 가지가 있습니다 YouTube 동영상 관심이있을 수 있습니다.
이들은 다양한 수준의 단순성과 성공으로 사용 된 모든 접근 방식입니다. 그것들은 위의 3 가지 접근법보다 더 복잡한 구현이므로 더 이상 자세히 설명하지 않습니다. 필요한 경우 웹을 검색하면 이러한 접근 방식에 대한 유용한 안내서가 제공됩니다.
이러한 설계에 대한 한 가지 주요 자극은 모든 LED 또는 LED 스트링에 전류 제어 저항이 필요하다는 것입니다. LED 구동을 위해 특별히 설계된 장치는 일반적으로 이것을 필요로하지 않습니다.
이 마지막 옵션에 대한 개인적인 경험이 없으므로 많은 도움이 될 수 없습니다.
각주 : 이 질문에 답한 후, 나는 이전 질문 에서 몇 가지 접근 방식을 자세하게 설명하고 논의한 더 오래된 질문을 발견했습니다 . 그 스레드는 "숙제처럼 더 읽기"를 흥미롭게 만듭니다.