どうも、なかしーです。
僕は自動車のマイコンにプログラミングをする組み込みエンジニアとして働きつつ、YouTubeでArduinoの使い方を解説しています。
>>なかしーの電子工作部
ArduinoでLCDを使う方法について知りたいな
という悩みにお答えします。
LCDは文字列や数字をたくさん表示できる部品です。
LCDの種類は多く、大きさや制御方法の違いがあります。
今回は「2行16文字を表示できるLCDを使う方法」について解説します。
動画でも使い方を解説しています。
LCDの特徴
LCDには、文字や数字を表示するためのコントローラーが付いています。
ArduinoでLCDに文字を表示するときは、コントローラーに指令を出すことになります。
まずはコントローラーの仕組みについて理解しましょう。
パラレル通信でデータを送る
ArduinoからLCDのコントローラーにパラレル通信でデータを送ります。
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 |
VSS | GND |
Vo | 可変抵抗の真ん中のピン |
RS | デジタルピン9 |
R/W | GND |
E | デジタルピン8 |
D4 | A0 |
D5 | A1 |
D6 | A2 |
D7 | A3 |
A | +5V |
K | GND |
※デジタルピンとアナログピンの接続はあくまで一例です。
可変抵抗は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");
}
ポイントは
コメント文にも書いているとおりで、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入門キット