ラズパイで電子工作

ラズパイでコマンドラインからI2C接続LCDを制御する

エンジニアブロガーのプロコアラです。

10年間エンジニアとして働き、ラズパイコンテストで賞をとったこともあるラズパイマニアです。

I2Cって何?
Inter-Integrated Circuitの略で
アイ・スクエアー・シー、または アイ・ツー・シーと読みます。
フィリップス社が開発したシリアルバス。
SDA(シリアルデータ)信号とSCK(シリアルクロック)信号の2線でICを制御します。

 

今回は、ラズパイからI2C接続のLCDを制御したいと思います。

この記事を読むことでキャラクタLCDの制御ができるようになります。

 

今回は、ラズパイからI2C接続のLCDを制御したいと思います。

この記事を読むことでキャラクタLCDの制御ができるようになります。

 

今回使用するもの

ラズパイは何のシリーズでも大丈夫です。他の用途にも色々使用する予定のため、性能の良いラズパイ3を購入しました。

私は家にあったLCDを使いましたが、買うならバックライト付のものがおすすめ

ブレッドボードを使えば半田付けが不要なので、試作などにおすすめです。

ラズパイとの接続にはオスメスのコードが必要です。

 

組み立て

LCDモジュールの「MI2CLCD-01」は半完成品ですので、組み立てが必要です。

mi2clcd

 

配線

以下のように配線してください。 ブレッドボードを使うと便利ですよ。

LCD側 ラズパイ側
MI2CLCD-01 CN1 1pin (VDD) Raspberry Pi 1pin (+3.3V)
MI2CLCD-01 CN1 2pin (GND) Raspberry Pi 6pin (GND)
MI2CLCD-01 CN1 3pin (SDA) Raspberry Pi 3pin (SDA)
MI2CLCD-01 CN1 4pin (SCL) Raspberry Pi 5pin (SCL)
MI2CLCD-01 CN1 5pin (RST) MI2CLCD-01 CN1 (VDD)

※ RSTピンは電源投入直後にVDD信号から少し遅れてLowにアサートされる必要がありますが VDD信号と直結してもパワーオンリセットされるため問題ないみたいです。

※ SDAとSCKは、プルアップ抵抗を接続する必要がありますが ラズパイは内部に1.8kΩのプルアップ抵抗があるため接続する必要はありません。

 

I2C Tools

それでは、I2C Toolsを使っていきます。

 

I2C有効化

ラズベリーパイでI2Cを使用するためには事前に有効にしておく必要があります。 raspi-configを実行します。

 

以下の手順に従って、I2Cを有効に設定してください。

・「5 Interfacing Options」を選択。
・「P5 I2C」を選択。
・「Would you like the ARM I2C interface to be enabled?」と聞かれます。
→ 「Yes」を選択。
・「Finish」を選択し、終了。

 

インストール

インストール下記コマンドでインストールできます。

使い方

I2C Toolsは、コマンドが4つあります。

I2cdetect

I2Cバスを走査してデバイスが使用しているアドレスを特定します。

I2cset

指定したアドレスのデバイスに値を書き込みます。

I2cget

指定したアドレスのデバイスから値を読み込みます。

I2cdump

I2Cデバイスのレジスタをまとめて読みだします。

 

アドレスの特定

まずは、I2Cバスを下記コマンドで確認します。

コマンドの結果から、I2Cバス1に接続されていることが分かりました。

 

i2cdetectコマンドでアドレスを特定します。

-y:確認メッセージをパス 1:I2Cバスを指定

アドレスが0x3eだということが分かりました。

 

制御プログラム

制御するプログラムをエディタで作成します。

 

※LCDは一定のコマンドで初期化しないと機能しません。 制御コマンドで初期化する必要があります。

制御コマンドは互換性を保つためか、伝統的に同じ制御コマンドです

プログラムを実行します。

 

キャラクタLCDモジュール 取扱説明書

今回制御するキャラクタLCDモジュール「MI2CLCD」の取扱説明書をアップします。

image image image image image image

 

動作チェック

LCDに文字が表示されました。わーい!

DSC01848

 

まとめ

I2CはCLKとデータの2線だけで通信できるため、LCDなどのデバイスには有効です。

数珠つなぎで色々なデバイスを接続することができるため、センサーなどを接続することもできます。

ではでは! (^^)/

ABOUT ME
プロコアラ
プロコアラ
RPAコンサルタントのプロコアラです。長年のエンジニア経験を活かしてして外資系コンサルファームでRPAコンサルしてます。 転職ノウハウ、プログラミング、英語の勉強方法など分かりやすいように解説していきます。