第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 スマホアプリ化-
この記事へのコメントはありません。