十一,ESP32 SPI LED点阵显示信息

释放双眼,带上耳机,听听看~!

一.介绍

本演示向您展示如何通过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 LED点阵显示信息
图: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]

:ESP32连接到LED矩阵模块

十一,ESP32 SPI LED点阵显示信息
图:ESP32 连接到点阵模块

四.代码设计

我们将使用 为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矩阵的数量

十一,ESP32 SPI LED点阵显示信息
图:4串联模式的LED点阵

最后,就是相应的代码了。

/*******************************************************
                     ESP32 LED点阵显示信息
   功能:使用SPI LED点阵显示信息
   引脚:GPIO14 -> LED CLK   GPIO12 ->LED DIN(MOSI)   GPIO15 ->LED CS
   Designer: Code_Mouse
   Date:2018-9-8
 *******************************************************/

#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点阵显示相应的信息。以下就是实现的效果:

十一,ESP32 SPI LED点阵显示信息

给TA买糖
共{{data.count}}人
人已赞赏
ESP32ESP32-基础

十,ESP32 在I2C LCD显示信息

2018-9-8 0:35:16

ESP32ESP32-基础

十二,ESP32将数据存储到SD卡

2018-9-8 12:44:46

5 条回复 A文章作者 M管理员
  1. 如何将 EasyIoT 部分变成 串口输入的字符呢,我试着用tempText = Serial.Read(); 方式读,但读不到呢 ✗汗✗

  2. 疾风之猫

    为什么我的程序 调出来是四个小屏分别显示

    • Luca

      是不是延时太长了

  3. 愁容骑士

    学习

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索