我刚买了一个 Rainbowduino 控制一负荷的个人Led(不RGB矩阵)。所有的文献迄今为止的目的是向控制RGB阵列是 什么我之后。

如果你不熟悉的Rainbowduino这是一个 Arduino 克隆24恒流渠道的120马,8个超级源驱动的信道的500马每和广泛的输出电压的适应从5V-12伏特的直流电。完美的驾驶指示灯。的产品的网页是: http://www.seeedstudio.com/blog/?page_id=187

我已经连接上16Led并希望能够把每一个和关闭独立 digitalWrite().我上传的一些演示码的板是不是真的工作。我曾经出,8驱动程序的来源渠道是容易控制与 digitalWrite() 在销3-11.然而控制的其他24散的渠道是更加困难。显然他们是控制由3移寄存器(一)我只能访问与shiftOut.我不知道这是如何工作的。有人可以帮助点我在正确的方向?

一半的Led是有线进入蓝色的1-8和另一半是有线进入绿色1至8。正的腿有线成VCC1-2已设置,高。我相信的路线是否正确,这是编程,我具有的问题。

我已经看过这样的代码,这是附带的Rainbowduino,但我不能让它的意义。我怎样才能解决这个问题?

有帮助吗?

解决方案

利用一个转移登记复(或de多,这取决于你的观点)的投入/产出,是很常见的,在数字电子产品。

基本上,你贸易节省针对你的控制器具,以包括另一个芯片(移登记册)的设计。

在这种情况下,登记册作为一串平行转换器;它有一串行总线输入,这是喂位从你的CPU。它还有8个平行的产出,连接到一个8位存储器,装载串从CPU。使用这个,你可以"转移"8位上的数据一个单一的销(加上一个脚用于计时,通常),然后将它们储存在转移登记册和可以驱动8Led行。

在这种特定情况下,需要找出哪AVR口销的移寄存器(该MBI5168恒流沈的驱动程序含有的转移注册,在这里)连接。他们应该被链接到一对产出的,一个用于数据和一个钟。一旦你知道那些针,你应该能够推动他们自己使用 ShiftOut 命令。

挖一点进一步, 这样品"草图" 包含以下定义,在该文件中称为"彩虹。h":

//MBI5168
#define SH_DIR_OE    DDRC
#define SH_DIR_SDI   DDRC
#define SH_DIR_CLK   DDRC
#define SH_DIR_LE    DDRC

#define SH_BIT_OE    0x08
#define SH_BIT_SDI   0x01
#define SH_BIT_CLK   0x02
#define SH_BIT_LE    0x04

#define SH_PORT_OE   PORTC
#define SH_PORT_SDI  PORTC
#define SH_PORT_CLK  PORTC
#define SH_PORT_LE   PORTC

这当然是总的数字"的传闻"(我没有自己的设备,我从来没有被编程上的任何一种*产品),但是我会说这是粒子喷出的颗子弹送系统。

我解释这像这样:

  • PORTC是一个连转移注册,所有的控制销在PORTC.
  • 四脚专门(而不是乐观的两种我提到的上文)。
  • 时钟是销PORTC:2和数据是PORTC:1.

其他提示

控制每个单个LED是相当昂贵的时间,最好是想行,而每个LED颜色被展现为在比特,所以它的8位×3色(红,绿,蓝)。我写了一个小Rainbowduino库,允许用户设置每一行或帧容易:

阅读我的博客文章

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top