Arduino使用TLC5940 PWM 驱动LED

释放双眼,带上耳机,听听看~!

简介

今天我们将研究德州仪器(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:

Arduino使用TLC5940 PWM 驱动LED

对于这个特定电路,您不需要外部5V电源 – 但是您将来可能需要一个。电阻器的目的是控制可以流过LED的电流量。所需电阻值使用以下公式计算:

R = 39.06 / Imax

其中R(以欧姆为单位)是电阻值,而Imax(以安培为单位)是您想要流过LED的最大电流量。例如,如果LED的正向电流为20 mA,则电阻计算结果如下:

R = 39.06 / 0.02 = 1803Ω

步骤三 电路搭建

Arduino使用TLC5940 PWM 驱动LED

电路搭建可根据原理说明里面的原理图进行搭建。

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 插入04095之间的值。

现在打开或关闭通道/ LED。每个通道的编号从015,每个通道的亮度可在04095之间调整。

这是一个由两部分组成的过程……

首先 – 使用以下一个或多个功能来设置所需的通道和相应的亮度(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,依此类推。

给TA打赏
共{{data.count}}人
人已打赏
Arduino

将Arduino的数据通过串口发送给Nodemcu:单片机与单片机通信

2019-3-15 11:18:13

Arduino

Arduino使用TLC5940控制伺服舵机系统

2019-3-19 10:09:58

3 条回复 A文章作者 M管理员
  1. 晴

    用那两个电容是做什么用的?

    • Luca

      稳压

  2. 提问,为什么是39.06/Imax?这个39.06有什么讲究吗

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
'); })();