電子工作

Arduino#7 液晶ディスプレイとI2C通信で文字を表示してみる‼(シリアル通信)

「シリアル通信方式」で、文字を表示します。

シリアル通信とは「連続した(Serial)」という意味で、HIGHとLOWの連続したデータ
を1本の信号線を使って連続的にやり取りする方式です。

シリアル通信にはI2C通信やSPI通信、UART通信などがあるそうですが、今回はI2C(アイ・スクエアド・シー)通信です。

配線図

  • SDA(黄線)をArduinoの SDA端子 に接続。
  • SCL(緑線)をArduinoの SCL端子 に接続。

この回路図の作図には fritzing を利用させて頂いております。https://fritzing.org/home/

使用部品

  • LCD 1602 Module(液晶ディスプレイ)・・・ (スターターキット:Amazon購入)
  • シリアルインターフェースモジュール  ・・・ (Amazon購入)

Arduino IDE

  • 「スケッチ」>「ライブラリをインクルード」>「ライブラリを管理」を選択。
  • ライブラリマネジャーに、「LiquidCrystal_I2C」と入力し、Enter。
  • 「LiquidCrystal_I2C by Frank de Brabander」をインストールする。
  • 「ファイル」>「開く」>「libraries」>「LiquidCrystal_I2C」>「examples」>「HelloWorld」>「HelloWorld」を開く。

  1. //Compatible with the Arduino IDE 1.0
  2. //Library version:1.1
  3. #include <Wire.h>
  4. #include <LiquidCrystal_I2C.h>
  5. LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display
  6. void setup()
  7. {
  8.   lcd.init();                      // initialize the lcd
  9.   lcd.init();
  10.   // Print a message to the LCD.
  11.   lcd.backlight();
  12.   lcd.setCursor(3,0);
  13.   lcd.print(“Hello, world!”);
  14.   lcd.setCursor(2,1);
  15.   lcd.print(“Ywrobot Arduino!”);
  16.    lcd.setCursor(0,2);
  17.   lcd.print(“Arduino LCM IIC 2004”);
  18.    lcd.setCursor(2,3);
  19.   lcd.print(“Power By Ec-yuan!”);
  20. }
  21. void loop()
  22. {
  23. }

・LCD 1602 Module(液晶ディスプレイ)LCDディスプレイ】は16文字 x 2行表示のため、

6行目 LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display の(0x27,20,4) を(0x27,16,2)に、

・18行~21行を削除。

・14行目 lcd.setCursor(3,0); の (3,0) を (0,0) に、

・16行目 lcd.setCursor(2,1); の (2,1) を (0,1) に、

書き変えて、スケッチをコンパイルする。

まとめ

  • シリアルモニタに、1行目に 「Hello, world!」、2行目に 「Ywrobot Arduino!」の文字が表示されました。
  • Arduino と LCD1602液晶ディスプレイ を I2C接続 できるシリアルインターフェースモジュール使って、文字を表示してみました。
  • 「SCL」・「SDA」の2本の線でデータのやり取りでき、「パラレル通信」よりすごくシンプルな配線です。