(十三)arduino入门:LED点阵显示

一、本节介绍

与低扫描电压,点矩阵LED显示器具有优点诸如节能、使用寿命长、成本低、亮度高、视角宽、视距长、防水、规格众多。LED点阵显示器,可以满足不同应用并因此具有广阔的发展前景。这一次,我们将LED点阵实验,亲身体验其魅力。

二、材料准备

1*-Arduno UNO板

1-88点阵

电阻器220Ω*(-8)

-杜邦线

-2*74HC595

-USB数据线

三、原理讲解

外部的点矩阵如下所示:

image https://bbs.qutaojiao.com/assets/images/1-B6uT7TiYGLa69lEM.png

关于针脚定义:

定义行、列编号(仅用于第一点阵数结束其与BS模型)

image https://bbs.qutaojiao.com/assets/images/1-ddVjQWcXhm2a5M1F.png

引脚编号对应于上述多行和列:

image https://bbs.qutaojiao.com/assets/images/1-K83jK56EE4Qzcwrc.png

四、实验步骤

步骤1:构建电路

将74HC595(U2)连接起来,点矩阵和Arduino UNO板连接方式:

隐藏内容,您需要满足以下条件方可查看
End

与另一个74HC595连接(U3),点矩阵和Arduino UNO板连接方式:

隐藏内容,您需要满足以下条件方可查看
End

image https://bbs.qutaojiao.com/assets/images/1-18uIK7GNmjVEgdp3.png

该示意图

image https://bbs.qutaojiao.com/assets/images/1-3rW8iVpemgu2IwtS.png

步骤2:编写程序

步骤3:编译代码

步骤4:上载到Arduino UNO板草图

在这里,您应该会看到圆点矩阵显示0~F。

image https://bbs.qutaojiao.com/assets/images/1-mhwHv3VDbof5HZ62.png

本节程序:

       
设备: 添加
平台:
/************************/
//点阵显示屏
//将所述点矩阵显示0~F圆
//2017.11.11
/************************/

const int latchPin = 8;//定义引脚
const int clockPin = 12;
const int dataPin = 11;
int data[] = {
  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /*" ",0*/
  0xFF, 0xC1, 0xBE, 0xBE, 0xBE, 0xC1, 0xFF, 0xFF, /*"0",1*/
  0xFF, 0xDF, 0xDF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, /*"1",2*/
  0xFF, 0xDC, 0xBC, 0xBA, 0xB6, 0xCE, 0xFF, 0xFF, /*"2",3*/
  0xFF, 0xDD, 0xBE, 0xB6, 0xB6, 0xC9, 0xFF, 0xFF, /*"3",4*/
  0xFB, 0xF3, 0xEB, 0xDB, 0x80, 0xFB, 0xFF, 0xFF, /*"4",5*/
  0xFF, 0x8D, 0xAE, 0xAE, 0xAE, 0xB1, 0xFF, 0xFF, /*"5",6*/
  0xFF, 0xC1, 0x96, 0xB6, 0xB6, 0xD9, 0xFF, 0xFF, /*"6",7*/
  0xFF, 0xBF, 0xBC, 0xB3, 0xAF, 0x9F, 0xFF, 0xFF, /*"7",8*/
  0xFF, 0xC9, 0xB6, 0xB6, 0xB6, 0xC9, 0xFF, 0xFF, /*"8",9*/
  0xFF, 0xCD, 0xB6, 0xB6, 0xB4, 0xC1, 0xFF, 0xFF, /*"9",10*/
  0xFC, 0xF3, 0xCB, 0x9B, 0xEB, 0xF3, 0xFC, 0xFF, /*"A",11*/
  0xFF, 0x80, 0xB6, 0xB6, 0xB6, 0xB6, 0xC9, 0xFF, /*"B",12*/
  0xFF, 0xE3, 0xDD, 0xBE, 0xBE, 0xBE, 0xBE, 0xDD, /*"C",13*/
  0xFF, 0x80, 0xBE, 0xBE, 0xBE, 0xBE, 0xDD, 0xE3, /*"D",14*/
  0xFF, 0x80, 0xB6, 0xB6, 0xB6, 0xB6, 0xBE, 0xFF, /*"E",15*/
  0xFF, 0x80, 0xB7, 0xB7, 0xB7, 0xB7, 0xBF, 0xFF, /*"F",16*/
  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /*" ",17*/
};
void setup ()
{
  //set pins to output
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
}

void loop()
{
  for (int n = 0; n < 136; n++)
  {
    for (int t = 0; t < 10; t ++) //显示重复10次
    {
      int dat = 0x01;
      for (int num = n; num < 8 + n; num++)
      {
        shiftOut(dataPin, clockPin, MSBFIRST, ~data[num]); //列的点矩阵控制
        shiftOut(dataPin, clockPin, MSBFIRST, ~dat); //  列的点矩阵控制
        //返回闩锁的信号引脚为高电平时,芯片
        //不再需要监听的信息
        digitalWrite(latchPin, HIGH); //将数据保存到闩锁销
        delay(1);
        digitalWrite(latchPin, LOW); //保持低的闩锁销和地面的传送
        dat = dat << 1;
        delay(1);
      }
    }
  }
}

人已赞赏
入门教程Arduino

(十二)arduino入门:74HC595数码管

2018-6-14 10:50:25

入门教程Arduino

(十四)arduino入门:NE555定时器

2018-6-14 11:05:50

2 条回复 A文章作者 M管理员
  1. Henhao

  2. Hao

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索