Lチカが動いたので、続いて液晶パネルに文字を表示してみる。手元にI2Cインタフェースの1602液晶があるのでこれを使う。
「hello, world!」くらいは探せば見つかるだろうと思ったら、やっぱりたくさんある。
コードをそのまま使わせてもらって難なく動いた。ただ、ちょっと気になったのは、I2CのSDAとSCLが、それぞれA4、A5ピンとなっていること。基板上にズバリSDAとSCLっていうピンがあるんだけど…。
調べてみたら、この二つは単純にA4とA5につながっているだけだった。以下、Arduino UNO R3の回路図から引用。
SDA、SCL専用ピンがあるからと言って、A4とA5が開放されたわけじゃないみたい(I2Cを使うなら、A4とA5は潰れる)。
「hello, world!」が表示できたので他の例もと思い、こちらを試してみる。
外付け部品なしで内蔵のADCだけを使って電源電圧を測るとは面白い。
早速コンパイルしてボートに書き込んでみるが、何も表示されない…。あー、こちらは、I2C接続の液晶じゃないのか。
最初の例と見比べてみたところ、初期化周りがちょっと違うだけで、文字表示等の関数名は同じにしてあるみたい(おそらく、「I2Cライブラリの方が合せた」ということだろうけど)。ということで、その辺りを修正。
グレーの矢印のところが元のソースをコメントアウトした部分。赤で示したところが変更(追加)したコード。
これで無事動いてくれた。
Arduinoという決まったハードウェアで動かすわけなので、AVRのレジスタの設定やらI/Oの設定やらといった面倒なことは一切考えなくていいのか。なるほど、これはプロトタイプの環境としては楽だ。
しかし、この液晶パネル、3.3Vで動作させることを想定しているのか、5Vで動かすとバックライトが眩しい。
コメント