이 아두이노 튜토리얼에서는 아두이노 보드로 TLC5940 PWM 드라이버 사용하는 방법을 배웁니다. TLC5940은 PWM 출력을 제공하는 16채널 LED 드라이버로 아두이노 PWM 기능을 확장하기에 완벽합니다. LED뿐만 아니라 이 IC로 서보, DC 모터 등 PWM 신호로 제어하는 전자 부품도 제어 가능.
데이지 체이닝은 여러 TLC5940 IC를 직렬로 연결하는 훌륭한 기능입니다. 이를 통해 아두이노의 PWM 기능을 16개 출력 이상으로 확장할 수 있습니다. 예를 들어 32, 48, 64개 PWM 출력을 여전히 아두이노 보드의 동일한 4개 핀으로 제어 가능.
이 튜토리얼용 부품은 아래 사이트에서 구할 수 있습니다:
아두이노 나노………………………..
초고휘도 적색 LED……………
TLC5940 LED 드라이버……………
아두이노와 TLC5940 배선
TLC5940 제어를 위해 아두이노 보드 4개 핀 점유. Alex Leone이 만든 TLC5940 아두이노 라이브러리 사용 시 라이브러리 설정 또는 다음 회로도에 따라 IC 연결 필요:
위 회로도는 LED 전원용 외부 전원 공급 장치 사용하지만, 총 소모 전류가 아두이노 한도(절대 최대 정격, VCC 및 GND 핀 DC 전류 – 200mA) 초과하지 않으면 아두이노 VCC만으로도 연결 가능.
TLC5940은 정전류 싱크(constant-current sink)이므로 전류가 출력 핀 쪽으로 흐릅니다. 따라서 LED 연결 시 음극(캐소드)을 IC 출력 핀에, 양극(애노드)을 5V VCC에 연결해야 합니다.
디커플링용 커패시터 2개와 출력 전류량 제어용 저항 필요. 저항 값은 제어하려는 부품에 따라 달라지며 TLC5940 데이터시트 다음 다이어그램으로 선택 가능.
다이어그램에 따르면 20mA 전류 필요한 LED 제어용으로는 2kΩ 저항 필요.
소스 코드
Alex Leone 제작 TLC5940 아두이노 라이브러리 다운로드 설치 후 "BasicUse" 데모 예제로 IC 출력 제어법 이해 가능.
이 튜토리얼용으로 16개 LED 제어하는 간단한 코드 작성. 코드 주석으로 함수 동작 이해 도움.
/*
* 아두이노와 TLC5940 튜토리얼 - 간단 예제
* by Dejan Nedelkovski, www.HowToMechatronics.com
*/
#include "Tlc5940.h"
void setup() {
Tlc.init(0); // TLC5940 초기화, 모든 채널 오프
}
void loop() {
Tlc.set(0, 4095); // (출력 핀 0~15, PWM 값 0~4095)
// 이전 함수는 출력을 즉시 활성화하지 않음. Tlc.update() 실행 시 활성화!
Tlc.update(); // 앞서 설정한 출력 활성화
delay(1000);
// 모든 16개 출력을 동시에 활성화하려면 for 루프로 모두 PWM 4095 설정 후 Tlc.update()
for (int i = 0; i < 16; i++) {
Tlc.set(i, 4095);
}
Tlc.update();
delay(1000);
// Tlc.clear()로 모든 출력 클리어(PWM 값 0으로 설정)
Tlc.clear();
Tlc.update();
delay(1000);
// 이 for 루프로 16개 LED 순차 점등
for (int i = 0; i < 16; i++) {
Tlc.set(i, 4095);
Tlc.update();
delay(200);
Tlc.clear();
Tlc.update();
delay(200);
}
}코드 언어: Arduino (arduino)
둘 이상의 TLC5940 제어
이 IC들을 직렬로 여러 개 연결하려면 위 회로도와 동일하게 연결. 차이점은 첫 번째 IC의 SOUT(신호 출력 – 핀 17)을 두 번째 IC의 SIN(신호 입력 – 핀 26)에 연결하는 것뿐.
프로그래밍 부분에서는 수정 필요. TLC5940 라이브러리 폴더의 tlc_config.h 파일에서 NUM_TLCS 변수 값을 직렬 연결된 TLC5940 IC 개수로 변경(우리 경우 2). 이제 0~31번 LED를 모두 주소 지정해 이전과 같은 프로그래밍 방식 사용 가능.
예제로 다음 링크의 DIY LED 하트 포토 프레임 – 아두이노 프로젝트에서 2개 TLC5940 IC로 32개 LED 제어하는 것 확인 가능.