I2C液晶ライブラリ
ストロベリー・リナックスのI2C接続できるキャラクタ液晶が手軽で便利そうだったので、いくつか購入。
たったの2線で通信できるので、他の液晶と比べて配線がとても簡単ですし、同じくI2C接続のRTC等とも相性が良いのが特徴です。あとアイコン表示があるのも何か楽しい。写真は秋月で購入したRTCと組み合わせて時計にしてみた例。
例によって(?)、Arduinoで簡単に使えるようにライブラリ化してみました。ダウンロードはこちらから。
http://neocat.jp/arduino/Library-LCD_I2C.zip
展開後のLCD_I2Cフォルダを ~/Documents/Arduino/libraries に入れればインストール完了です。
ArduinoのIDEを立ち上げ直し、Files > Examples > LCD_I2C > LCD_I2C_sample を開くと、サンプルスケッチが見られます。
Arduinoと液晶の配線は、
// RESET - 1 RST // Analog 5 - 2 SCL (internally pulled up) // Analog 4 - 3 SDA (internally pulled up) // GND - 4 GND // 5V - 5 VSS
という感じ。(5Vで繋いでしまっています。液晶コントローラは5V対応ですが、本来この液晶の電圧は3.6Vだそうです。ただコントラストを下げれば5Vでも一応問題なく動作するようです。→参考)
ライブラリの使い方ですが、まずLCDライブラリを初期化します。このときコントラスト(0-63)を引数にとれます(省略すると20になります)。
LCD.begin(16);
文字列を表示するには、次のどちらかが使えます。
LCD.print(" Welcome to"); // 文字列 LCD.print('_'); // 文字(1バイト)
任意の位置に文字を表示するには
LCD.move(0x48); // 2行目の9文字目 LCD.print("Arduino");
のようにします。なお1行目の先頭が0x00、2行目の先頭は0x40です。
液晶に表示された文字を消去するには、以下を実行します。
LCD.clear();
最後にアイコンの表示ですが、
LCD.icon(7, 0x08); // <ICON address>, <ICON RAM bits>
のように指定します。どのアドレス/ビットでどのアイコンが点灯するかは、アプリケーションノートを見て下さい。例えば上記だと▼アイコンが点灯します。