Arduino TLC5940與伺服馬達

Arduino TLC5940與伺服馬達

TLC5940介紹

TLC5940是TI的16 channel LED驅動晶片。可以支援同時16通道的PWM灰階輸出,解析度為4096階。同時有兩種模式 12 bit (4096 Steps) Grayscale PWM Control 和 Dot Correction。

重要參數:

供應電壓:Vcc  => 3V ~ 5.5V

操作界面:Serial Data

資料傳輸速率:~30MHz

LED可驅動最大電壓:~17V

LED可驅動電流:0~60mA(Vcc < 3.6V ) 0~120mA(Vcc > 3.6V)

由於是輸出PWM,也可以拿來做PWM擴充。所以也可以拿來推Servo摟。

TLC5940 Ardunio library

在Ardunio IDE中可以透過library manager找到。而github上也有連結:

https://github.com/PaulStoffregen/Tlc5940

TLC5940電路接法

以下以PDIP封裝的TLC5940為例還有使用Arduino Mega2560。

TLC5940 Arduino Mega2560
SIN(pin 26) MOSI(pin 51)
SCK(pin 25) SCLK(pin 52)
XLAT(pin 24) OC1A(pin 11)
BLANK(pin 23) OC1B(pin 12) + 1K ohm上拉電阻
GSCLK(pin 18) OC2B(pin 9)
VPRG(pin 27) VPRG(pin 50) or GND
XERR(pin 16) XERR(pin 10) or GND
SIN(pin 26) SIN(pin 51)
IREF(pin 20) 1K ohm下拉電阻
VCC(pin 21) 5V
GND(pin 22) GND

至於out0到out15的接法比較特別。

這樣即可完成Servo與TLC5940的電路。

程式部份

這部份可以直接使用範例。來做實驗。開啟方式:

Ardunio IDE-> Files-> Examples -> TLC5940 -> Servo

深入探討Ardunio TLC5940 library

https://github.com/PaulStoffregen/Tlc5940

  1. pinout
    pinout部份在library中的pinout中可以找到,包含各種Ardunio板子。
    這些腳位是不能隨便更改的,因為library使用了Arduino的硬體週邊做加速。
    EX: PWM SPI等。
  2. Serial Data
    Serial Data有兩種模式:
    1. SPI:因為Serial Data shift-in的方式其實就是SPI的MOSI和SCK腳位在做的事。
               所以透過SPI可以加速資傳輸速率。溝通方式可以在http://www.ti.com/lit/ds/symlink/tlc5940.pdf中見到。
    2. bit-bang:直接對GPIO操作(產生SCK的clock和data)來傳輸資料,只是較慢,但可以更換腳位。
  3. GSLCK XLAT與blank
    這裡是利用Ardunio的硬體pwm(output compare pwm)來辦到的,以GSCLK為例,她產生4096*50HZ的clock(4096為解析度,50為Servo是20ms一個週期)。在透過XLAT(鎖住更新資料),blank清除GS counter。

comments powered by Disqus