此页面通过工具从 csdn 导出,格式可能有问题。
以 CL1588BS 8*8点阵 为例
引脚说明
这个家伙有上下两排共16个引脚,每个引脚负责一行(或一列的信号)。
当 行为高电平 列为低电平 时灯会亮。( r[x] == 1 && c[y] == 0 )
在网上找到了一个对应行列图,铭牌朝自己。
点亮一个灯
思路很简单,就是把行列输出对应的电平,
注意一下初始状态,如果我要点亮 L(x,y),那么第 x 行其它列必须初始化为 HIGH 电平,不然整个x 行都会亮。
代码大概是这个样子(因为只是学习,所以我只用了中间4*4的区域)
const int
_r = 3, // 行偏移
_c = 8, // 列偏移
Fr = 100 // 频率
;
void setup() {
for ( int i(_r); i <= 12; i++) pinMode(i, OUTPUT);
flash();
}
void flash(){
for ( int i(1 + _r); i <= 4 + _r; i++) digitalWrite(i, LOW);
for ( int i(1 + _c); i <= 4 + _c; i++) digitalWrite(i, HIGH);
}
void echo(int i, int j) {
flash();
digitalWrite(i + _r, HIGH);
digitalWrite(j + _c, LOW);
delay(Fr);
}
void loop() {
for ( int i(1); i <= 4; i++){
for (int j(1); j <= 4; j++){
echo(i, j);
}
}
}
这个代码会按照行列依次点亮每个灯。
点亮多个灯
对于点亮一行灯而言,没有难度。
当要点亮夸行列的灯时,