我介于一个使用Arduino Uno R3的小项目之间,我必须控制一个9 X 16 LED矩阵。
在我开始项目之前,我已经计划了8 X 8 LED矩阵(解决方案here将适用于8X8)我知道如果我使用Arduino Mega(具有更多输出引脚),相同的解决方案将起作用< / p>
任何人都可以建议我如何使用Arduino UNO控制9 * 16 LED矩阵
答案 0 :(得分:0)
答案 1 :(得分:0)
另一条路线是使用多路复用器。它们允许您使用少量arduino引脚来处理许多输出(或输入)。
类似于左侧的设置将允许嵌套多路复用器以实现对更多LED的控制。您遇到的唯一问题是LED在被寻址之间可能会变暗一点。
这是关于该主题的Arduino页面(带有示例代码)。 http://www.arduino.cc/playground/Learning/4051
/*
* codeexample for useing a 4051 * analog multiplexer / demultiplexer
* by david c. and tomek n.* for k3 / malm� h�gskola
*
* edited by Ross R.
*/
int r0 = 0; //value of select pin at the 4051 (s0)
int r1 = 0; //value of select pin at the 4051 (s1)
int r2 = 0; //value of select pin at the 4051 (s2)
int count = 0; //which y pin we are selecting
void setup(){
pinMode(2, OUTPUT); // s0
pinMode(3, OUTPUT); // s1
pinMode(4, OUTPUT); // s2
}
void loop () {
for (count=0; count<=7; count++) {
// select the bit
r0 = bitRead(count,0); // use this with arduino 0013 (and newer versions)
r1 = bitRead(count,1); // use this with arduino 0013 (and newer versions)
r2 = bitRead(count,2); // use this with arduino 0013 (and newer versions)
//r0 = count & 0x01; // old version of setting the bits
//r1 = (count>>1) & 0x01; // old version of setting the bits
//r2 = (count>>2) & 0x01; // old version of setting the bits
digitalWrite(2, r0);
digitalWrite(3, r1);
digitalWrite(4, r2);
//Either read or write the multiplexed pin here
}
}