ほげほげ

ようやく(仮)が取れたらしい。他愛もないことを書いてみるのです。

GR-SAKURAでLCDキャラクタ表示してみた。

最近ちょくちょくいじってるGR-SAKURA、ボード上にLEDは4つ付いててそれをチカチカさせることはできるのですが、他に出力手段がシリアル程度しかないので(って、EthernetやらmicroSDやらがあるのは置いといて…)、LCDモジュールを買って接続してみました。

 

買ってからわかりましたがLCDシールドっていう基板にLCDがすでに搭載されたものがあって、それを使えばもう少し簡単に接続できたかもしれませんが、見よう見まねで。

接続は簡単…と思いましたがなんか一本だけよくわからないものがありました。

 

コントラスト調整(Vo)という端子です。最初コレに何も接続せずにやってみたのですが、画面が何も出ず。どうやらこれで明るさをきちんと調整しないと文字がちゃんと見えないようでした。

マニュアルにはコントラスト調整用の半固定抵抗を接続して見やすい濃さに調整してください、と書いてたのですが部品がなく(手配するのもめんどい)。

 

そこで先人の知恵をお借りしたところ、明るさ調整はアナログ出力でやっても同じことができるということがわかり、このVo端子にピン接続し、analogWrite関数(256段階の値を設定できる)でいい感じの明るさを設定したところ…。

 

見事表示されました☆彡

f:id:micarom:20131009234516j:plain

 

ただ固定の文字を表示するのはつまらないので、このボード上に搭載されている温度センサーから温度を取得して表示、あとネットワークに接続してNTPサーバから取得し時刻を表示してみました(いずれもサンプルコードがネットに公開されてますから、簡単にできました)。ただ半角カナも表示してみましたが、単純にソースに半角カナを書いた場合文字化けしてしまいます。(内部的に3バイトで扱ってるとかなんとか)

 

温度は結構ぶれが大きい?(まあ、1度前後なのですが)ので、平均値を取って1分ごとに表示するとかした方が良いかもです。

また時刻もNTPで取得して合わせますが、電源を抜くと初期化されてしまいます。外部電源なしで時刻を保持したい場合はバッテリーバックアップなどを別途接続すれば可能なようです。

 

文字を出力することができるようになり、実験の幅が広がりましたかも。

printfの書式なんてすっかり忘れていましたから、良いリハビリですw

 

次は何をしましょうかしらね。

ネットから天気と気温を持ってきて表示するなんてのも良いかもしれません。