用很少的GPIO引脚控制许多LED


12

我使用以下指南成功完成了硬件“ hello world”:

http://www.raspberrypi-spy.co.uk/2012/06/control-led-using-gpio-output-pin/

现在,我想继续研究更大更亮的东西,那就是更独立控制的LED!显然,下一步是将电压源从Raspberry Pi上移开并添加更多的LED,但是最终我将用光GPIO引脚,所以我想现在我需要的是控制电路,以某种方式知道,基于GPIO“编码信号”,可以打开和关闭哪些LED。我应该寻找哪种电路示例?更重要的是,相对于Raspberry Pi,它或rpi.gpio是否会引起任何问题,也许是在信号时序方面?


通过使用PWM进一步减少GPIO或创建具有最少GPIO的大型阵列,Muliplexing可以从根本上减少需要使用的GPIO的数量,并与视觉感知结合。这里已经回答了。
Piotr Kula 2015年

Answers:


13

在这种情况下,您需要的是LED矩阵。您可以通过GPIO引脚控制此矩阵,但是这仍然限制了您可以连接的LED数量(矩阵的大小),如果不小心,它可能也开始消耗过多电流。

更好的选择是使用一个或多个I2C I / O扩展器将LED矩阵连接到I2C总线。这样,您可以创建一个巨大的矩阵(例如,可以使用一个16位I / O扩展器完成64个LED)。使用这些I / O扩展器的另一个原因是它们更健壮,可以提供更多电流,并使主CPU免受损害。

在此站点上,多次讨论了这些I / O扩展器,因此您应该能够轻松找到有关这些信息。该链接提供了有关这些扩展器和矩阵的一些信息(尽管用于输入,但是基本上是相同的想法,但是您无需使用矩阵来扫描而是控制LED)

制作平滑工作矩阵的唯一额外要求是,您需要使矩阵不更大,然后RPi才能每秒至少更新每个LED至少20次,否则您将开始看到闪烁,但这也得到了解释在第一个链接中(“视觉的多重性和持久性”段落)。


这很有趣。感谢您的阅读!在准备使用扩展器之前,我可以使用GPIO引脚进行小规模尝试。我已经使用GPIO引脚进行了一些测试,到目前为止,我已经能够获得令人满意的多路复用。我不必担心电流,因为我只会使用Pi来切换外部电流。这样可以扩展吗?可能不是,但是无论如何,我主要是在这里上课!
SkyNT

3

我已经使用MCP23017I²C端口扩展器来完成此类操作。单击此链接可找到树莓派的一些示例代码。您可以驱动每个芯片16个LED和8个芯片,而无需执行任何多路复用。

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.