#025 Arduino黄帯編11 I2C型のLCDを利用する【49歳から始めるArduino -黒帯を目指す】

 教科書P130ではI2Cについてです(#023ではLCDのSPIについてアップしています)。教科書によると当時は1000円ほどしたようですね。私はI2CのLCD IIC I2C Serie 2,89 Eurで購入。ざっと計算すると1/3の価格です。


 早速配線していきます。p136までは大丈夫です。ライブラリでNewLiquidCrystalというのを先生は「比較的融通がきく」という評価をしていますが、このライブラリで大丈夫です。多分時代が変わったのでしょう。また教科書ではオリジナル追い出しを推奨されていますが、Mac環境ではどうするか分かりませんでしたので、構わず進めました。ちなみにネットで調べると、特に追い出しについてのコメントは見つかりませんでしたので、まず大丈夫と思いました。
スクリーンショット 2017-06-28 14.23.08.png
 バスのアドレス(I2Cアドレス)ですが、これは注意が必要です。通常は0X27で、このLCDの説明にもそう記載していますが、実際は別で0x3Fです。Amazonのコメント欄で見つけました。自分で確認するにはI2C Scannerというスケッチを走らせると分かります(ムッチャ便利ー)


 教科書のp137-142は不要ですので、時間がある時に参考にすればいいでしょう。それに内容は難しくて、なかなか混沌としています。当時はこのような作業が必要だったことを考えると、今は非常に楽になったと実感します。


 ちなみにスケッチはこちらです。オレンジ部が注意な必要なところです。


#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <LCD.h>

//#define I2C_ADDR    0x27 //標準はこのアドレス I2C Scannerで調査できる
#define I2C_ADDR    0x3F

LiquidCrystal_I2C lcd(I2C_ADDR,2, 1, 0, 4, 5, 6, 7);
void setup()
  {
      lcd.begin (16,2);    // 16X2文字で初期化
      lcd.setBacklightPin(3,POSITIVE);
      lcd.setBacklight(HIGH); //LOWだとバックライトがつきません

      lcd.home ();                  // Homeにいく
      lcd.print("hello Papa");      // 1行の目の表示内容
      lcd.setCursor ( 0, 1 );       // 2行目にいく
      lcd.print("Love you");                // 2行の目の表示内容
  }
void loop() {
// お好きなようにスケッチしてください
}


 液晶による表示は便利です。日中ではさすがに見難いのですが、それでもやはりリアルに数値が見えるのは嬉しいですし、いちいちシリアルで確認する必要がないので、PC不要の場面が増えるでしょう。コストは手頃と言えます。2行表示の次は4行表示が欲しくなりました。液晶ではなくLEDで数値の表示(例えば棒型グラフ-インジケーター)ももちろん可能です。コストはそちらの方が安いのですが、ピンの消費、該当値を適切にLEDの表示に表すためのmapping等が必要になるので、ケース・バイ・ケースになるでしょう。LED表示だとなんだかセクシーな感じがします。起動時にLED点滅をデザインしたりもします。ちなみにこの後製作した持ち運び式土壌湿度センサーはLCDで作成後、LEDに変更しました。


 今回表示させるのに、思ったより苦労しました。バックライトの点灯まで無事だったのですが、決定的なスケッチの見本がなかなか見つかりませんでした。たまたまスペイン語のサイトで詳しく書かれているのを見つけて、「あっさり」解決しました。


参考にしたWeb
EL BUS I2C -> スペイン語。ここのおかげて3日間の悩みが解決して、無事表示できた。Webの出来は素晴らしい。スペインで電子部品を売っている会社が運営している




利用しているキットはこちら:Arduino エントリーキット(Uno版)- Physical Computing LabArduino拡張キット- Physical Computing Lab

コメント