ESP8266-Arduino编程实例-LED点阵驱动(基于Max7219)

LED点阵驱动(基于Max7219)

1、Max7219介绍

MAX7219/MAX7221是紧凑型串行输入/输出共阴极显示驱动器,可将微处理器(µPs)连接到多达8位的7段数字LED显示器、条形图显示器或64个独立LED。片上包括一个 BCD 代码 B 解码器、多路扫描电路、段和数字驱动器,以及存储每个数字的 8×8 静态 RAM。只需一个外部电阻器即可设置所有 LED 的分段电流。 MAX7221 与 SPI™、QSPI™ 和 MICROWIRE™ 兼容,并具有限摆率的段驱动器以降低 EMI。

在前面的文章中,对MAX7219及LED的驱动做了详细的介绍,请参考:

2、硬件准备

  • ESP8266 NodeMCU开发板一块
  • Max7219LED点阵一块
  • 面板板一个
  • 杜邦线若干
  • 数据线一条

硬件接线图如下:

在这里插入图片描述

3、软件准备

  • Arduino IDE或VSCode + PlatformIO

在前面的文章中,对如何搭建ESP8266开发环境做了详细的介绍,请参考:

ESP8266 NodeMCU的引脚介绍在前面的文章中做了详细的介绍,请参考:

4、代码实现

本文使用的Max7219驱动库如下:

1)导入依赖库头文件

1
2
3
4
5
6
7
8
9
10
11
#include <SPI.h>
#include "LedMatrix.h"

// 点阵数量
#define NUMBER\_OF\_DEVICES 1
// SPI CS引脚
#define CS\_PIN D8

// 创建LED点阵对象
LedMatrix ledMatrix = LedMatrix(NUMBER_OF_DEVICES, CS_PIN);

2)设备初始化

1
2
3
4
5
6
7
8
9
void setup() {
// 初始化
ledMatrix.init();
// 设置亮度
ledMatrix.setIntensity(4); // range is 0-15
// 设置显示文本
ledMatrix.setText("Hello World");
}

3)显示效果

1
2
3
4
5
6
7
8
9
10
11
12
void loop() {
// 清屏
ledMatrix.clear();
// 向左滚动
ledMatrix.scrollTextLeft();
// 显示文本
ledMatrix.drawText();
// 刷新
ledMatrix.commit();
delay(200);
}

文章来源: https://iotsmart.blog.csdn.net/article/details/126131841