ArduinoでLCDを使う方法【文字列を表示可能】

どうも、なかしーです。

僕は自動車のマイコンにプログラミングをする組み込みエンジニアとして働きつつ、YouTubeでArduinoの使い方を解説しています。
>>なかしーの電子工作部

Arduino初心者
Arduino初心者

ArduinoでLCDを使う方法について知りたいな

という悩みにお答えします。

LCDは文字列や数字をたくさん表示できる部品です。

LCDの種類は多く、大きさや制御方法の違いがあります。

今回は「2行16文字を表示できるLCDを使う方法」について解説します。

動画でも使い方を解説しています。

LCDの特徴

LCDには、文字や数字を表示するためのコントローラーが付いています。

ArduinoでLCDに文字を表示するときは、コントローラーに指令を出すことになります。

まずはコントローラーの仕組みについて理解しましょう。

パラレル通信でデータを送る

ArduinoからLCDのコントローラーにパラレル通信でデータを送ります。

パラレル通信とは
複数の配線を使ってデータを送受信する方式。1本の配線でデータの送受信を行う方式はシリアル通信

LCDのコントローラーの端子と役割は次のとおりです。

  • RS(ラッチ):データをコントローラーに入れる
  • R/W(リード/ライト):データの読み込みか書き込みか選択する
  • E(イネーブル):変更を許可するか選択する
  • D0~D7:データ通信用のピン

マイコンと通信してデータを送受信するICは、この4つが付いていることが多いです。

8ビットモードと4ビットモード

今回紹介しているLCDは、1回に送るデータの量を変えることができます。

Arduinoには簡単にLCDを制御できるライブラリが入っています。

ライブラリを使用する場合は4ビットモードで制御することになり、LCDのD4~D7をArduinoと接続します。

通常はArduinoから8ビットのデータを送るんですが、4ビットモードでは2回に分けて送信することになります。

8ビットモードで使う場合はArduinoとLCDのD0~D7を繋いでください。

ArduinoとLCDを接続する

LCDのコントラストを調整するために可変抵抗が必要です。

LCDのピンArduinoのピン
VDD+5V
VSSGND
Vo可変抵抗の真ん中のピン
RSデジタルピン9
R/WGND
Eデジタルピン8
D4A0
D5A1
D6A2
D7A3
A+5V
KGND

※デジタルピンとアナログピンの接続はあくまで一例です。

可変抵抗は3ピンある内の真ん中のピンをLCDのVoに接続します。

残りの2ピンは+5VとGNDに接続します。

可変抵抗を回すとLCDに表示される文字や数字のコントラスト(濃淡)が変わります。

コントローラーと通信ができていたとしても、コントラストの調整をしていないと文字や数字が表示されない(見えない)ので気を付けてください。

ArduinoでLCDを制御するプログラム

Arduinoの標準ライブラリを使って、文字や数字を表示させるプログラムを作りました。

プログラム
/*LCDプログラム*/
#include 

LiquidCrystal lcd(9, 8, A0, A1, A2, A3);  /*RS E D4 D5 D6 D7*/

void setup() {
  lcd.begin(16, 2);
}

void loop() {
 
  lcd.setCursor(0, 0);
  lcd.print("0123456789ABCDEF");
  lcd.setCursor(0, 1);
  lcd.print("0123456789abcdef");
}

ポイントは

LiquidCrystal lcd(9, 8, A0, A1, A2, A3); /RS E D4 D5 D6 D7/

コメント文にも書いているとおりで、LCDに繋いでいるArduinoのピンを元に設定を変更してください。

LCDでよく使う関数は次の通りです。

関数役割
clear()表示している文字や数字を消去
home()カーソルを左上に戻す
setCursor(col,row)カーソルの位置を指定する(col:桁,row:行)
print(data)データを表示する

アスキーコードか文字列を送信するとLCDに表示されます。

ArduinoでLCDを使う方法

この記事では「ArduinoでLCDを使う方法」について紹介しました。

LCDに文字や数字を表示するには、ArduinoからLCDのコントローラーへパラレル通信でデータを送信します。

LCDはコントラスト調整が必要なので、文字や数字が全く表示されない時は可変抵抗を調整してみてください。

プログラムは標準ライブラリを使うと簡単です。

ライブラリなしでも制御することが可能ですが、オシロスコープがないとプログラムの修正が大変なのでおすすめしません。

Arduino関連の人気記事

>>【Arduino入門キット】電子工作の勉強におすすめ【こんなに安くていいの?】

>>Arduinoでできることを紹介【逆にできないことは何?】

>>Arduinoをゼロから勉強する方法【参考書は不要】

当ブログで人気のArduino入門キット

第1位:Arduino UNO スターターキット
Arduino UNOのスタータキットです。電子工作でよく使う部品が一式揃っており、バラバラで購入するより格段に安いです。
第2位:ELEGOO Arduino用のUNO R3 最終版スタータキット
こちらも電子工作によく使う部品が第一位のスタータキットよりたくさん入っています。とてもお買い得です。
第3位:ELEGOO Arduino MEGA 2560 R3
UNOの上位互換版MEGAのスターターキットです。これだけ入っていれば十分に電子工作の基本をマスターできることでしょう。
エンジニアが教えるArduino入門講座のまとめ【解説動画付き】