Raspberry PIにLCDをつなげる
http://d.hatena.ne.jp/kudzu/20140426/1398523133の続き
- ハードウェアはhttp://sea-mountain.hatenablog.jp/entry/2013/09/21/231242にしたがって購入。
- AQM0802のモジュールピッチ変換キット買えば、LCDとブレッドボードに挿すために必要な一式がついてくる
- はんだ吸い取り線がないとピッチ狭すぎでうまくはんだつけられん
- ピンの説明は:http://elinux.org/RPi_Low-level_peripherals
- あと上のサイトだとLCD画面が板からはみ出るようになってるけど、普通にのっけても大丈夫?
- つなぎ終わったのでソフトウェアのほうの対応。
root@rpi:~# i2cdetect 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
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: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@rpi:~# 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: -- -- -- -- -- -- -- --
- まさかの一発OKで、自分でも驚き
- サンプルのハローワールドのshell script動かしてみた。
root@rpi:~# ./lcdhelloworld.sh
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
- 原因はアドレスがi2cdetectで3eになっているので、これに合わせる必要がある。
- コピペしたい人用に下に貼り付けとく。
#!/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# a. 1行目の文字を出力 "ハロー"
i2cset -y 1 0x3e 0 0x80 b
i2cset -y 1 0x3e 0x40 0xCA 0xDB 0xB0 i# b. 2行目の文字を出力 "ワールド"
i2cset -y 1 0x3e 0 0xc0 b
i2cset -y 1 0x3e 0x40 0xDC 0xB0 0xD9 0xC4 0xDE i
やたら文字が薄いのはそういうハードウェアなのか、なんか自分が失敗しているのかどちらか不明。