I2C接続小型LCDモジュールピッチ変換キット AE-AQM0802(http://akizukidenshi.com/catalog/g/gK-06795/)が手元にあったので、Raspberry Piで使ってみました。基盤が必要ない場合はAQM0802A-RN-GBW(I2C接続小型キャラクタLCDモジュール 8x2行: ディスプレイ関連 秋月電子通商 電子部品 ネット通販)の方になります。
秋月電子で購入したもので、データシートは「akizukidenshi.com/download/ds/xiamen/AQM0802.pdf」にあります。
(2016-03-31 追記:「FAQ詳細 秋月電子通商 電子部品 ネット通販」によると動かないものもあるようです。ラズパイのプルアップ抵抗をはずせば良いようですが、そういった改造をしたくない場合は別のものを選んだ方がいいですね)
キットの作成
キットはハンダ付けが必要です。ピッチ変換基板に合わせて、1×7 細ピンヘッダをニッパーで切って、5ピンと2ピンのピンヘッダにします。必要なのは5ピンのピンヘッダの方です。ブレッドボードに挿した状態ではんだづけしました。PUとある部分は両方とも短絡させて、ピッチ変換基板に付いているコンデンサとプルアップ抵抗を使うことにしました。
組み立てが終わったら、Raspberry Piと接続します。VDDとRESETは1番ピン、SCLは3番ピン、SDAは5番ピン、GNDは6番ピンになります。ハードウェアの準備ができたら、次はソフトウェアを用意します。RaspberryPiでI2C通信を使うためにはいくつのかの設定ファイルを変更する必要があります。 ファイルの編集にはroot権限が必要です。
/etc/modules の編集
/etc/modules に以下の一行を追加します。これにより、/dev/i2c-* が有効になります。
i2c-dev
/etc/modprobe.d/raspi-blacklist.conf の編集
/etc/modprobe.d/raspi-blacklist.conf の以下の一行をコメントアウトします。
# blacklist i2c-bcm2708
以上の変更が終了したら、変更を反映するために再起動してください。
$ sudo reboot
i2c-toolsのインストール
i2c-toolsはコマンドラインからI2Cデバイスへアクセスするためのツールです。実際に開発する際には、コマンドラインからI2Cデバイスの動作を確認したいことがよくあるので、インストールしておくと役に立つはずです。
$ sudo apt-get install i2c-tools
i2cdetectで使っているデバイスの情報が取得できます。UUはカーネルで使っている領域だということです。ここでは、I2Cデバイスは1つしかつなげていないので、LCDは0x3eで使えることがわかります。
$ sudo i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- UU -- -- 3e -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
ここでは、下記のようなi2c_lcd.shファイルを作成して動作をさせてみました。i2cset でアドレスを指定しながら命令を実行しています。1234に相当するのは「0x31 0x32 0x33 0x34」のところです。文字とコードの対応はデータシートにある文字コードの一覧を参照するとわかります。
#!/bin/sh # LCD初期化 i2cset -y 1 0x3e 0 0x38 0x39 0x14 0x78 0x5f 0x6a i sleep 0.3 i2cset -y 1 0x3e 0 0x0c 0x01 i sleep 0.3 i2cset -y 1 0x3e 0 0x06 i sleep 0.3 # 1行目 "1234" i2cset -y 1 0x3e 0 0x80 b i2cset -y 1 0x3e 0x40 0x31 0x32 0x33 0x34 i # 2行目 "ABCDE" i2cset -y 1 0x3e 0 0xc0 b i2cset -y 1 0x3e 0x40 0x41 0x42 0x43 0x44 0x45 i
実行するには次のようにします。これで、LCDに1234とABCDEの文字列が2行で表示されます。
$ sudo sh i2c_lcd.sh
Raspberry Piに興味のある方はこちらもどうぞ。