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)的主要内容,如果未能解决你的问题,请参考以下文章

安信可ESP-12F(ESP8266)介绍与使用

STM32+ESP8266(ESP-12F)实现在线OTA升级(腾讯云物联网)

STM32+ESP8266(ESP-12F)实现在线OTA升级(腾讯云物联网)

STM32+ESP8266(ESP-12F)实现在线OTA升级(腾讯云物联网)

STM32+ESP8266(ESP-12F)物联网温度计-腾讯云物联网

STM32+ESP8266(ESP-12F)物联网温度计-腾讯云物联网