I2C液晶のArduinoライブラリ – ST7032

ストロベリーリナックスや秋月電子のI2C液晶で使える、Arduinoのライブラリを作りました。

コントローラにST7032iが使用されているLCDなら使えると思います。

2014.10.13 追記:

  • コンストラクタ引数でI2Cスレーブアドレスを設定出来るようにしました。秋月電子、ストロベリーリナックスのモジュールを使う限りは変更不要です。
  • コントラスト値に64以上を設定するとBONビットに影響する不具合を修正しました。(注:BONは常に1なので実際の動作には影響しません)

2013.10.31 追記:

  • ダウンロード先のリンクが分かりにくいので追加しました。また、秋月のAQM0802A-RN-GBWを動作確認済みにしました。

2013.05.19 追記:

SB0802G

Arduino標準ライブラリのLiquidCrystalをベースにしているので、LiquidCrystalを使っているスケッチならクラスを差し替えて、初期化コードを少し変更するだけで使えます。

動作確認済みのLCDモジュール

動作すると思われるもの

スケッチはこちら: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、右:SB0802G

SB1602BとSB0802G

SB1602Bのアイコン表示テスト

SB1602B

おまけ。I2Cつながりで、INA226モジュールと接続してみる。

参考:INA226でお手軽電圧・電流測定(ついでにBit-BangでI2C) | オレ工房

スケッチはこちら:ina226_lib.zip

INA226に接続