20230128 ledcontrol
明昧 Lv7

20230128 ledcontrol

例子三

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <LedControl.h>

int DIN = 12;

int CS = 11;

int CLK = 10;



byte e[8]= {0x7C,0x7C,0x60,0x7C,0x7C,0x60,0x7C,0x7C}; //E

byte d[8]= {0x78,0x7C,0x66,0x66,0x66,0x66,0x7C,0x78}; //D

byte u[8]= {0x66,0x66,0x66,0x66,0x66,0x66,0x7E,0x7E}; //U

byte c[8]= {0x7E,0x7E,0x60,0x60,0x60,0x60,0x7E,0x7E}; //C

byte eight[8]= {0x7E,0x7E,0x66,0x7E,0x7E,0x66,0x7E,0x7E}; //8

byte s[8]= {0x7E,0x7C,0x60,0x7C,0x3E,0x06,0x3E,0x7E}; //S

byte dot[8]= {0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18}; //.

byte o[8]= {0x7E,0x7E,0x66,0x66,0x66,0x66,0x7E,0x7E}; //O

byte m[8]= {0xE7,0xFF,0xFF,0xDB,0xDB,0xDB,0xC3,0xC3}; //M

LedControl lc=LedControl(DIN,CLK,CS,4);



void setup(){

lc.shutdown(0,false); //启动时,MAX72XX处于省电模式

lc.setIntensity(0,8); //将亮度设置为最大值

lc.clearDisplay(0); //清除显示

}



void loop(){

byte smile[8]= {0x3C,0x42,0xA5,0x81,0xA5,0x99,0x42,0x3C};//笑脸

byte neutral[8]= {0x3C,0x42,0xA5,0x81,0xBD,0x81,0x42,0x3C};//标准脸

printByte(eight);//显示8

delay(1000);//延时1秒

printByte(neutral);//显示标准脸

delay(1000);

}

//点阵显示函数

void printByte(byte character [])

{

int i = 0;

for(i=0;i<8;i++)

{

lc.setRow(0,i,character[i]);

}

}

例子一

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

}

 Comments
Comment plugin failed to load
Loading comment plugin
Powered by Hexo & Theme Keep
Unique Visitor Page View