秋月の8×2小型I2C液晶をいじった話
前に何かと使えそうだと買ってあった秋月の小型I2CLCD.
こいつ.
ただの液晶に,LCDコントローラST7032がくっついてるらしい.
最近作ってみようと思っているものにコイツを使ってみようと企んだ.なのでまずは動作確認からやろうと思った.
秋月の説明書と,こちらのサイトをにらめっこした.
こちらのサイトは大変親切で,一通りのI2C通信とそれを用いたLCDコントロールプログラムをライブラリにしてくれている.本当にありがたい話.
まぁこのサイトの通りにやりゃ動くっしょ~~~と思ってさっそくブレッドボードでテスト.
しかしうんともすんとも動かない.
私はオシロとか高級なものは持っていないので原因の特定には結構難儀することが多い.
とりあえず回路のSDAとSCLが逆なのかな~~という適当な推測で逆にしてみたり,内部プルアップって本当に大丈夫なのか~~?という疑いから秋月の説明書通りに10kΩのプルアップ抵抗をつけてみたりした.実はこれが大きなミスだったのだが.
しかしながらうんともすんとも動かない.
そんなこんなで朝になったりしてた.
動かなくて本当に嫌になってたけど,折角使いやすい液晶なのだからと自分を奮い立たせて,夜中にちょっといじったりしてた.
プログラムはあっているようだし,あとは回路しかないよなと回路とにらめっこした.
液晶を駆動するための昇圧回路なんかがコントローラについてたりする.
そんなところまで細かく見た.もしかして死んでるんじゃないの?と思って,買い置きしていたもう一つのやつで試したりもした.ダメだった.
う~~~むと頭を悩ませ.ん?まさかな…?と思いつつ,10kΩの抵抗を1kΩに変えてみた.
動いてしまった.
ああ~~~~~~~~~~~~~~という感じだった.
こんな小さなことで躓いていた自分が情けないやら,動いてホッとしたのと歓喜なのと,秋月の説明書に10kΩって書いてたじゃん!とかオシロを買っておけばよかったとか,そんないろんな感情が入り混じってた.
なるほどね.波形がなまっていたらしい.
一度つくことがわかれば後は簡単なのだ.
今回はくだらないところで結構時間を食ってしまった.
実は私にとって初めてのI2C通信だった.
だからこんな単純なところで躓いたのかもしれない.
だがこれで他のI2Cデバイスも使えるようになったも同然なので,これからいろいろ使ってみたい.
なんか意味わからんけどつかない!という人はこれが原因だったりするかもしれない.
ちなみに秋月の説明書にはスレーブアドレスが0x7Cと書いてあるが,実際は0x3Eが正しいと思う.
R/Wの0も入れると0x7Cになるのだけど,アドレスということならば0x3Eなんじゃないかな.と私は思う.
そんなこんなでとりあえず動かすことはできた.