目录
简介
今天我们将研究德州仪器(TI) TLC5940 16通道LED驱动器IC。我们这个项目主要是是为了展示另一种更简单的方法来驱动许多LED – 以及伺服系统。在本教程中,我们将解释如何使用LED控制一个或多个TLC5940 IC,并了解如何控制伺服系统
步骤一 材料准备
硬件准备:
- Arduino UNO*1
- TLC5940*1
- LED灯*16或LED灯条
- 2KΩ电阻*1
- 0.1uF陶瓷和4.7uF电解电容*1
- 杜邦线若干
- USB数据线*1
软件准备:
- Arduino IDE
- TLC5940库
步骤二 原理说明
TLC5940采用DIP版本,也可采用表面贴装。它允许您通过PWM(脉冲宽度调制)调整16个独立LED的亮度 – 您还可以连接多个TLC5940以进一步控制。
注意LED方向 – 并记住TLC5940是一个 共阳极 LED驱动器 – 所以所有LED阳极连接在一起,然后连接到5V:
对于这个特定电路,您不需要外部5V电源 – 但是您将来可能需要一个。电阻器的目的是控制可以流过LED的电流量。所需电阻值使用以下公式计算:
R = 39.06 / Imax
其中R(以欧姆为单位)是电阻值,而Imax(以安培为单位)是您想要流过LED的最大电流量。例如,如果LED的正向电流为20 mA,则电阻计算结果如下:
R = 39.06 / 0.02 = 1803Ω
步骤三 电路搭建
电路搭建可根据原理说明里面的原理图进行搭建。
Arduino——TLC5940
- D13——25
- D11——26
- D10——23
- D9——24
- D3——18
其它连接为TLC5940外围电路,请根据原理图进行连接。
步骤四 编写程序
想要电路工作,我们如何控制TLC5940?首先,需要加入TLC590头文件库:
#include "Tlc5940.h"
库文件下载:
然后通过将以下内容放入void setup()来初始化库 :
Tlc.init(x);
x是一个可选参数 – 如果要在程序开始时将所有通道设置为某个亮度,则可以在Tlc.init()函数中为x 插入0到4095之间的值。
现在打开或关闭通道/ LED。每个通道的编号从0到15,每个通道的亮度可在0到4095之间调整。
这是一个由两部分组成的过程……
首先 – 使用以下一个或多个功能来设置所需的通道和相应的亮度(PWM级别):
Tlc.set(channel, brightness);
例如,如果您希望以全亮度打开前三个通道,请使用:
Tlc.set(0, 4095);
Tlc.set(1, 4095);
Tlc.set(2, 4095);
在clear函数之后,您不需要调用TLC.update()。以下是一个快速示例程序,它将所有通道的亮度/ PWM值设置为不同的级别:
#include "Tlc5940.h"
void setup()
{
Tlc.init(0); //初始化TLC5940并关闭所有通道
}
void loop()
{
for (int i = 0; i < 16; i++)
{
Tlc.set(i, 1023);
}
Tlc.update();
delay(1000);
for (int i = 0; i < 16; i++)
{
Tlc.set(i, 2046);
}
Tlc.update();
delay(1000);
for (int i = 0; i < 16; i++)
{
Tlc.set(i, 3069);
}
Tlc.update();
delay(1000);
for (int i = 0; i < 16; i++)
{
Tlc.set(i, 4095);
}
Tlc.update();
delay(1000);
}
步骤五 验证结果
使用两个或更多TLC5940
您可以将多个TLC5940连接在一起以控制更多LED。首先 – 如演示电路所示,将下一个TLC5940连接到Arduino – 除了将第一个TLC5940的SOUT引脚(17)连接到第二个TLC5940的SIN引脚(26) – 当数据从Arduino传输时,通过第一个TLC5940到第二个等等。如果你有第三个等,那么重复这个过程。不要忘记设置电流的电阻器!
接下来,打开 位于TLC5940库文件夹中的文件 tlc_config.h。将NUM_TLCS的值更改为已连接在一起的TLC5940的数量,然后保存文件并删除同样位于同一文件夹中的文件 Tlc5940.o 。最后重启IDE。然后,您可以从第一个开始依次参考第二个和更多TLC5940的通道。也就是说,第一个是0~15,第二个是16~29,依此类推。
用那两个电容是做什么用的?
稳压
提问,为什么是39.06/Imax?这个39.06有什么讲究吗