ストロベリーリナックスや秋月電子のI2C液晶で使える、Arduinoのライブラリを作りました。
コントローラにST7032iが使用されているLCDなら使えると思います。
2014.10.13 追記:
- コンストラクタ引数でI2Cスレーブアドレスを設定出来るようにしました。秋月電子、ストロベリーリナックスのモジュールを使う限りは変更不要です。
- コントラスト値に64以上を設定するとBONビットに影響する不具合を修正しました。(注:BONは常に1なので実際の動作には影響しません)
2013.10.31 追記:
- ダウンロード先のリンクが分かりにくいので追加しました。また、秋月のAQM0802A-RN-GBWを動作確認済みにしました。
2013.05.19 追記:
- こちらの方もArduinoライブラリを作成されていました→ ストロベリー・リナックスの低電圧I2C液晶をArduinoで使う
Arduino標準ライブラリのLiquidCrystalをベースにしているので、LiquidCrystalを使っているスケッチならクラスを差し替えて、初期化コードを少し変更するだけで使えます。
動作確認済みのLCDモジュール
- SB1602B (Strawberry Linux)
- SB0802G (Strawberry Linux)
- AQM0802A-RN-GBW (秋月電子通商)
動作すると思われるもの
- SB1602E (Strawberry Linux)
- LCD16X2-I2C (aitendo)
- SPLC792-I2C-M (aitendo)
- 16X2-SPLC792-I2C (aitendo)
スケッチはこちら:arduino_ST7032 (via tomozh/arduino_ST7032@GitHub)
zipファイル内の「arduino_ST7032-master」を「ST7032」にリネームし、arduinoの「libraries」フォルダにコピーして下さい。
ST7032 独自の機能があるので、以下のメンバ関数を追加しています。
コンストラクタ
ST7032 lcd(int i2c_addr); i2c_addr: スレーブアドレス コンストラクタ引数を省略した場合は 0x3E
コントラスト設定
void setContrast(uint8_t cont) cont: コントラスト値 (0~63)
アイコン表示 (※アイコン表示機能の無いLCDではなにも起きません)
void setIcon(uint8_t addr, uint8_t bit) addr : アイコンアドレス (0~15) bit : アイコン表示ビット (0x00~0x1F)
簡単な使い方
#include <Wire.h> #include <ST7032.h> ST7032 lcd; lcd.setContrast(30); // コントラスト設定 lcd.print("hello, world!");
接続図はこんな感じ。I2Cは配線が少ないのが良いですね。
SB0802GやAQM0802A-RN-GBWの場合は、コンデンサ(1uF×3)を別途付ける必要があるので注意です。
SB1602Bのアイコン表示テスト
おまけ。I2Cつながりで、INA226モジュールと接続してみる。
参考:INA226でお手軽電圧・電流測定(ついでにBit-BangでI2C) | オレ工房
スケッチはこちら:ina226_lib.zip