【Arduino】 LCD ディスプレイモジュール

LESSON 023

LCD ディスプレイモジュールで文字を表示する。

  
 LCD ディスプレイ(Liquid Crystal Display)モジュールは液晶ディスプレイの事で、ArduinoでLCDを用いて文字や数値を表示させようと思います。
 
○ 液晶ディスプレイは、  
   
液晶パネル 表示部
駆動回路 液晶パネルを駆動する電気信号を生成
電源回路 液晶パネルと駆動回路に電圧を供給
バックライト用光源 液晶パネルの後ろから光を当て文字などを表示用ライト

  上記の回路を一つにした物をLCDモジュールといいます。
   
○ 液晶ディスプレイの原理は「影絵」と同じで後ろから光を当てて文字などが現れます。液晶パネルに印可電圧を掛けることにより光を通したり、通さなかったりすることでシャッターの様な動きで制御して文字などを表示させます。

  
○ LCD ディスプレイモジュールとArduinoの接続方法には2種類あります。
   

① LCD ディスプレイモジュールとArduinoをダイレクトに繋ぐ方式
 
② LCD ディスプレイモジュールとArduinoの間にシリアル インタフェース ボード モジュールを経由する方式
 

 があります。今回は①について説明します。

   

      
目 次

    • 構成部品
    • 配線図
    • スケッチ
    • 解説
    • 結果
    • まとめ
   
構成部品

Arduino​
USBケーブル​
ブレッドボード​
LCDディスプレイモジュール
10kΩ 可変抵抗
ジャンパー線
   
配線図   
  ※ VO は 液晶パネルのコントラスト調整で10kΩの可変抵抗で調整し見やすい明るさになります。
        
           

GPIO   4      ⇒ D4
GPIO   5      ⇒ D5
GPIO   6      ⇒ D6​ 
GPIO   7      ⇒ D7
GPIO 10      ⇒ RS
GPIO 11      ⇒ E  
5V                 ⇒ +
GND             ⇒   -
   
    LCDモジュール ピン配置

回路 PIN 機能
電源 VSS GND
VDD 5V 
制御 VO コントラスト調整
RS レジスタ選択
RW 読み取り/書き込みモードを選択※
E 動作起動信号
データ信号 D0~D7 データバス
バックライト A 5V     (アノード)
K GND  (カソード)

※ VO VO ー 抵抗 ー GND   
    RW Read は H 、Write は L 
    (今回はGNDに接続 Writeオンリーなので L)
       データ信号 今回は4bitを使用したので D4~D7     

      




    

スケッチ《 test018》   
   
#include <LiquidCrystal.h>
LiquidCrystal lcd( 10, 11, 4, 5, 6, 7 );
void setup() {
  lcd.begin( 16, 2 );
  lcd.clear();
}
void loop() {
  lcd.setCursor(0, 0);
  lcd.print("Hello, World!");
  lcd.setCursor(5, 1);
  lcd.print("Arduino");
  delay(2000);
  
  lcd.clear(); 
  lcd.setCursor(17, 0);
  lcd.print("Hello");   
  lcd.setCursor(18, 1);
  lcd.print("ABC");
  for (int i=0; i<22; i++) {
     lcd.scrollDisplayLeft();
     delay(800);
  }
    lcd.clear();
    delay(2000);
}

  
解説
#include <LiquidCrystal.h>
 
 英数字液晶ディスプレイ(LCD)との通信を可能にするライブラリです。

  
LiquidCrystal(rs, enable, d4, d5, d6, d7)
    パラメーター
       rs:LCDのRSピンに接続されているArduinoピンの番号
       enable:LCDのイネーブルピンに接続されているArduinoピンの番号
       LCDは4本のデータライン(d4、d5、d6、d7)のみを使用して制御
     

  • void setup()

    begin(cols, rows)
       ディスプレイの桁数と行数を指定
         cols: 桁数(横方向の字数)
         rows: 行数
       ※ 1602Aは2行でこれを設定しないと1行になります。

    lcd.clear()
       LCD画面をクリアし、カーソルを左上隅に置きます。

  • void loop()

    lcd.setCursor(cols, rows);
     LCDのカーソルを移動
      col: 列(0なら左端)
      row: 行(0なら1行目)
     
    lcd.print(val)
     LCDに文字列や値を出力
     val: 文字列や値
      
    lcd.scrollDisplayLeft();
      表示中の文字とカーソルを左に1個スクロール
      ※ scrollDisplayRight は右に1個スクロール   
       

       
 結果
       

まとめ

○ マイコンボードのArduino Uno や Raspberry Pi にモニターがないため、パソコンに 接続している時は必要は情報は得られますが、マイコンボード単独で動かすと情報が得られません。よって、このLCD ディスプレイを用いる事で、簡単な情報を得ることが出来ます。
        
○ Arduino を 学ぶ上で書籍やWebpageを参考に作っていますが、私なりに噛み砕いて書いているつもりですが、判らない点がありましたら連絡下さい。

目次