
20230128 ledcontrol
例子三
1 |
|
例子一
#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);
}