답변:
Charlie-plexing N 라인을 사용하면 N * (N-1) LED가 제어됩니다. Wikipedia에 좋은 기사가 있습니다.
내 친구 인 Jimmie P. Rodgers는 Arduino Shield에 126 개의 LED를 장착했습니다. 그는 찰리-플 렉싱을 사용하여 LED를 제어합니다. 그의 보드에 대한 일부 정보는 다음과 같습니다-jimmieprodgers.com/2009/12/my-development-process/ (archive.org 사본)
마지막 보스턴 아두 이노 사용자 그룹 회의에서 Jimmie P. Rodgers는 찰리-플 렉싱 다이어그램을 레이블이 붙은 그물이있는 행렬로 그렸습니다. 이러한 방식으로 그려진 회로도는 개념을 전달하는 데 큰 도움이되었습니다. 비슷한 회로도를 만들었습니다 .http : //wiblocks.luciani.org/FAQ/faq-charlie-plex.html을 참조하십시오 .
jimmieprodgers.com
이 답변 의 링크에는 바이러스가로드되어 있습니다.
시프트 레지스터 ( http://en.wikipedia.org/wiki/Shift_register )를 사용하여 원하는대로 단일 직렬 스트림에서 많은 병렬 출력을 얻을 수 있습니다.
당신은 당신의 힘 제약에 관심이 있어야합니다. 나는 실제로 Arduino를 직접 사용한 적이 없지만 PIC와 마찬가지로 현재 제한이 있다고 가정합니다. 또한 시프트 레지스터에는 전류 제한이 있습니다. 이 문제에 부딪 치면 마이크로 컨트롤러에서 직접 많은 전력을 끌어 들이지 않고도 LED를 제어 할 수 있도록 MOSFET과 같은 것을 사용해야합니다.
지정된 AVR 마이크로 컨트롤러 핀은 최대 40mA를 소싱 할 수 있으며, 칩에 의해 소싱되거나 가라 앉은 총 전원 공급 장치 (예 : 접지 및 Vcc 핀)는 200mA 미만이어야합니다.
Charlieplexing는 LED가 많이 필요한 상황에 대한 좋은 해결책이지만, 단 하나의 LED가에 의해 얻을 수있는 점화 한 번에. 표준 Arduino 보드 (예 : Duemilanove)는 TX, RX, Reset 또는 pin 13을 제외하고 17 개의 "free"I / O 핀을 제공합니다. 따라서 17 * 16 = 272 LED를 연결할 수 있습니다. 특히 하나의 LED가 켜져 있거나 몇 개 사이에서 빠르게 스캔하는 경우에 효과적입니다. 그러나 패턴으로 전체 매트릭스를 밝히려고하면 각각이 시간의 1/272보다 약간 (약간 작음) 있음을 알 수 있습니다. 따라서 주어진 순간에 드라이브 전류가 30mA라면 각 LED가 평균 전류는 약 0.1mA로 꽤 희미합니다.
많은 LED가 필요하지 않지만 더 많은 밝기가 필요한 경우 기존 멀티플렉싱이 더 나은 옵션 일 수 있습니다. 이 경우 일부 선을 행렬로 사용하고 일부는 열로 사용합니다. 10mA LED 전류를 사용하는 경우 한 행에 4 개의 LED가 모두 한 번에 켜지는 4 열 13 행의 매트릭스를 정의 할 수 있으며 행을 스캔합니다. 그런 다음 각 행은 10mA 전류에서 1/13의 시간에 있으므로 평균 LED 전류는 0.76mA만큼 높을 수 있지만 4 * 13 = 104 LED 만 얻을 수 있습니다. (찰 리플 렉싱보다 LED 당 확실히 밝습니다.)
마지막 예의 한계는 AVR의 핀당 40 mA입니다. 각 행 구동 핀은 4x10 = 40 mA이기 때문입니다. 외부 트랜지스터 (싸고 작을 수 있음)를 행 출력에 추가 할 수있게되면 특정 한계를 피하고 더 밝게 할 수 있습니다. 예를 들어, 8 개의 행과 9 개의 열, 72 개의 LED가있는 8x9 어레이를 만들 수 있습니다. 8 개의 행 중 하나가 한 번에 켜져 트랜지스터를 통해 선택됩니다. 주어진 행에서 최대 9 개의 LED를 한 번에 켜서 20mA로 구동 할 수 있으므로 180mA는 트랜지스터에서 나오며 AVR의 전류 제한을 유지합니다. LED 당 평균 전류는 이제 20mA / 8 = 2.5mA이며 일반적으로 상당히 밝습니다.
17 개의 I / O 핀, 17 개의 NPN 트랜지스터 (전류를 증폭시키는 이미 터 팔로워)를 사용하면 1/17 듀티 사이클에서 평균 전류 또는 0.7mA (200mA / 272)로 272 개의 LED를 임의의 조합으로 표시하는 데 특별한 문제가 없어야합니다. 칩은 한 번에 200mA를 끌어낼 수 있습니다. 0.7V의 전압 강하를 얻기 위해 다이오드를 추가하면 다른 17 개의 LED를 추가 할 수 있지만 (듀티 사이클을 1/18로 줄임) 밝기는 다른 LED와 일치하지 않습니다.
Windell Oskay는 더 많은 트랜지스터를 추가하지 않고도 104 개의 LED가 최대라고 주장하지만 Tom Igoe 는 별도의 트랜지스터, 이산 또는 통합 된 단일 트랜지스터가 아닌 단일 Arduino Mega에 의해 직접 제어되는 128 개의 LED 매트릭스 사진을 게시했습니다.
데이터 시트에 나열된 "핀당 절대 최대 전류"를 간단히 초과하여 Tom Igoe가 "속임수"입니까?