HS-F13P 8x8点阵显示屏

HS-F13P 8x8点阵显示屏

1、介绍

8*8 点阵模块由 MAX7219 驱动,MAX7219 是一种集成化的串行输入/输出显示驱动器, 只需要 3个 IO 口即可驱动 1 个点阵,点阵显示时无闪烁且支持级联,8*8 点阵模块通过 Max7219 驱动,Max7219 采用的是三线串行通信,当接收 Arduino 数据时通过芯片内部 8*8 位静态 RAM 储存数据,在通过 Max7219 来控制 8*8 点阵模块的每个引脚的高低电平,从而达到显示目的。

2、原理图

8X8-点阵显示屏-HS-F13P 原理图 点击查看

3、模块参数

引脚名称

描述

CLK

时钟引脚

CS

锁存引脚

DIN

数据引脚

VCC

VCC(电源输入正极)

GND

GND(电源输入负极)

  • 供电电压:3.3V / 5V  

  • 连接方式:PH2.0端子

  • 安装方式:螺丝固定

4、电路板尺寸

5、Arduino IDE示例程序

注意:程序上传时如果提示库文件报错,请先导入库文件!
Arduino IDE 库文件下载及导入教程:
点击查看

示例程序(UNO开发板):

#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Max72xxPanel.h>

Max72xxPanel myMatrix = Max72xxPanel(9,1,1);
uint8_t  LEDArray[8];

const uint8_t LedArray1[8] PROGMEM ={0x00,0x18,0x24,0x00,0x00,0xa5,0x42,0x00};
const uint8_t LedArray2[8] PROGMEM ={0x00,0x24,0x18,0x00,0x00,0x24,0xc3,0x00};

void setup(){
  myMatrix.setRotation(0,3);
  myMatrix.fillScreen(0);
  myMatrix.write();
}

void loop(){
  //MAX7219上显示笑脸和哭脸各1秒

  memcpy_P(&LEDArray, &LedArray1, 8);
  for(int index_i=0; index_i<8; index_i++)
  {
    for(int index_j=0*8; index_j<0*8+8; index_j++)
    {
      if((LEDArray[index_i]&0x01)>0)
        myMatrix.drawPixel(index_j, 7-index_i,1);
      else
        myMatrix.drawPixel(index_j, 7-index_i,0);
      LEDArray[index_i] = LEDArray[index_i]>>1;
    }
  }
  myMatrix.write();
  delay(1000);
  memcpy_P(&LEDArray, &LedArray2, 8);
  for(int index_i=0; index_i<8; index_i++)
  {
    for(int index_j=0*8; index_j<0*8+8; index_j++)
    {
      if((LEDArray[index_i]&0x01)>0)
        myMatrix.drawPixel(index_j, 7-index_i,1);
      else
        myMatrix.drawPixel(index_j, 7-index_i,0);
      LEDArray[index_i] = LEDArray[index_i]>>1;
    }
  }
  myMatrix.write();
  delay(1000);

}

6、ESP32 Python 示例(适用于Mixly IDE /米思齐)

开发板选择 Python ESP32 【ESP32 Generic(4MB)】切换为代码模式上传

注意:程序上传时如果提示库文件报错,请先导入库文件!
米思齐(Mixly)IDE ESP32库文件下载及导入教程:
点击查看

示例程序(ESP32-Python):

import machine
import time

def write_byte(data):
    CS.value(0)
    for i in range(0, 8, 1):
        CLK.value(0)
        if ((data<<i)&0x80) == 0:
            DIN.value(0)
        else:
            DIN.value(1)
        CLK.value(1)

def write_data(addr, data):
    CS.value(0)
    write_byte(addr)
    write_byte(data)
    time.sleep_us(5)
    CS.value(1)

def Picture_display(Picture):
    for i in range(0, 8, 1):
        write_data(i + 1, Picture[i])



CLK = machine.Pin(18, machine.Pin.OUT)
CS = machine.Pin(5, machine.Pin.OUT)
DIN = machine.Pin(23, machine.Pin.OUT)
smiley = [0x00, 0x42, 0xA5, 0x00, 0x00, 0x24, 0x18, 0x00]
Crying_face = [0x00, 0xC3, 0x24, 0x00, 0x00, 0x18, 0x24, 0x00]
while True:
    Picture_display(smiley)
    time.sleep(1)
    Picture_display(Crying_face)
    time.sleep(1)

7、米思齐 Mixly 示例程序(图形化语言)

示例程序(UNO开发板):点击下载
注意:程序上传时如果提示库文件报错,请先导入库文件!
米思齐(Mixly)IDE Arduino库文件下载及导入教程:点击查看

示例程序(ESP32开发板):点击下载
注意:程序上传时如果提示库文件报错,请先导入库文件!
米思齐(Mixly)IDE ESP32库文件下载及导入教程:
点击查看

8、测试环境搭建

Arduino UNO 测试环境搭建

准备配件:

  • HELLO STEM UNO R3 PRO 开发板 *1

  • HELLO STEM UNO R3 P扩展板 *1

  • USB type-c 数据线 *1

  • 8X8点阵显示屏(HS-F13P)*1

  • PH2.0 5P端子转杜邦线*1

电路接线图:

ESP32 测试环境搭建

准备配件:

  • ESP32EA MOC 开发板 *1

  • ESP32-EXP1 扩展板 *1

  • USB type-c 数据线 *1

  • 8X8点阵显示屏(HS-F13P)*1

  • PH2.0 5P *1

电路接线图:待更新...

9、视频教程   

视频教程:点击查看

10、测试结果

Arduino UNO 测试结果:

器件连接好线之后,将上述程序烧录到 开发板之后,按下复位键,会看到点阵循环显示笑脸和哭脸。

ESP32 测试结果:

待更新...