一.介绍
本演示向您展示如何通过MAX7219模块将LED矩阵模块连接到Arduino ESP32,以显示ESP32的信息。将ESP32连接到LED矩阵模块有两种方法:
- 直接连接。通过这种方式,ESP32将浪费许多GPIO引脚(至少8×8用于8×8 Led矩阵)。
通过MAX7219模块连接。通过这种方式,ESP32将只使用3个GPIO引脚作为SPI MOSI,CLK和CS引脚。MAX7219负责将SPI数据转换为LED矩阵数据和控制信号。
二.元器件清单
- ESP32开发板
- 一个SPI 点阵模块
- 面包板
- 导线若干
三.电路图
将ESP32的引脚连接到LED矩阵的引脚:
[ESP32 GPIO14 – LED CLK]
[ESP32 GPIO12 – LED DIN(MOSI)]
[ESP32 GPIO15 – LED CS]
[ESP32 GND – LED GND]
[LED VCC – 5V]
四.代码设计
我们将使用 为Arduino制作的库MAX7219LedMatrix ,但我修改了一点与ESP32兼容。你可以在这里下载这个库:
https://github.com/nhatuan84/esp32-led-matrix
该库提供了一些功能:
- init():初始化库
- setText():设置要在LED矩阵上打印的文本
- scrollTextLeft():将文本滚动到左侧效果
- clear():清除显示
- drawText():开始绘制文本到缓冲区
- commit():将文本从缓冲区提交到LED点阵
为了使用这些功能,您需要 使用构造函数创建LedMatrix 实例:
LedMatrix ledMatrix = LedMatrix(NUMBER_OF_DEVICES,CLK_PIN,MISO_PIN,MOSI_PIN,CS_PIN)
注意:串行模式下NUMBER_OF_DEVICES级联LED矩阵的数量
最后,就是相应的代码了。
#include <SPI.h>
#include "LedMatrix.h"
#define NUMBER_OF_DEVICES 3 //串联led矩阵连接数
#define CS_PIN 15
#define CLK_PIN 14
#define MISO_PIN 2 //我们不使用此引脚只需填写匹配构造函数
#define MOSI_PIN 12
LedMatrix ledMatrix = LedMatrix(NUMBER_OF_DEVICES, CLK_PIN, MISO_PIN, MOSI_PIN, CS_PIN);
void setup() {
ledMatrix.init();
ledMatrix.setText("EasyIoT");
}
void loop() {
ledMatrix.clear();
ledMatrix.scrollTextLeft();
ledMatrix.drawText();
ledMatrix.commit();
delay(50);
}
五.测试代码
要测试代码,只需使用Arduino IDE上传它。然后,您应该看到LED点阵显示相应的信息。以下就是实现的效果: