1.概述
当我们利用单片机驱动一个8*8点阵时,我们总共需要用到16个数字口,这样就极大的浪费单片机资料。为此,我们特别设计了这个模块,利用HT16K33芯片驱动1个8*8点阵,只需要利用单片机的I2C通信端口控制点阵,大大的节约了单片机资源。
为了方面接线,我们还配送1根4pin线,线的一端为白色防反插接口(和模块上防反插白色端子匹配),另一端为4pin杜邦线母头接口。
模块兼容各种单片机控制板,如arduino系列单片机。使用时,我们可以在单片机上堆叠一个传感器扩展板。模块和自带导线连接,然后连接在传感器扩展板上,简单方便。模块上自带3个拨码开关,可以让你随意拨动开关,这I2C通信地址。设置方法如下表格。
A0(1) | A1(2) | A2(3) | A0(1) | A1(2) | A2(3) | A0(1) | A1(2) | A2(3) | |
0(OFF) | 0(OFF) | 0(OFF) | 1(ON) | 0(OFF) | 0(OFF) | 0(OFF) | 1(ON) | 0(OFF) | |
OX70 | OX71 | OX72 | |||||||
A0(1) | A1(2) | A2(3) | A0(1) | A1(2) | A2(3) | A0(1) | A1(2) | A2(3) | |
1(ON) | 1(ON) | 0(OFF) | 0(OFF) | 0(OFF) | 1(ON) | 1(ON) | 0(OFF) | 1(ON) | |
OX73 | OX74 | OX75 | |||||||
A0(1) | A1(2) | A2(3) | A0(1) | A1(2) | A2(3) | ||||
0(OFF) | 1(ON) | 1(ON) | 1(ON) | 1(ON) | 1(ON) | ||||
OX76 | OX77 |
同时,模块自带2个直径为3mm的定位孔,方便你将模块固定在其他设备。
2.规格参数
导线长度:200mm
工作电压:DC 5V
接口:间距为2.54mm 4pin防反接口
定位孔大小:直径为3mm
通讯方式:I2C通讯
I2C通信地址: 3个拨码开关设置
点阵屏显示颜色:红色
尺寸:50*31*9mm
重量:13.6g
3.连接图
4.测试代码
注意:代码中需要安装库文件,即把Matrix文件夹放入编译器安装目录下的\Arduino\libraries里。
放置成功后,需要重启编译器,不然编译不过。
例如我的:C:\Program Files\Arduino\libraries
#include <Matrix.h>
Matrix myMatrix(A4,A5);
uint8_t LedArray1[8]={0x00,0x18,0x24,0x42,0x81,0x99,0x66,0x00};
uint8_t LEDArray[8];
void setup(){
myMatrix.begin(0x70);
}
void loop(){
myMatrix.clear();
for(int i=0; i<8; i++)
{
LEDArray[i]=LedArray1[i];
for(int j=7; j>=0; j–)
{
if((LEDArray[i]&0x01)>0)
myMatrix.drawPixel(j, i,1);
LEDArray[i] = LEDArray[i]>>1;
}
}
myMatrix.writeDisplay();
}
5.测试结果
烧录好测试代码,按照接线图连接好线;上电后,点阵显示一个心形图案。
6.设置方法
1.设置通信地址,参考前面表格,我们测试代码设置如下图。
2、设置显示图像。
可以通过以下代码设置显示图案。
uint8_t LedArray1[8]={0x00,0x18,0x24,0x42,0x81,0x99,0x66,0x00};
我们将点阵横放
将0x00,0x18,0x24,0x42,0x81,0x99,0x66,0x00换成二进制数
0x00为0 0 0 0 0 0 0 0
0x18为0 0 0 1 1 0 0 0
0x24为0 0 1 0 0 1 0 0
0x42为0 1 0 0 0 0 1 0
0x81为1 0 0 0 0 0 0 1
0x99为1 0 0 1 1 0 0 1
0x66为0 1 1 0 0 1 1 0
0x00为0 0 0 0 0 0 0 0
第一个16进制数据就代表控制第一列LED,第二个数据就代表控制第二列LED。以此类推。
设置方法是,转换为二进制位8位数值,0代表LED熄灭,1代表LED亮起。转换后的数值第一位就是
控制第一行LED亮灭,依次类推。
7.库文件链接地址
https://pan.baidu.com/s/1d8y6WNv0Zp2YuBx6Kd2J5g
提取码:zoa2