LED点阵的基本操作探索


以 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);
    }
  }
}

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


点亮多个灯


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

当要点亮夸行列的灯时,




全部评论

相关推荐

03-21 08:46
已编辑
门头沟学院 C++
一个什么都不会的学生:当你有硕士学历的时候HR会说就是比本科生强
点赞 评论 收藏
分享
豆泥🍀:同26届,加油,我也还没找到查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务