はじめに
液晶ディスプレイをArduinoに接続し、文字を表示する方法を解説します。
また、本記事で解説するやり方は、パラレル通信方式のものです。
今回使用するのは、 1602Aと呼ばれるLCDで、
16文字x2行の計32文字の表示が可能です。
必要なもの
- Arduino(nanoでもUNOでもOK)
- LCDモジュール(1602A)
- 10kΩ(103)の可変抵抗 2個
使用するLCDの仕様
LCDモジュールのピンアサインは以下の通りです。
3番ピン(V0表記)では画面のコントラストを調整することができます。(後述)
7~10番のピン(DB0~DB3)は、8bitモードで使用する際に使用します。
4bit操作をする今回、このピンには何も接続しません。
15,16番ピンはバックライトのLEDです。
詳しくは1602Aのデータシートを参照してください。
配線
実体配線図
LCDと電源の接続
まず、LCDと電源周りの配線をしてしまいましょう。
LCDピン | 接続先 |
---|---|
Vss | GND |
Vdd | 5V |
V0 | 10k可変抵抗(GND) |
R/W | GND |
A | 10k可変抵抗(5V) |
K | GND |
ArduinoとLCDの接続
LCDピン | Arduino | 機能 |
---|---|---|
RS | D5 | レジスタ選択 |
E | D6 | 動作起動信号 |
DB4 | D9 | データバス |
DB5 | D10 | データバス |
DB6 | D11 | データバス |
DB7 | D12 | データバス |
ここでは、ArduinoNanoを使って説明をしていますが、ArduinoUNOでも実験可能です。
バックライトの輝度調節方法
LCDのA(アノード)、K(カソード)を接続するとバックライトが点灯します。
この間に可変抵抗を接続するとバックライトの輝度を調節することができます。
可変抵抗は10kΩ(103)のものが調節しやすいと思います。
コントラストの調整
コントラストを調節できるようにするためには、LCDのV0端子とGNDの間に可変抵抗を接続します。
可変抵抗はバックライトと同じく、10kΩのものを使用すればOKです。
ソースコード
LiquidCrystal ライブラリを利用し、LCD に文字を出力を簡単にすることができます。
デフォルトでインストールされているので、そのままインクルードすればOKです。
#include<LiquidCrystal.h>
//LiquidCrystal(rs, enable, d4, d5, d6, d7)
LiquidCrystal lcd(5,6,9,10,11,12); //使用ピン指定コンストラクタ
void setup() {
lcd.begin(16,2); //16列2行のLCDを使用することを宣言
lcd.clear(); //画面のリフレッシュ
lcd.setCursor(0,0); //カーソルを0列0行目にセット
lcd.print("Hello,world!"); //文字を表示
lcd.setCursor(0,1); //カーソルを0列1行目にセット
lcd.print("Let's Mechatro!"); //文字を表示
}
void loop() { //ループ処理はないので空
}
プログラムを実行するとこのように動作します。
さいごに
今回、この記事は「取り敢えずLCDで文字を表示してみたい!」という方を対象に執筆しました。
その為、できるだけ必要最低限の情報量の記事となっています。
もし、ライブラリの仕様や、LCDの仕様について興味があれば、「参考サイト」を見ていただければ理解が深まると思います。
参考サイト
- https://iot.keicode.com/arduino/arduino-project-lcd.php
- http://garretlab.web.fc2.com/arduino_reference/libraries/standard_libraries/LiquidCrystal/
- https://omoroya.com/arduino-lesson16/