PR

M5stackでLEDテープの制御がうまくいかない時の傾向と対策を紹介

組み込み機器

思ったような色が出ない、点灯しない

こうした悩みを解決します。

姫野秀徳

組み込みエンジニアとしてメーカー勤務10年。
第二種電工事士、基本情報技術者、Code.org認定教師。
microbitを用いた電子工作&プログラミング教室を開校。
組み込み開発の実際を発信するyoutube活動も行う。

無料で学べる組み込み開発オンラインスクールはじめました!
https://kumicla.tatepro.com

姫野秀徳をフォローする

LEDテープの動作仕様とセットアップ

LEDテープは5V電源線、接地線、通信線の3本で動作します。

見た目はこんなです、RGBのLEDなのでそれぞれの明るさ調節しながら点灯させると色鮮やか!

LEDはフレキシブル基板(これをテープと言っている)に等間隔に実装されていて、私の購入した10cmテープでは16個のLEDが実装されていました。

Adafruit_NeoPixelライブラリを使えば割と簡単に点灯制御できます…とはいえまあまあ苦労します。

使用するにあたって一般的にはGROVE端子に接続して使うことが多いと思います。

私はM5stack本体に拡張ハブユニット(下図 左)をつなげてLED テープ以外にも他のユニットをつなげて動作させていました。

そこで問題が起こったのでこの記事で紹介します。

あるピンだけ常に真っ白で明るさ最大で点灯する

まずLEDテープだけ M5stackのGROVE端子に繋いだ時の点灯状況は以下のような具合です。 

全てのLEDを青色で点灯させるプログラムで問題なく動作しています。 

そして拡張ハブユニットを介してM5stackと繋いだ時の点灯が次の図になります
(拡張ハブユニット2は LED テープ以外にもユニットが接続された状態です )

一番上の LED が緑色に点灯して、 上から2番目の LED が真っ白に点灯しています
(青じゃなくて赤とか分かりやすいのにしとけばよかった…すみません)。

つづいて全ての LED をオフにした状態です。オフに設定しているのに2番目の LED が点灯し続けているのがわかります。

M5stackに直接接続した場合は問題ないので何かしらユニットの影響を受けている可能性が考えられそうです。

GPIOとI2Cの競合

そもそも M5stackのGROVE端子は下記の接続となっています。
※M5stack basicのPort.A(赤コネクタ)の話をしています。

GROVE端子番号マイコン接続先信号
1GPIO 22番ピンSDA
2GPIO 21番ピンSCL
35V電源Vcc
4接地GND

M5stackのGROVE端子上の筐体に書かれている図を見ると、I2Cの通信線として機能させることを考えて設計されているように思えます。

で、このSCLの通信線をGPIO 21番ピンとして使っているのがLEDテープです。

だから、 LEDテープを制御するのにGPIOとして使いつつ、他のユニットではI2Cの通信線として使っているという状態になっていて、混線してたわけです。

なんでもかんでもGROVE端子で対応しようとしすぎやろ m5stack。
むやみに拡張ハブユニット使ったら動作不良起こすやん…

まあ何でもかんでもくっつける前に仕様見ておきなさい、という話なんですけどね、私のミス。

解決方法

GROVE端子はI2C通信が行われる想定で設計しているので 、LED テープの信号線を変更することで対応します。

サンプルプログラムなどをコピペしてると LED テープの信号線が21番ピンに設定されていると思います。

これを別のピンに割り当てます、例えば私は26番のDA端子に割り当てました。

#define PIN        21  // M5Stack Grobe Pin
↓
#define PIN        26  // M5Stack Grobe Pin

M5stackの26番ピンをLED テープの信号線に接続し、 5V電源線と接地線に接続して今までと同じようにプログラムを動かします。

こうすることでI2C通信の影響を受けることなく意図した通りに点灯制御できるようになりました。

今回の件を通じて分かりましたが M5stack のGROVE端子の取り扱いは要注意ですね。

今回はGPIOとI2Cの衝突だったけど、ユニットによっては同じスレーブアドレス使って衝突することもあるんかな?…さすがにそれはないか?

まとめ

M5stakのGROVE端子にむやみに何でもくっつけてはいけない。

GPIO制御のユニットはGROVE端子使わない方が安心安全。

この内容が良いと思ったら、いいね💖を押して教えてください!

組みクラ – 組み込み開発を学び、未来を創るエンジニアへ
無料で学べる!組み込み開発の基礎から応用までをマスターできるオンラインスクール「組みクラ」

組み込みエンジニアは、あらゆる産業の基盤を支える重要な職業です。
私たちタテプロは、次世代の組み込みエンジニアを育成し、業界の競争力を高めるために活動しています。
あなたも、無料で学べる「組みクラ」で、組み込み開発のスキルをしっかり身につけ、キャリアを加速させましょう!
今すぐ学び始めて、将来の自分をステップアップさせる第一歩を踏み出しませんか?

\立プロとLINEで友だちになりませんか/
立プロと友だちになる
組み込み機器
シェアしていただけると嬉しいです!

コメント

タイトルとURLをコピーしました