記事

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)

<神崎康宏>

連載メニュー ArduinoにLCDキャラクタ・ディスプレイ・モジュールを接続する

(1)  ArduinoにLCDディスプレイを接続する準備

(2)  アナログ入力ポートのデータをLCDに表示する

(3)  LiquidCrystalライブラリを使用したテスト・プログラム

(4)  超小型LCDキャラクタ・ディスプレイ・モジュールをArduinoで使う(1)接続

(5)  超小型LCDキャラクタ・ディスプレイ・モジュールをArduinoで使う(2)測定した温度をLCDに表示する

(6)  超小型LCDキャラクタ・ディスプレイ・モジュールをArduinoで使う(3)A-Dコンバータの基準電圧を変更して分解能を上げる

(7)  超小型LCDキャラクタ・ディスプレイ・モジュールをArduinoで使う(4)SPIインターフェースのK型熱電対で温度を測定する(その1)

(8)  I2CインターフェースのLCDキャラクタ・モジュールをArduinoで使う(1)利用できる電源電圧を整理して接続(その1)

(9)  I2CインターフェースのLCDキャラクタ・モジュールをArduinoで使う(2)Wire ライブラリを使用してLCD処理の関数を作る

(10)  I2CインターフェースのLCDキャラクタ・モジュールをArduinoで使う(3)I2Cバス双方向電圧レベル変換モジュール