🚀

ESP32+MAX7219で4x8x8LEDマトリクス表示

2022/11/05に公開

ESP32-WROVER-Eモジュールを搭載したESP32(ESP32-DevKitC-VE)とMAX7219 LED ディスプレイドライバーモジュールを使用して今後作りたい物のために文字表示を試してみました。

部品

ESP32-DevKitC-VE ESP32-WROVER-E開発ボード 8MB

https://akizukidenshi.com/catalog/g/gM-15674/

2個目になるDevKitC-VE、Raspberry Piと違いまだ入手が容易で助かります。

Youmile MAX7219ドットLEDマトリックスMCU 8x32制御LEDディスプレイモジュールドライブ、Arduino Raspberry Pi 4 in 1用

大手EC2サイト内でなるべく安い物を選んでみました、紹介画像に3色の画像があったのでてっきり3色表示できるのかと思いましたそうではなかったようです。実際は色は赤でした。

ESP32 with SPIRAM

https://micropython.org/download/esp32spiram/
ファームウェアは現在最新のv1.19.1 (2022-06-18)を使用

MicroPython MAX7219 8x8 LED Matrix

https://github.com/mcauser/micropython-max7219
MicroPython用のMAX7219ドライバを探してみると何種類か見つかりましたが今回はこちらを使用させてもらいました。

接続

同じ様にESP32とMAX7219の説明サイトとESP32-DevKitC-VEのデータシートとESP32-WROVER-Eモジュールのデータシートを見比べながらとりあえず接続できました。(初心者には苦労しました)
MAX7219とはSPI通信をするようでうですがESP32-WROVER-Eには3つのSPI通信モジュール(SPI,VSPI,HSPI)あるようで混乱しました、今回はVSPIを使用しました。

MAX7219 ESP32 ESP32-DevKitC V4 Getting Started Gude ESP32_WROVER-E Datasheet
VCC VIN 5V 5V
GND GND GND GND
DIN GPIO23(MOSI) GPIO23(VSPI_MOSI,SPI_MOSI) GPIO23(VSPID)
CS GPIO5(CS) GPIO5(VSPI_SS) GPIO5(VSPICS0)
CLK GPIO18(SCK) GPIO18(VSPI_SCK) GPIO18(VSPICLK)

表示

MAX7219ドライバ(max7219.py)をダウンロードしてESP32にアップロードしサイトに紹介されているサンプルをベースにピン番号を自分の環境に合わせています。

import max7219
from machine import Pin, SPI
spi = SPI(1, baudrate=10000000, polarity=1, phase=0, sck=Pin(18), mosi=Pin(23))
ss = Pin(5, Pin.OUT)
display = max7219.Matrix8x8(spi, ss, 4)
display.brightness(1)
display.text('TEST',0,0,1)
display.show()


一番下の段は文字によって使用されないようです。

最低限の表示はできたのでスクロール表示とか試してみよう。

Discussion