在本教程中,我们将学习如何使用Arduino板的TLC5940 PWM驱动程序。TLC5940是一个16通道LED驱动器,提供PWM输出,非常适合Arduino PWM功能的扩展。不仅仅是led,我们还可以使用PWM信号控制伺服、直流电机和其他电子元件。必威lol
基本特征
- VCC = 3V至5V
- 16频道
- 12位(4096步)PWM控制
- 驱动能力
- 0 mA到120 mA(VCC> 3.6V)
- 0 mA to 60 mA (VCC < 3.6V) - 串行数据接口
- 30mhz数据传输速率
- 雏菊链
Daisy链接是一个很好的特征,意味着我们可以将多个TLC5970 IC系列串联连接。有了这个,我们可以将Arduino的PWM功能扩展到16个输出,例如32,48或64个PWM输出,仍然使用Arduino板使用的相同4个引脚,用于控制一个TLC5940 IC。
您可以从下面的任何网站获取本教程的组件:
- Arduino纳米 .............................亚马逊/伯格多德/阿里巴巴全球速卖通
- 超亮红色led ...............亚马逊/伯格多德/阿里巴巴全球速卖通
- TLC5940 LED驱动器...............亚马逊/阿里巴巴全球速卖通
必威外围提钱披露:这些是附属链接。作为一名亚马逊助理,我的收入来自符合条件的购买。
Arduino和TLC5940接线
为了控制TLC5940,我们需要占用您的Arduino板的4个引脚。由于我们将使用Alex Leone制作的TLC5940 Arduino库,因此需要根据Alex Leone的库配置或使用以下电路原理图将IC连接到Arduino:
The circuit schematics above is using external power supply for powering the LEDs, but also it can be connected just using the Arduino VCC itself if the total amount of drawn current doesn’t exceed the limit of the Arduino (Absolute Maximum Rating, DC Current VCC and GND Pins – 200 mA).
我们还需要注意TLC5940是一个恒流接收器,因此电流流向输出引脚。这意味着当连接led时,我们需要连接IC的负极(阴极)和输出引脚,正极(阳极)和5V VCC。
我们还需要2个电容来解耦和一个电阻来控制流过输出的电流。电阻器的值取决于我们想要控制的组件,可以使用下面的图表来选择数据表TLC5940。
所以根据图表,为了控制需要20mA电流的led,我们需要一个2K电阻。
源代码
一旦我们下载并安装TLC5940Arduino图书馆我们可以使用他的“BasicUse”演示示例来理解如何控制IC的输出。
下面是我为本教程编写的一个简单代码,用于使用这个库控制16个led。阅读代码中的注释,以理解函数是如何工作的。
/ * * Arduino和TLC5940教程 - 简单榜样*由Dejan Nedelkovski,www.www.mfxpo.com * /bet188官方网站 #include“tlc5940.h”void setup(){tlc.init(0);//启动TLC5940并将所有频道关闭} void loop(){tlc.set(0,4095);//(输出引脚从0到15,PWM值从0到4095)//注意:之前的功能不会立即激活输出。将执行TLC.Update()函数时将激活输出!tlc.update();//激活先前设置的输出延迟(1000);//同时激活所有16个输出,我们可以使用for循环将所有它们设置为设置为4095的PWM值。然后TLC.Updata()函数将同时激活它们。for(int i = 0; i <16; i ++){tlc.set(i,4095);tlc.update();延迟(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); } }
控制多个TLC5940
为了将多个集成电路串联起来,我们可以使用上面所示的相同电路原理图。唯一的区别是第一个IC的SOUT(信号输出-引脚17)需要连接到第二个IC的SIN(信号输入-引脚26),以此类推。
至于编程部分,我们需要做一些修改。在TLC5940库文件夹中,我们需要修改tlc_config.h文件,并将变量NUM_TLCS的值更改为串行连接的TLC5940 ICs的数量,在本例中该值为2。完成这些之后,现在我们可以轻松地处理从0到31的所有led,并使用前面描述的相同编程方法。
例如,在以下链接上,您可以查看我的DIY LED心脏照片框架 - Arduino项目,其中我使用2 TLC5940 IC来控制32个LED。
是否有可能控制例如10个RGB Led二极管,但“单独”?我需要的是控制10个led,每个都必须在另一种颜色亮
谢谢你的回答
每个RGB LED需要3个不同的引脚。所以对于10个RGB led,你需要30个引脚,2个集成电路。然而,也有不同的方法来更多地控制更少的引脚led,如多路复用或charlieplexing。
对于你的LED相框,你使用什么板,你得到什么线
所有的一切都在项目的帖子中解释。
嘿,我想知道它是否可以控制意味着LDD-700与这些设置?
对不起,但我没有那个经验。
使用TLC5940,我可以控制每个输出的PWM值,否则它必须与16个输出相同的PWM值?
是的,您可以分别控制每个输出。