@kaanee

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

M5StickCでMAX7219を制御したいが、表示できない

解決したいこと

M5StickCとMAX7219を接続して文字を表示させたいが、LEDが全て点灯するだけで、文字が表示されない。
接続方法が悪いのか、コードが悪いのかが分からない。
M5StickCとMAX7219の接続は以下の通り。
G0 --- CLK
G26 --- DIN
G33 --- CS
GND --- GND
3V3 --- VCC

文字を表示できるようにする方法を教えてください。

発生している問題・エラー

エラーは起きていないが、文字が表示できない
(MAX7219を4個接続しているが、とりあえず1個のみでテスト中)

該当するソースコード

#include
#include
#include
#include

#define HARDWARE_TYPE MD_MAX72XX::FC16_HW

#define MAX_DEVICES 1 // four modules
#define CLK_PIN 0
#define DATA_PIN 26
#define CS_PIN 33

// Hardware SPI connection
MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

void setup(void) {
M5.begin();
P.displayReset();
P.begin();
P.displayText("H", PA_CENTER, 0, 0, PA_PRINT, PA_NO_EFFECT);
}

void loop(void) {
P.displayAnimate();
}

自分で試したこと

1.HARDWARE_TYPE MD_MAX72XX::どのタイプにしても結果は同じ
GENERIC_HW Use ‘generic’ style hardware modules commonly available.
FC16_HW Use FC-16 style hardware module.
PAROLA_HW Use the Parola style hardware modules.
ICSTATION_HW Use ICStation style hardware module.

2.CLK,DIN,CSの接続を外してテストしていると、CLKだけを接続していてもLEDが全部点灯することが分かった。

0 likes

3Answer

まずM5StickCについて素人ですので、的確なことは言えませんが
気になった点があったので記載しておきます。

まずソースコードですが、コードブロックにした方がいいと思います。
(#includeで何がインクルードされてるかわからないですし)

以下が参考になると思います。

MD_MAX72xx.hを使用さていたみたいなので(編集履歴で確認)マニュアルも貼っておきます。
ハードウェアの接続方法なども記載されています。

個人的にぱっとみで気になった点は

3V3 --- VCC

VCCは5V必要だとおもわます。

G0 --- CLK

GPIO0はhighになりっぱぽいのでダメそうなきがします。
GPIO32とかだとどうでしょう

0Like

Comments

  1. @kaanee

    Questioner

    回答ありがとうございます。
    本日、Qiitaに登録したばかりで「コードブロック」を知りませんでした。調べてみます。
    「VCCは5V必要」とのこと、5Vを外部から供給してみます。
    GPIO0はhighになるのですね。リファレンスを見て分かりました。GPIO32に変更してみます。

  2. 横から失礼します。

    「VCCは5V必要」とのこと、5Vを外部から供給してみます。

    M5StickCには、5V出力ピンがありますよね?(5V→)

デバイスの信号名から素直に考えると、以下の接続になるかと思います。

VCC — 5V
GND — GND
DIN — 23 (MOSI)
CS — 33 (任意のデジタルピン)
CLK — 18 (SCK)

0Like

Comments

  1. @kaanee

    Questioner

    回答ありがとうございます。
    DIN — 23 (MOSI)、CLK — 18 (SCK)をM5StickCのどこに接続すればいいか分からないので教えてください。

  2. M5Stickと勘違いして、ピン番号を書いていました。
    任意のピンにつないで、@non_calさんの指摘に倣ってください。
    (GOはブートピンだとするとプルアップされているので避けた方がいいです)

任意のピンでSPIを使うので、
MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

MD_Parola P = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
に変えてみてください。

0Like

Comments

  1. @kaanee

    Questioner

    回答ありがとうございます。
    ご教示いただいた方法で'H'が表示できました。

Your answer might help someone💌