arduino led 矩阵库
显示驱动器
本例中使用的显示驱动器是MAX7221 and MAX7219
max7219显示驱动器
使用的库为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矩阵连在一起的画需要修改该参数。
另外一个重要的函数是
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);
}
其中一张图如下:
原文地址:http://www.toutiao.com/a6439781526434660609/ |