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上也有連結:
TLC5940電路接法
以下以PDIP封裝的TLC5940為例還有使用Arduino Mega2560。
TLC5940 | Ardunio 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
- pinout
pinout部份在library中的pinout中可以找到,包含各種Ardunio板子。
這些腳位是不能隨便更改的,因為library使用了Arduino的硬體週邊做加速。
EX: PWM SPI等。 - 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)來傳輸資料,只是較慢,但可以更換腳位。 - GSLCK XLAT與blank
這裡是利用Ardunio的硬體pwm(output compare pwm)來辦到的,以GSCLK為例,她產生4096*50HZ的clock(4096為解析度,50為Servo是20ms一個週期)。在透過XLAT(鎖住更新資料),blank清除GS counter。
No comments:
Post a Comment