HS-F13-L 8x8點陣顯示屏

HS-F13-L 8x8點陣顯示屏

1、介紹

8*8 點陣模組由 MAX7219 驅動,MAX7219 是一種集成化的串行輸入/輸出顯示驅動器, 只需要 3 個 IO 口即可驅動 1 個點陣,點陣顯示時無閃爍且支持級聯,8*8 點陣模組通過 Max7219 驅動,Max7219 運用的是三線串行通信,當接收 Arduino 資料時通過晶片內部 8*8 位靜態 RAM 儲存資料,在通過 Max7219 來控制 8*8 點陣模組的每個引腳的高低電平,從而達到顯示目的。

2、原理圖

8X8-點陣顯示屏-HS-F13-L 原理圖點擊查看

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-F13L)*1

  • PH2.0 5P端子轉杜邦線*1

電路接線圖:

ESP32 測試環境搭建

準備配件:

  • ESP32EA MOC 開發板 *1

  • ESP32-EXP1 扩展板 *1

  • USB type-c 資料線 *1

  • 8X8點陣顯示屏(HS-F13L)*1

  • PH2.0 5P *1

電路接線圖:

9、視頻教學

視頻教學:點擊查看

10、測試結果

Arduino UNO 混试结果:

器件連接好線之後,將上述程序燒錄到 開發板之後,按下复位鍵,會看到點陣循環顯示笑臉和哭臉。