LED点阵的基本操作探索


此页面通过工具从 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); } } }


这个代码会按照行列依次点亮每个灯。


点亮多个灯


对于点亮一行灯而言,没有难度。

当要点亮夸行列的灯时,




Avatar
huiren
Code Artisan

问渠那得清如许,为有源头活水来

下一页
上一页
comments powered by Disqus