在这个Arduino教程中,我们将学习如何使用TLC5940 PWM驱动器使用Arduino板。TLC5940是一个16通道LED驱动器,提供PWM输出,非常适合扩展Arduino PWM功能。不仅是LED,但有了这个IC,我们还可以控制伺服,直流电机和其他电子元件使用PWM信号。必威lol
基本特征
- VCC=3V至5V
- 16个通道
- 12位(4096步)PWM控制
- 驾驶能力
- 0 mA to 120 mA (VCC > 3.6V)
–0 mA至60 mA(VCC<3.6 V) - 串行数据接口
- 30 MHz数据传输速率
- 菊花链
菊花链接是一个很好的特性,这意味着我们可以将多个TLC5970集成电路串联在一起。有了这个,我们可以扩展Arduino的PWM能力到超过16个输出,例如32,48,或64 PWM输出,并仍然使用Arduino板使用相同的4引脚控制一个TLC5940 IC。
你可以从下面的任何一个网站获得本教程的组件:
- Arduino纳米………………………。。亚马逊/Banggood/阿里巴巴全球速卖通
- 超亮红色LED……………亚马逊/Banggood/阿里巴巴全球速卖通
- TLC5940领导的司机 ...............亚马逊/阿里巴巴全球速卖通
必威外围提钱披露:这些是附属链接。作为一名亚马逊员工,我从符合条件的购买中获得收入。
Arduino和TLC5940接线
为了控制TLC5940,我们需要占用Arduino板的4个引脚。由于我们将使用Alex Leone制造的TLC5940 Arduino库,我们需要根据库配置或使用以下电路示意图将IC连接到Arduino:
上面的电路图是使用外部电源供电的led灯,而且它可以连接使用Arduino VCC如果绘制电流的总量不超过Arduino的极限(绝对最大额定值,直流电流VCC和接地插脚- 200 mA)。
我们还需要注意的是,TLC5940是一个恒流接收器,所以电流流向输出引脚。这意味着当连接LED时,我们需要将负极引线(阴极)连接到IC的输出引脚,正极引线(阳极)连接到5V VCC。
我们还需要两个去耦电容器和一个电阻器来控制流经输出的电流量。电阻器的值取决于我们想要控制的组件,可以使用下面的图表从数据表TLC5940。
因此,根据图表,为了控制需要20mA电流的LED,我们需要一个2K的电阻器。
源代码
一旦我们下载并安装TLC5940Arduino图书馆由Alex Leone制作,我们可以使用他的“BasicUse”演示示例来理解如何控制IC的输出。
下面是我为本教程编写的一个简单代码,用于使用此库控制16个LED。阅读代码中的注释以了解函数的工作原理。
/* * Arduino和TLC5940 Tutorial - Simple Example * by Dejan Nedelkovski, www.HowTbet188官方网站oMechatronics.com */ #include " TLC5940 .h" void setup() {Tlc.init(0);//初始化TLC5940并关闭所有通道}void loop() {Tlc.set(0,4095);//(Output Pin from 0 to 15,PWM Value from 0 to 4095) //注意:前面的功能不会立即激活输出。当Tlc.update()函数被执行时,输出将被激活!Tlc.update ();//激活之前设置的输出延迟(1000);//同时激活所有16个输出,我们可以使用For循环设置所有的PWM值为4095。然后Tlc.updata()函数将同时激活它们。For (int I = 0;我< 16; i++) { Tlc.set(i, 4095); } Tlc.update(); delay(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,我们可以使用上面所示的相同电路原理图。唯一的区别是,第一个IC的SOUT(信号输出–引脚17)需要连接到第二个IC的SIN(信号输入–引脚26),以此类推。
至于编程部分,我们需要做一些修改。在TLC5940库文件夹中,我们需要修改tlc_config.h文件,并将变量NUM_TLCS的值更改为串联的TLC5940 IC的数量,在我们的情况下,该值为2。完成此操作后,现在我们可以轻松地寻址0到31之间的所有LED,并使用与前面所述相同的编程方法。
作为一个例子,在下面的链接中,你可以查看我的DIY LED心脏相框- Arduino项目,我使用2个TLC5940芯片控制32个LED。
是否有可能控制例如10 RGB Led二极管,但“单独”?我需要的是控制10个led,每个都要亮另一种颜色
谢谢你的回答
每个RGB LED需要3个不同的引脚。所以对于10个RGB LED,你需要30个引脚,2个这样的IC。然而,也有不同的方式,更多的控制LED少引脚,如多路复用或charlieplexing。
对于你的LED相框,你用的是什么板?你用的是什么线
一切都在项目的帖子里解释。
嘿,我在想有没有可能用这些装置来控制meanwell ldd-700 ?
对不起,我没有这方面的经验。
使用TLC5940,我可以控制每个输出的PWM值,还是16个输出的PWM值必须相同?
是的,您可以分别控制每个输出。