ESP8266(ESP-12F)案例实操 -- 8x32点阵显示(MAX7219)
Posted GenCoder
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ESP8266(ESP-12F)案例实操 -- 8x32点阵显示(MAX7219)相关的知识,希望对你有一定的参考价值。
上一篇文章介绍过LedControl库函数,下面就用LedControl库来驱动点阵屏
案例模块
8x8点阵级联模块再某宝就能买到,以下是4块8x8的点阵模块级联,需要注意的是LedControl库最多只能驱动8块8x8点阵显示
案例编程
接线这么简单的事就不说了,DIN,CS,CLK接ESP8266的哪个引脚就定义哪个引脚,以下为基本的初始化代码,连接引脚可做参考
#include <LedControl.h>
// 32*8 LED Display DIN --> ESP-12F D7
// 32*8 LED Display CS --> ESP-12F D6
// 32*8 LED Display CLK --> ESP-12F D5
int DIN = D7;
int CS = D6;
int CLK = D5;
//创建库对象
LedControl LC = LedControl(DIN,CLK,CS,4);
void setup()
{
//初始化address 0-3的8*8点阵屏
for(int i = 0;i<4;i++)
{
LC.shutdown(i,false); //启动时,关闭省电模式
LC.setIntensity(i,0); //亮度设置
LC.clearDisplay(i); //清除显示
}
}
初始化完成后可以直接调用库函数进行点阵的行,列,点的显示(简单显示)
单行显示:
LC.setRow(0,3,0x7C);
单列显示:
LC.setColumn(0,3,0x7C);
点显示:
LC.setLed(0,1,1,true);
详细可参考 LedControl库 相关博文 - ESP8266(ESP-12F) 第三方库使用 – LedControl
对于要显示一个图案或英文这种占几行或者几列的内容的,就需要对库函数做个包装,下面是点阵显示4列内容的函数,参数为显示数组,要显示的点阵编号,数组显示下标,点阵显示偏移位,可以按个人需求改成5列8列的显示,或者改成行显示等
// display four col
void Display_4col(byte character[][4],int device_num,int col,int point)
{
for(int i = 0;i<4;i++)
{
DC.setColumn(device_num,point+i,character[col][i]);
}
}
数组可以按显示内容分开
// 0 0
// - -
// ● ●
byte eye_display[][4] = {
{0x3C,0x42,0x42,0x3C},
{0x3C,0x7E,0x7E,0x3C},
{0x10,0x10,0x10,0x10},
};
在显示时直接调用函数传参就行,类似下面代码就是显示一个连续眨眼的效果
for(int i = 0;i<2;i++)
{
Display_4col(eye_display,2,0,2);
Display_4col(eye_display,1,0,2);
delay(1350);
Display_4col(eye_display,2,2,2);
Display_4col(eye_display,1,2,2);
delay(150);
}
效果演示
点阵屏眨眼效果如下,可以用字模软件编辑更多图案或字符做出来更有趣的效果
以上是关于ESP8266(ESP-12F)案例实操 -- 8x32点阵显示(MAX7219)的主要内容,如果未能解决你的问题,请参考以下文章
STM32+ESP8266(ESP-12F)实现在线OTA升级(腾讯云物联网)
STM32+ESP8266(ESP-12F)实现在线OTA升级(腾讯云物联网)
STM32+ESP8266(ESP-12F)实现在线OTA升级(腾讯云物联网)