WRX micro:bitを車両で使う その15 LCDパネルの利用

Ad,micro:bit,社外部品・DIY

micro:bitには25個のLEDが搭載されていて、プログラムを組むことにより自由にアイコンや文字を表示出来ます。ただし連続する数値や文字を表示させるとLEDに流れる様に表示されるので、micro:bitである程度の長さとなる数値や文字を扱うプログラムを組み、その内容を確認する場合の利用には向いていません。そこで今回はLCDパネルを購入してmicro:bitで利用してみます。

スポンサーリンク

購入したLCDパネル

購入したLCDパネルは上記の様な「2004 I2C Module」ですが、様々なメーカーからRaspberryPiやArduino用として数多く販売されています。LCDは20文字×4行の表示が可能になっています。

ただし実際に購入したのはこれまでmicro:bit用のパーツを購入していて、個人的に信頼度の高いkeyestudioの「I2C LCD2004 Module」です。特にmicro:bit用とは謳われていませんが、同じくkeyestudioから販売されているmicro:bit用の「37 in 1 Starter Kit」の中に16文字×2行の「1602 I2C Module」というLCDがあります(LCDのみであればこちら)。この中でmicro:bitでの導入方法も記載されていますが、1602 I2C Module用の拡張機能で2004 I2C Moduleも互換性があるとの記載になっていたので、2004側を購入してみました。

LCDパネルには背面にI2Cインターフェイスが無い製品もあるので注意が必要です。またLCDの電源は5Vで、かつLCDパネルとの通信でmicro:bitの19番と20番の端子を使用するので、別途5V電源が利用できるIOブレイクアウトボードが必要です。ちなみに、I2Cインターフェイスにあるボリュームは液晶のコントラスト調整です。

micro:bitとLCDパネルの接続

LCDパネルのI2Cインターフェイスには4つのジャンパピンがあり、それぞれ通信を行うSCL・SDAと、電源のVCC・GNDになっています。micro:bit側の端子は19番がSCL、20番がSDAなのでIOブレイクアウトボードの19番と20番にジャンパケーブルでそれぞれを接続します。電源はVCCに5V、GNDはGNDになります。

拡張機能の導入

Microsot MakeCodeで高度なブロック内の最下部にある「拡張機能」を選択し、検索欄で先のkeyestudioの「1602 I2C Module」ページで示されているアドレス(https://github.com/xuefengedu/pxt-lcd1602_CN)を入力して検索します。

「lcd-1602」が表示されるので、これを選択します。

Microsot MakeCodeに「LCD1602液晶」が追加されます。

プログラム

※1

LCDパネルを利用するには「最初だけ」に「I2C address」と「set string」、「set LCD backlight」を挿入します。「set string」は「visibled」にしないとLCD上に表示されません。「set LCD backlight」はOFFにするとバックライトが消えます。バックライトはOFFでもLCD上に表示は出来ますが、ほとんど見えない状態です(LCDパネルの色にもよります)。

「I2C address」についてはデフォルトで「0x27」になっていますが、これはI2Cインターフェイスに搭載されているICの型式によります。購入したLCDパネルでは「PCF8574T」だったのでデフォルトのままです(keyestudioのページにもアドレスは記載されています)。「PCF8574T」以外では末尾「T」以外のタイプが幾つかある様ですが、「Auto set」のブロックでも表示は出来ました。

実際にLCD上に表示を行う際は「LCD show string」ブロックで文字、「LCD show number」ブロックで数値を表示します。それぞれx(列)とy(行)で表示位置を指定しますが、xは「0~3」、yは「0~19」が範囲です。またこのブロックでは元が「1602」用の為か、スライドでの選択ではxは「0か1」、yは「0~15」までしか指定出来ません(※1の画面)。「2004」の場合は直接キーボードで入力します。

「Shift Left」と「Shift Right」は1回実行すると、LCD表示の全体がx方向の左右にそれぞれ1列分だけ移動します。「LCD clear」は表示されている文字、数値を消去します。

補足

「2004」の場合、現状ではLCD上の全てに表示を行っても、1行目が16列までしか表示されませんでした。拡張機能はあくまで「1602」用なので、これ以外にもまだ何らかの問題があるかもしれません。

その他

今回の利用方法は購入したメーカーの方法に従っていますが(パネルは本来1602ですが)、結局の所は他メーカーでもI2Cインターフェイスが違うだけで、拡張機能も他メーカーの物が利用できる場合もあります(もちろん自己責任で)。

上記は「MakerBit」用としての拡張機能ですが、2004にも対応している様子で実際にも購入したkeyestudioのLCDパネルでも表示出来ました(先のアドレスは変えています)。ブロックの利用方法は異なりますが、1行目の表示も問題ありませんでした。

今回LCDパネルを購入したのは、この先で色々データを確認したい事がある為ですが、データ量が長くなりそうなので「2004」にしました。またシリアル通信(RS232C)も必要になって来るので、次回はシリアル通信を扱う予定です。

「micro:bit」関連記事

以下は「micro:bit」タグの記事一覧です(投稿順)。現在の記事とこれ以降に投稿した記事も含みます。

その他

FA用PLCとELM327を使用した「OBD2」関連の記事は以下の記事から始まります。

注記

    • このブログ内で書いている内容はあくまで私の利用する製品(アプリ含む)や機器での場合です。他メーカーの製品や機器をはじめ、同じメーカーの製品・機器であってもバージョン違い等の場合もあるので、記事内容の保証や責任を負う事は出来ません。
    • 記事内で紹介している製品や、その他の類似製品を購入・利用する場合はそのメーカーや購入先で仕様等を確認し、自己判断と自己責任の下で利用して下さい。
    • 記事内で公開しているmicro:bit用プログラムは自由に利用・改変して頂いて構いません。ただし不具合やバグもありますので、プログラムを利用した際の故障や事故等についての保証や責任を負う事は出来ません。自己判断と自己責任の下で利用して下さい。
    • micro:bit製品やプログラミング、その他記事内容について個別の問合せや依頼を頂いても回答する事は出来ませんので、予め御了承下さい。
    • BBC micro:bitは、micro:bit教育財団の登録商標です。その他のブランド名または製品名は各所有者の商標です。