ArduinoにLCDキャラクタ・ディスプレイ・モジュールを接続する(10)電圧レベル変換
■I2CインターフェースのLCDキャラクタ・モジュールをArduinoで使う(3)I2Cバス双方向電圧レベル変換モジュール
今回は、3.3V電源のI2C接続キャラクタLCDモジュールを5V電源のArduinoで利用する場合必要になる「I2Cバス双方向電圧レベル変換モジュールAE-PCA9306」を利用した様子を示します。
このモジュールは次に示すように、PCA9306を搭載した基板と4ピンのピンヘッダ×2がセットになっています。ピンヘッダははんだ付けが必要ですが、2.54mmピッチのピンヘッダのはんだ付けは容易で初心者の最初に行うはんだ付けとしても最適です。
●電圧レベル変換IC PCA9306
PCA9306はI2C伝送路の双方向電圧レベル変換モジュールです。1.8V、3.3V、5Vの電圧レベルの間でレベル変換が行われます。SCL1、SDA1側が低電圧側でSCL2、SDA2側が高電圧側となります。今回はVREF1に3.3Vの電圧を加え、SCL1、SDA1は3.3VのLCDモジュールのSCL、SDAの信号線を接続します。SCL2、SDA2は5V電源のArduinoのSCL、SDAを接続します。
次に示す回路はPCA9306のデータシートから抜き出した常時、双方向のレベル変換を行うモードの回路図です。
AE-PCA9306のモジュールは、次に示すように上記の回路図に示すプルアップ抵抗、コンデンサも実装されています。そのため、各電源とI2Cの信号線を接続するだけで利用できます。モジュール裏面にはJ1からJ5のジャンパが用意されすべて接続された状態になっています。J1のジャンパをカットするとレベル変換のイネーブルの制御が行えます。J2、J3、J4、J5のジャンパは基板内のプルアップ抵抗を接続しています。モジュール外にプルアップ抵抗を設ける場合はこれらのジャンパをカットします。
●モジュールにピンヘッダをはんだ付けすると
ブレッドボードにピンヘッダを挿し込みボードを載せてはんだ付けします。それぞれ端のピンをはんだ付けししっかり挿し込まれていることを確認し、残りのピンをはんだ付けします。
●ブレッドボードにセット
次に示すように、AE-PCA9306モジュールと輝度調整用に半固定抵抗10kΩ、I2C接続キャラクタLCDモジュールを搭載する配線を行います。橙色の配線は3.3Vの電源、黒はGND、赤は5V電源としています。1から7の番号のところにI2C接続キャラクタLCDモジュールの7ピンの足を差し込みます。
●テスト
LCDモジュールを挿し込み、前回作成したテスト・プログラムをArduino Unoにアップロードすると、次に示すように前回と同様なテスト・データの表示を開始しました。
このAE-PCA9306を利用すると、Arduino Unoで3.3V動作のI2Cインターフェースの各種のディジタル・センサなどが容易に接続できるようになります。
LCDモジュールについてパラレル接続、I2C接続のものについて動かし動作確認してみました。
I2Cインターフェースについては、Arduino標準ライブラリが用意されていません。そのためLCDモジュールに対するコマンドによる操作が必要になります。幸い、これらのLCDキャラクタ・ディスプレイの多くはHD44780互換とうたってコマンドの体系は大筋共通になっています。
次回からは別項目となりますが、I2C接続LCDキャラクタディスプレイの処理のための有用な関数を作り、その中でこれらのモジュールのコマンドの検討を行う予定です。
(2016/6/20 V1.0)
<神崎康宏>