でばいすの山小屋

デバイスとかクラウドを実験中。IoTのふもとあたりをうろうろ。

Raspberry Pi 2で、I2C LCDモジュールを使ってみる

Raspberry Pi 2で、I2C LCDモジュールを使ってみました。

使ったもの

  • Raspberry Pi 2 (Raspbian/NOOBS 1.4.1)
  • I2C LCDモジュール
  • キーボード、マウス、MicroSDカード、ブレッドボードなど

1. I2C LCDモジュール

I2C接続の小型LCD搭載ボード(3.3V版)
実験用に買ってみました。 お手頃です。

スイッチサイエンス 商品ページ
https://www.switch-science.com/catalog/1405/

2. I2Cを有効化する

デフォルトでは、I2Cは有効になっていないので、使えるようにしてあげる必要があります。

2-1. sudo raspi-config

$ sudo raspi-config
「8 Advanced Options」「A7 I2C」を選択
[<はい>] を選択します。

2-2. 再起動

$ sudo shutdown -r now

2-3. /boot/config.txt

dtparam=i2c_arm=on があることを確認します
なかったら行追加します

2-4. /etc/modules

i2c-dev があることを確認します
なかったら行追加します

2-5. I2CTools

I2CTools をインストールします
$ sudo apt-get install i2c-tools

2-6. シャットダウン

配線するため、シャットダウン
$ sudo shutdown -h now

3. 配線

以下のように配線します。

Raspberry Pi 2 LCDモジュール
3.3V - VDD
GND - GND
I2C_SDA1 - SDA
I2C_SCL1 - SCL

f:id:blgkns:20150724025316p:plain:w320
LCDモジュールを抜いている状態

f:id:blgkns:20150724025331p:plain:w320
LCDモジュールをさしている状態

4. I2Cデバイスの接続を確認する

$ sudo i2cdetect 1
を実行すると...

pi@raspberrypi ~ $ i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3e -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         

このLCDモジュールのI2Cアドレスが、0x3eだと確認できます

5. LCDモジュールにコマンドを送る

最初の1発目は、失敗することがありました。その場合は、再度、コマンドを送ってみてください。

コマンド表は、秋月電子通商のページにあります。 http://akizukidenshi.com/download/ds/xiamen/AQM0802.pdf

pi@raspberrypi ~ $ sudo i2cset -y 1 0x3e 0 0x38 0x39 0x14 0x70 0x56 0x6c i
Error: Write failed
pi@raspberrypi ~ $ sudo i2cset -y 1 0x3e 0 0x38 0x39 0x14 0x70 0x56 0x6c i
pi@raspberrypi ~ $ sudo i2cset -y 1 0x3e 0 0x38 0x0d 0x01 i
pi@raspberrypi ~ $ sudo i2cset -y 1 0x3e 0x40 0x48 0x65 0x6c 0x6f i
pi@raspberrypi ~ $ sudo i2cset -y 1 0x3e 0x40 0x48 0x65 0x6c 0x6c 0x6f i
pi@raspberrypi ~ $ sudo i2cset -y 1 0x3e 0 0x38 0x39 0x14 0x70 0x56 0x6c i
pi@raspberrypi ~ $ sudo i2cset -y 1 0x3e 0 0x38 0x0d 0x01 i
pi@raspberrypi ~ $ sudo i2cset -y 1 0x3e 0x40 0x48 0x65 0x6c 0x6c 0x6f i
pi@raspberrypi ~ $ sudo i2cset -y 1 0x3e 0x00 0xc0 i
pi@raspberrypi ~ $ sudo i2cset -y 1 0x3e 0x40 0x52 0x61 0x73 0x70 0x62 0x69 0x61 0x6e i
pi@raspberrypi ~ $ 

実行結果
f:id:blgkns:20150724025754p:plain:w320
ちょっと写真が暗いですね....orz