Arduino LED矩阵库

显示驱动器

本例中使用的显示驱动器是MAX7221 and MAX7219

Arduino LED矩阵库

Arduino LED矩阵库

Arduino LED矩阵库

        使用的库为LedControl,可以在Arduino IDE的库管理工具中下载。

先来看一个简单的例子:

#include “LedControl.h”

LedControl lc=LedControl(12,11,10,1);

void setup()
{

  /*

   MAX72XX默认是节能模式,需要将其唤醒

   */

  lc.shutdown(0,false);

  /* 设置亮度 */

  lc.setIntensity(0,8);

  /* 清空 */

  lc.clearDisplay(0);

}


void loop()

{

 lc.setLed(0,2,7,true);

//点亮第三行第八列的LED灯

lc.setLed(0,0,1,true);

//点亮第一行第二列的LED灯

delay(500);

lc.setLed(0,2,7,false);

lc.setLed(0,0,1,false);

delay(500);

}

解释:

LedControl lc=LedControl(12,11,10,1);

该行代码声明了一个LEDControl类型的一个实例  Ic  ,占用Arduino12,11,10三个数字针脚,任意三个数字针脚都可以,但是建议不要使用0,1,13号针脚。

最后的参数1,表示的意思是只使用了一块LED矩阵,如果是多块LED矩阵连在一起的画需要修改该参数。

 Arduino LED矩阵库

另外一个重要的函数是

setRow(addr,row,value)

三个参数的意思分别是:

addr:LED矩阵的地址,第一块地址为0

row:LED矩阵的行

value:在一行LED中显示的值,使用byte数据类型(0表示LED灭,1代表LED亮),如

byte数据B11111110,表示第一至第七列的LED亮,第八列的LED灭

例子:

#include “LedControl.h”

LedControl lc=LedControl(12,11,10,1);

unsigned long delaytime=100;

void setup()
{

  /*

   MAX72XX默认是节能模式,需要将其唤醒

   */

  lc.shutdown(0,false);

  /* 设置亮度 */

  lc.setIntensity(0,8);

  /* 清空 */

  lc.clearDisplay(0);

}


void loop()

{

lc.setRow(0,0,B01111110);

delay(100);

lc.setRow(0,1,B01111110);

delay(100);

lc.setRow(0,2,B01111110);

delay(100);

lc.setRow(0,3,B01111110);

delay(100);

lc.setRow(0,4,B01111110);

delay(100);

lc.setRow(0,5,B01111110);

delay(100);

lc.setRow(0,6,B01111110);

delay(100);

lc.setRow(0,7,B01111110);

delay(100);

lc.setRow(0,0,0);

lc.setRow(0,1,0);

lc.setRow(0,2,0);

lc.setRow(0,3,0);

lc.setRow(0,4,0);

lc.setRow(0,5,0);

lc.setRow(0,6,0);

lc.setRow(0,7,0);

delay(100);

}

其中一张图如下:

Arduino LED矩阵库