旅を楽しくするArduino端末を作る。その11-LCDをI2Cで制御しよう-

第11回では、今まで大量の配線を行わなければならなかった、LCDをI2Cで制御させることで、配線をコンパクトにします。
第10回はこちらからどうぞ

I2C LCDの構成

今回使用するI2Cで制御できるLCDは、
「XIAMEN ZETTLER ELECTRONICS CO., LTD.製 ACM1602NI-FLW-FBW-M01」
です。
秋月電子の通販コードはP-05693ですので、もし同じものをお求めの場合は通販コードで検索をかけてみてください。

I2Cの仕様に関しては下記リンクに簡単にまとめてありますので、そちらを参考にしてください。

I2Cのスレーブアドレスを確認すると0x50が認識できますので、LCDのアドレスは0x50になります。

回路

接続は写真の右側から

① GND
② 3.3V
③ 0~3.3V(明るさ調整を抵抗を挟んで実装)
④ SCL
⑤ SDA
⑥ 3.3V
⑦ GND

となっております。
3番は明るさ調整用の端子となっておりますので、Arduinoからの3.3Vを直接つなぐと最大光度で発光します。必要に応じて10kΩぐらいの可変抵抗を挟んでください。

コード

#include <Wire.h>
#include <FaBoLCDmini_AQM0802A.h>
FaBoLCDmini_AQM0802A lcd;
 
void setup() {

 lcd.begin();
 lcd.print("hello!");
 delay(5000);
}
 
void loop() {
 lcd.clear();
 lcd.print("MCTouringADV");
 delay(1000);
}

今回使用するI2CのLCDを動作させるため、いろいろと情報収集をしました。I2Cのアドレスに直接ビットを送る方法などが多くヒットしましたが、少しハードルが高い設定だと感じたので、今回は最も簡単なライブラリを使用する方法を選びました。

Arduino IDEのライブラリのインクルードから、FaBoLCDmini_AQM0802Aをインストールします。
ライブラリ一覧の検索欄に「AQM0802A」と入れると検索に引っ掛かります。

インストールするとコンパイルが通るようになりますが、ライブラリの初期設定ではACM1602NIに対応していないため、ライブラリ内のI2Cアドレスを書き換えてあげる必要があります。

アドレス書き換えの詳しい方法に関しては、先人の方々がすでに記事にしておりますので、そちらをご覧ください。
Googleで「ACM1602NI Arduino」で検索してみてください。

結果

通信用の配線は2線のみとなり、駆動用の+-配線の合計4線でLCDを制御することができます。
また、AQM0802Aのライブラリを使用することで、通常のLiquidcrystalライブラリと同じようにコードを記述することもできますので、でもこの方法がダントツだと思います。

まとめ

LCDをI2C化するメリットとしては、配線をシンプルにすることができることです。
デメリットとしては、I2Cに対応しているLCDはかなり少なく、選択肢の幅が少ないところです。

今回使用したLCDは、白背景に灰色文字なので屋外では見ずらいです。
通常のLCDをI2C化できるものはないかと考えていたら、Amazonでこんなものを見つけました。

次回は、これを用いて通常のLCDをI2C化する方法を試してみます。

旅を楽しくするArduino端末を作る。リンク集

その1-不満点を挙げよう- 
その2-不満点をまとめよう-

その3-電圧測定器を作る-
その4-温湿度計を作る-
その5-気圧計を作る-
その6-方位・高度計をGPSで-
その7-12Vバッテリーから電力供給
その8-Ver1作成-
その9-電圧計の誤差とその代替案-
その10-Ver2へアップデート-
その11-LCDをI2Cで制御しよう-
その12-LCDをI2C化-
その13-Ver3へアップデート-
その14-USB充電の仕様に関して-
その15-Arduino言語を用いながらBluetoothで通信できるESP32-
その16-旅Arduino Ver4 スマホアプリ化-

関連記事一覧

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

PAGE TOP