LESSON 023
LCD ディスプレイモジュールで文字を表示する。
LCD ディスプレイ(Liquid Crystal Display)モジュールは液晶ディスプレイの事で、ArduinoでLCDを用いて文字や数値を表示させようと思います。
○ 液晶ディスプレイは、
液晶パネル | 表示部 |
駆動回路 | 液晶パネルを駆動する電気信号を生成 |
電源回路 | 液晶パネルと駆動回路に電圧を供給 |
バックライト用光源 | 液晶パネルの後ろから光を当て文字などを表示用ライト |
上記の回路を一つにした物をLCDモジュールといいます。
○ 液晶ディスプレイの原理は「影絵」と同じで後ろから光を当てて文字などが現れます。液晶パネルに印可電圧を掛けることにより光を通したり、通さなかったりすることでシャッターの様な動きで制御して文字などを表示させます。
○ LCD ディスプレイモジュールとArduinoの接続方法には2種類あります。
② LCD ディスプレイモジュールとArduinoの間にシリアル インタフェース ボード モジュールを経由する方式
があります。今回は①について説明します。
-
- 構成部品
- 配線図
- スケッチ
- 解説
- 結果
- まとめ
※ VO は 液晶パネルのコントラスト調整で10kΩの可変抵抗で調整し見やすい明るさになります。
GPIO 5 ⇒ D5
GPIO 6 ⇒ D6
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
#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);
}
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を参考に作っていますが、私なりに噛み砕いて書いているつもりですが、判らない点がありましたら連絡下さい。