Keyes 8x16 LED 点阵屏模块使用教程 (KS0357)
1. 产品简介
Keyes 8x16 LED 点阵屏模块(型号:KS0357)是一款非常实用的显示模块。该模块的正面排列了 128 个高亮 LED 灯,组成了一个 8行 x 16列 的点阵网络。模块的背面焊接了 AIP1640 驱动芯片,并提供了一个 4Pin 的防反插接口(包含 GND、VCC、SDA、SCL)。
该模块通过 I2C 通信协议与微控制器(如 Arduino)进行通信。通过编写代码控制 AIP1640 芯片,您可以轻松控制这 128 个 LED 灯的亮灭状态,从而在点阵屏上显示您想要的任何图像、字符或动画。此外,您还可以在代码中自由调节 LED 的显示亮度。
为了方便接线,产品附带了一根 HX-2.54 4Pin 连接线。
产品清单:
1 x 8x16 LED 点阵屏模块 (间距 4mm)
1 x HX-2.54 4Pin 连接线
2. 产品特点
正面:LED 呈 8x16 矩阵排列。
背面:集成 AIP1640 驱动芯片。
接口:自带 4Pin I2C 通信接口。
安装:带有四个 2.2mm 固定孔,方便将其安装在其他设备或结构上。

3. 技术规格参数
在进行项目开发前,请务必了解该模块的技术参数,以确保安全和稳定运行:
参数名称 |
规格值 |
|---|---|
工作电压 |
DC 3.3V - 5V |
功耗 |
400mW |
振荡频率 |
450KHz |
驱动电流 |
200mA |
工作温度范围 |
-40°C ~ 80°C |
通信方式 |
I2C 通信 |
模块重量 (含线) |
12.2g |
产品尺寸 |
72mm x 32mm x 8mm |
4. 产品尺寸图
您可以参考以下尺寸图进行外壳设计或安装规划:

5. 硬件连接说明
您可以使用 Arduino UNO 开发板来测试此点阵屏模块。使用附带的 HX-2.54 4Pin 连接线可以非常方便地完成接线。
接线对应关系:
GND (点阵屏) -> GND (Arduino UNO)
VCC (点阵屏) -> 5V (Arduino UNO)
SDA (点阵屏) -> A4 (Arduino UNO)
SCL (点阵屏) -> A5 (Arduino UNO)
接线示意图:

背面接口特写:

6. 上传测试代码
接线完成后,您可以将以下示例代码复制并粘贴到 Arduino IDE 中进行上传测试。该代码将演示如何在点阵屏上显示不同的图案。
// 数据显示方向:从右到左,从下到上,高电平点亮。
#define IIC_SCL A5
#define IIC_SDA A4
unsigned char data_line = 0;
unsigned char delay_count = 0;
void IIC_start();
void IIC_send(unsigned char send_data);
void IIC_end();
// 定义要显示的4个图像数据
unsigned char table[4][16] = {
{0x00,0x00,0x00,0x00,0x26,0x41,0x86,0x80,0x80,0x80,0x86,0x41,0x26,0x00,0x00,0x00}, // 图像 1
{0x00,0x00,0x00,0x00,0x00,0x1C,0x22,0x42,0x84,0x42,0x22,0x1C,0x00,0x00,0x00,0x00}, // 图像 2:心形
{0x00,0x00,0x00,0x00,0x20,0x44,0x42,0x84,0x80,0x84,0x42,0x44,0x20,0x00,0x00,0x00}, // 图像 3:笑脸
{0x00,0x00,0x00,0x00,0xC0,0x40,0xF8,0xD8,0x7E,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00} // 图像 4
};
void setup()
{
pinMode(IIC_SCL,OUTPUT);
pinMode(IIC_SDA,OUTPUT);
digitalWrite(IIC_SCL,LOW);
digitalWrite(IIC_SDA,LOW);
}
void loop()
{
/************** 设置地址自动加1 ***************/
IIC_start();
IIC_send(0x40);
IIC_end();
/************ 设置数据显示 *****************/
IIC_start();
IIC_send(0xc0); // 设置初始地址为 0
for(char i = 0; i < 16; i++)
{
IIC_send(table[data_line][i]); // 发送显示数据
}
// 切换显示的图像
if(++delay_count >= 10)
{
delay_count = 0;
data_line++;
if(data_line >= 4)
{
data_line = 0;
}
}
IIC_end();
/************* 设置亮度显示 ***************/
IIC_start();
IIC_send(0x8A); // 设置亮度
IIC_end();
delay(100);
}
/*---------------- I2C 通信底层函数 ----------------*/
void IIC_start()
{
digitalWrite(IIC_SCL,LOW);
delayMicroseconds(3);
digitalWrite(IIC_SDA,HIGH);
delayMicroseconds(3);
digitalWrite(IIC_SCL,HIGH);
delayMicroseconds(3);
digitalWrite(IIC_SDA,LOW);
delayMicroseconds(3);
}
void IIC_send(unsigned char send_data)
{
for(char i = 0; i < 8; i++)
{
digitalWrite(IIC_SCL,LOW);
delayMicroseconds(3);
if(send_data & 0x01)
{
digitalWrite(IIC_SDA,HIGH);
}
else
{
digitalWrite(IIC_SDA,LOW);
}
delayMicroseconds(3);
digitalWrite(IIC_SCL,HIGH);
delayMicroseconds(3);
send_data = send_data >> 1;
}
}
void IIC_end()
{
digitalWrite(IIC_SCL,LOW);
delayMicroseconds(3);
digitalWrite(IIC_SDA,LOW);
delayMicroseconds(3);
digitalWrite(IIC_SCL,HIGH);
delayMicroseconds(3);
digitalWrite(IIC_SDA,HIGH);
delayMicroseconds(3);
}
7. 预期显示效果
成功上传代码后,您应该会看到 LED 点阵屏上交替显示不同的图案,例如心形和笑脸。


8. 工作原理与图像数据生成
您可能会好奇代码中的十六进制数据是如何变成图案的。让我们详细了解一下图像的设置原理。
在代码中,我们定义了一个二维数组 table[4][16] 来存储 4 个图像的数据。以第二个图像(心形)为例:
{0x00,0x00,0x00,0x00,0x00,0x1C,0x22,0x42,0x84,0x42,0x22,0x1C,0x00,0x00,0x00,0x00}
请按照下图的方式放置您的点阵屏模块(注意引脚方向):

点阵屏有 16 列,数组中的 16 个十六进制数分别对应这 16 列。我们需要将这些十六进制数转换为 8 位的二进制数:
第 1 列:
0x00->0 0 0 0 0 0 0 0第 2 列:
0x00->0 0 0 0 0 0 0 0第 3 列:
0x00->0 0 0 0 0 0 0 0第 4 列:
0x00->0 0 0 0 0 0 0 0第 5 列:
0x00->0 0 0 0 0 0 0 0第 6 列:
0x1C->0 0 0 1 1 1 0 0第 7 列:
0x22->0 0 1 0 0 0 1 0第 8 列:
0x42->0 1 0 0 0 0 1 0第 9 列:
0x84->1 0 0 0 0 1 0 0第 10列:
0x42->0 1 0 0 0 0 1 0第 11列:
0x22->0 0 1 0 0 0 1 0第 12列:
0x1C->0 0 0 1 1 1 0 0第 13列:
0x00->0 0 0 0 0 0 0 0第 14列:
0x00->0 0 0 0 0 0 0 0第 15列:
0x00->0 0 0 0 0 0 0 0第 16列:
0x00->0 0 0 0 0 0 0 0
转换规则:
第一个十六进制数控制第一列的 LED 灯,第二个数据控制第二列,以此类推。
在 8 位二进制数中,数字
1表示 LED 点亮,数字0表示 LED 熄灭。对于每一列的 8 位二进制数,最低位(最右边)控制最下面一行(第8行)的 LED,最高位(最左边)控制最上面一行(第1行)的 LED。

通过这种方式,您可以自己在图纸上画出想要的图案,然后逐列计算出对应的十六进制数据,替换到代码的数组中即可。
注:通常我们也可以使用一些取模软件来自动生成这些数据,从而大大简化图像设计的过程。