接线RGB LED


13

我想知道是否有可能像adafruit strip一样连接8个RGB LED。我看到了南瓜南瓜项目,并希望建立一个。我没有黄色或红色的LED,但是有少量的RGB。

我知道的Arduino我会用270ohm电阻为RGB阴极和的比例控制每个亮度0255

有没有办法在Raspberry Pi上做到这一点?


更新资料


所以我一直在研究这个。我让你们想到了使用TLC5940LED驱动器的想法。

所以现在我再次寻求帮助。我想出了一个长期的问题,最终解决了这个问题,这比在整个stackexchange中分散一堆更好。现在是布线部分。我开始使用arduino布线教程作为开始,因为我头顶不动。我也指的是数据表。根据该图,引脚27 or VPRG使我感到困惑。Arduino图已接地,因此我已接地。。。如何将其正确连接到pi?我也在猜测我也需要电阻...

很抱歉,这听起来真是愚蠢,但我是这门课程的真正初学者。您必须学会爬网,然后才能行走。

我需要做些什么来纠正此接线图(起毛)?

接线fzz文件可以从google 此处下载。 TLC5940

在此处输入图片说明


更新2-评论后


考虑到一些答案和评论,这就是接线图吗?阳极330ohm。2k欧姆到针20。输入如何从pi到芯片? 在此处输入图片说明


哦,南瓜pi =:0
Piotr Kula

您能说明几件事吗?您是否要驱动8个RGB LED的所有红色,绿色和蓝色LED(将采用24个输出,因此比TLC5940提供的16个多8个)。您正在使用什么RGB LED?我们需要知道它们是公共阳极还是公共阴极(您的接线看起来像公共阴极,不能与只能吸收电流的TLC5940一起使用。公共阴极将需要其他芯片)。同样,在使用3.3V电压时蓝色可能无法打开,因此需要5V电压。必须通过通孔电子设备(例如DIP)而不是表面安装。您是否在乎它使用3芯片而不是1?
gbulmer 2012年

@gbulmer抱歉。我没有LED随附的包装,但我认为在Common Cathode上使用arduino点亮它们是正确的,我写了HIGH。今晚我将在radioshack取一些Common Anode。我有5个TLC5940芯片,不在乎是否全部使用。我选择DIP的原因是使用面包板(婴儿步骤)。工作正常后,我将切换到表面贴装。
atrueresistance 2012年

Answers:


4

我看到这个问题应该解决两件事:

  1. 如何与TLC5940连接和通信

  2. 如何将LED连接到TLC5940

对于第一部分,您需要将其连接到Raspberry Pi的P1接头连接器的i2c引脚(即引脚3(数据)和引脚5(时钟))。然后,您可以将引脚1(3.3 V)用于TLC5940的VCC 。根据数据表,建议输入电压为3 V至5.5V。您还需要将接地引脚从P1(例如,引脚5)连接到TLC5940的GND 。并且您将需要一个额外的GPIO(例如,引脚7)连接到TLC5940的XLAT信号,以锁存移位寄存器的值。

然后,您将需要为i2c通信设置Pi:假设是树莓派,i2c-bcm2708从中删除/etc/modprobe.d/raspi-blacklist.conf,加载它,i2c-dev然后您应该得到/dev/i2c-0and /dev/i2c-1(这i2c-1是Model B Rev. 2 Pis需要使用的)。

最后,您将需要使用i2c事务来设置内部移位寄存器的值,然后向XLAT发出信号(如果使用引脚7,则为GPIO 4)。

我也忽略了GSCLK引脚。您将需要提供一个时钟输入,以使内部计数器实际增加,如果配置正确,则可以从另一条GPIO线完成。我也不认为3.3 V电源轨可以为该应用提供足够的电流(最大50 mA)。如果移至5 V电压轨,则可以吸收约300 mA电流,但随后应为i2c(和GSCLK)使用5 V逻辑,从而需要更多的组件。

对于第二部分,听起来好像您已经处理了一些过去的Arduino项目,除非我看错了?


6

是。您可以在PWM模式下使用GPIO引脚来控制每个亮度等级。来自connection.org.co的接线示例。来自Gordons Project的GPIO实用程序和指南是另一个起点

在此处输入图片说明

编辑

正如Alex Chamberlain指出的那样,只有一个GPIO引脚支持PWM。您可以使用软件在其他GPIO引脚上实现PWM。CPython的信息和示例。

这可能是过大的,因为南瓜派项目仅需要橙色光。如果您有RGB的库存,并且有时间进行实验,则可以在RGB上照亮单个LED颜色并将其与其他LED混合以生成第三色。2份红色与1份绿色的比率将显示为橙色。切换一半红色LED会产生橙色闪烁到黄色的错觉。但这是一种色彩理论;我没有尝试过


1
不只有一个PWM输出吗?
亚历克斯·张伯伦

好问题。eLinux声称所有GPIO引脚都可以重新配置为PWM。但是,“ 常规接线功能”仅规定GPIO-1(引脚18)支持PWM。6.2节的替代功能分配BCM2835列表中的所有PWM引脚; 其中,pi的GPIO上只有一个。
emcconville 2012年

eLinux文章写得不好。下面稍微好一点。
亚历克斯·张伯伦2012年

1
GPIO引脚确实无法提供或吸收足够的电流来直接驱动LED
John La Rooy

1

TLC5940之类的东西是驱动多个PWM LED的好方法

也可以在“编程趣味灯”应用笔记中查看TCA6507,尽管它在DIP中不可用

编辑:可以将TLC5940上的VPRG引脚保持接地。这仅表示您无法使用“点校正”来补偿LED的变化。如果您有一堆LED,并且想要进入更高的复杂度级别,则可以使用点校正使它们均匀点亮。

需要使用引脚20上的2k电阻来设置输出电流。

I OUT = 3.96 * R IREF
常规LED通常为20mA,因此公式可得出2k的电阻


0

有人写过这篇关于如何将TLC5940与AVR一起使用的文章,对我的确很有帮助:https : //sites.google.com/site/artcfox/demystifying-the-tlc5940

这对于学习学习如何编写适用于TLC5940的代码的过程非常有帮助。

示例代码的第一个版本非常通用。我正在将所有#define语句和低级函数转换为可以在Raspberry Pi上运行的东西。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.