需要的元件
8X8LED矩阵一个(红色,共阳极)
560欧电阻8个
移位寄存器74HC595两个
面包板一个
Arduino UNO一个
跳线若干
基本原理接线图
16个针脚
两个移位寄存器和arduino接线图
行与列比特分布图
列要是0(LOW),行要是1(HIGH),对应的LED才会被点亮
例如要让矩阵显示如下所示的图形(黑点表示LED点亮):
显示图形
参照行列比特分布图,可以得到如下比特分布图:
比特分布图
arduino代码如下:
#define DATA 6
#define LATCH 8
#define CLOCK 10
void setup() {
// put your setup code here, to run once:
pinMode(DATA,OUTPUT);
pinMode(LATCH,OUTPUT);
pinMode(CLOCK,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(LATCH,LOW);
shiftOut(DATA,CLOCK,MSBFIRST,B10101010);//列
shiftOut(DATA,CLOCK,MSBFIRST,~B10101010);//行
digitalWrite(LATCH,HIGH);
do{}while(1);
}
其中涉及到比特运算(非):
~B10101010==B01010101
取反操作
效果如下图:
效果图
如何只点亮一盏LED灯
现在需要得到如下的效果: