(十三)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板连接方式:

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

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

给TA买糖
共{{data.count}}人
人已赞赏
ArduinoArduino-入门

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

2018-6-14 10:50:25

ArduinoArduino-入门

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

2018-6-14 11:05:50

10 条回复 A文章作者 M管理员
  1. 倾宇

    Henhao

  2. 倾宇

    Hao

  3. 一川烟草

    厉害

  4. Shuang

    非常感谢分享

  5. ?2841

    厉害

  6. Yoko

    nice

  7. 哪?

    good

  8. 多余

    666

  9. 多余

    真棒

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