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

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


点亮多个灯


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

当要点亮夸行列的灯时,




注意!此信息未认证,请谨慎判断信息的真实性!

全部评论
空

相关内容推荐

点赞 评论 收藏
转发
头像 头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 收藏 评论
分享

全站热榜

正在热议