산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Arduino PWM 출력을 확장하는 방법 – TLC5940 자습서

<메인 클래스="사이트 메인" id="메인">

이 Arduino Tutorial에서는 Arduino 보드를 사용하여 TLC5940 PWM 드라이버를 사용하는 방법을 배웁니다. TLC5940은 PWM 출력을 제공하는 16채널 LED 드라이버로 Arduino PWM 기능을 확장하는 데 적합합니다. LED뿐만 아니라 이 IC를 사용하면 PWM 신호를 사용하여 서보, DC 모터 및 기타 전자 부품을 제어할 수도 있습니다.

기본 기능

데이지 체인은 여러 TLC5970 IC를 직렬로 연결할 수 있다는 것을 의미하는 훌륭한 기능입니다. 이를 통해 Arduino의 PWM 기능을 16개 이상의 출력(예:32, 48 또는 64 PWM 출력)으로 확장할 수 있으며 하나의 TLC5940 IC를 제어하기 위해 Arduino 보드에서 사용하는 것과 동일한 4개의 핀을 계속 사용할 수 있습니다.

이 가이드의 구성요소는 아래 사이트에서 얻을 수 있습니다.

Arduino 및 TLC5940 배선

TLC5940을 제어하려면 Arduino 보드의 4개 핀을 차지해야 합니다. Alex Leone이 만든 TLC5940 Arduino 라이브러리를 사용할 것이기 때문에 그의 라이브러리 구성에 따라 또는 다음 회로도를 사용하여 IC를 Arduino에 연결해야 합니다.

<그림 클래스="aligncenter">

위의 회로도는 LED에 전원을 공급하기 위해 외부 전원 공급 장치를 사용하고 있지만 끌어온 전류의 총량이 Arduino의 한계(절대 최대 정격, DC 전류 VCC)를 초과하지 않는 경우 Arduino VCC 자체를 사용하여 연결할 수도 있습니다. 및 GND 핀 – 200mA).

또한 TLC5940은 정전류 싱크이므로 전류가 출력 핀으로 흐릅니다. 즉, LED를 연결할 때 음극 리드(음극)를 IC의 출력 핀에 연결하고 양극 리드(양극)를 5V VCC에 연결해야 합니다.

또한 디커플링을 위한 2개의 커패시터와 출력을 통해 흐르는 전류의 양을 제어하기 위한 저항이 필요합니다. 저항 값은 제어하려는 구성 요소에 따라 다르며 TLC5940의 데이터시트에서 다음 다이어그램을 사용하여 선택할 수 있습니다.

<그림 클래스="aligncenter">

따라서 다이어그램에 따르면 20mA 전류가 필요한 LED를 제어하려면 2K 저항이 필요합니다.

소스 코드

Alex Leone이 만든 TLC5940 Arduino 라이브러리를 다운로드하여 설치하면 그의 "BasicUse" 데모 예제를 사용하여 IC의 출력을 제어하는 ​​방법을 이해할 수 있습니다.

다음은 이 라이브러리를 사용하여 16개의 LED를 제어하기 위해 이 튜토리얼을 위해 만든 간단한 코드입니다. 함수의 작동 방식을 이해하려면 코드의 주석을 읽으십시오.

/*
 * Arduino and TLC5940 Tutorial - Simple Example
 * by Dejan Nedelkovski, www.HowToMechatronics.com
 */

#include "Tlc5940.h" 

void setup() {
  Tlc.init(0); // Initiates the TLC5940 and set all channels off
}
 
void loop() {
  Tlc.set(0,4095); //(Output Pin from 0 to 15,PWM Value from 0 to 4095)
  // Note: The previous function doesn't activates the output right away. The output will be activated when the Tlc.update() function will be executed!
  
  Tlc.update(); // Activates the previously set outputs
  delay(1000);

  // For activating all 16 outputs at the same time we can use a for loop for setting all of them to be set to PWM value of 4095. Then  the Tlc.updata() function will active them all at the same time.
  for (int i = 0; i < 16; i++) {
    Tlc.set(i, 4095);
  }
  Tlc.update();
  delay(1000);

  //The Tlc.clear() function clears all the outputs, or sets the PWM value of all outputs to 0
  Tlc.clear();
  Tlc.update();
  delay(1000);

  // This for loop will active all 16 LEDs one by one
  for (int i = 0; i < 16; i++) {
    Tlc.set(i, 4095);
    Tlc.update();
    delay(200);
    Tlc.clear();
    Tlc.update();
    delay(200);
  }
}Code language: Arduino (arduino)

둘 이상의 TLC5940 제어

이러한 IC 중 하나 이상을 직렬로 연결하기 위해 위에 표시된 것과 동일한 회로도를 사용할 수 있습니다. 유일한 차이점은 첫 번째 IC의 SOUT(신호 출력 – 핀 17)이 두 번째 IC의 SIN(신호 입력 – 핀 26) 등에 연결되어야 한다는 것입니다.

프로그래밍 부분에 관해서는 약간의 수정이 필요합니다. TLC5940 라이브러리 폴더에서 tlc_config.h 파일을 수정하고 변수 NUM_TLCS의 값을 직렬로 연결된 TLC5940 IC 수로 변경해야 하며 이 경우 값은 2입니다. 이 작업이 완료되면 이제 모든 문제를 쉽게 해결할 수 있습니다. 0에서 31까지의 LED를 사용하고 이전에 설명한 것과 동일한 프로그래밍 방법을 사용합니다.

<그림 클래스="alignleft">

예를 들어 다음 링크에서 32개의 LED를 제어하기 위해 2개의 TLC5940 IC를 사용하는 내 DIY LED 하트 포토 프레임 – Arduino 프로젝트를 확인할 수 있습니다.


제조공정

  1. OpenSensor의 공기질 측정 방법
  2. Arduino RFID 잠금 자습서
  3. IR 리모콘 해킹 방법
  4. 키는 얼마입니까?
  5. 서미스터를 사용하는 것이 얼마나 쉬운가요?!
  6. Arduino로 음악을 만드는 방법
  7. Arduino 지문 센서 자습서
  8. Arduino에서 Modbus를 사용하는 방법
  9. Arduino 튜토리얼:미니 피아노
  10. Arduino 튜토리얼 01:시작하기