🌏

電子工作 その16(LCDディスプレイ:1602Aの使い方)

2023/08/27に公開

こんにちは、Ideagearの鈴木陽介です。

今回は、Arduino Unoを用いたLCDディスプレイ(1602A)の使い方についてご説明します。

と、その前に、前回は「0.96インチの128×64ドットのOLEDディスプレイ」についてご説明しました。詳細は下記:
https://zenn.dev/suzuky/articles/8d03cf5e370887

OLEDも非常に扱いやすい表示デバイスですが、サイズが小さ過ぎて物足りないというケースも出てきます。その場合は、今回ご説明するようなLCDディスプレイをぜひ活用しましょう!

はじめに

1602Aは非常にオーソドックスなLCDディスプレイで、巷ではI2Cアダプターを使った記事が豊富にあります。

ただ、今回私が使用したのは、以前華強北の電子市場で購入したもので、I2Cアダプターは付加されていません。

とは言え、当時も入居していたメーカーセンターからパッと買いに行き、戻って来てすぐYouTubeの動画を見ながら複数の線をパパっと配線して動かした記憶があり、難しい印象はありません。

ということで、配線が4本で済むI2Cと比べて配線数が格段に多くなりますが、今回はあえて16ピンをフルに使うやり方(とは言え実際に使用するのは12ピンだけですが、、、)をご紹介します。

ちなみに、単にI2Cアダプターを買うのが面倒だっただけだろ?
というツッコミはなしでお願いしますw

参考記事

【Arduino入門編⑰】LCDディスプレイに文字を表示させてみる![前編][1602 LCDモジュール]
https://burariweb.info/electronic-work/arduino-learning/arduino-lcd-module-display.html#1602_LCD-2

【Arduino入門編⑱】I2C通信の基礎!LCDディスプレイに文字を表示させてみる![後編]
https://burariweb.info/electronic-work/arduino-learning/arduino-i2c-communication-basics.html

1602A I2C アダプターの利用
https://iot.keicode.com/arduino/arduino-lcd-i2c.php

ピン配置

V0とGNDの間に使用する抵抗は、参考記事では2kΩ(あるいは可変抵抗)が推奨されていますが、手元に2kΩのが無かったため、2.2kΩのを使用しました。まぁ経験上これくらいの誤差は大丈夫ですw

Arduino Uno 1602A
GND VSS
5V VDD
GND V0※抵抗
7番ピン RS
GND RW
8番ピン E
- D0
- D1
- D2
- D3
9番ピン D4
10番ピン D5
11番ピン D6
12番ピン D7
5V A
GND K

※GND→抵抗(2.2kΩ)→V0

ブレッドボード図

下記は、実際にArduino Unoと配線した時の様子です。

ライブラリー

ライブラリーは不要。
というより、Arduinoには、LiquidCrystalという下記ライブラリーがすでにインクルード済みです。

LiquidCrystal Built-In by Arduino

ただ、I2Cで使う場合は、ライブラリーのインクルードが必須ですのでご注意ください。

ソースコード

参考記事の文字の点滅プログラムを活用させていただきました。

#include <LiquidCrystal.h>

// LCD ←→ Arduinoのピンの割り当て
// rs      →   D7
// rw      →   GND
// enable  →   D8
// d4      →   D9
// d5      →   D10
// d6      →   D11
// d7      →   D12

// [構文]LiquidCrystal(rs, rw,  enable, d0, d1, d2, d3, d4, d5, d6, d7)

LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

void setup() {
  
  lcd.begin(16, 2);          // LCDの桁数と行数を指定する(16桁2行)
  lcd.clear();               // LCD画面をクリア

  lcd.setCursor(0, 0);       // カーソルの位置を指定(0桁0行の位置)
  lcd.print("Hello!");       // 文字の表示

  lcd.setCursor(0, 1);       // カーソルの位置を指定(0桁1行目の位置)
  lcd.print("Arduino Uno");  // 文字の表示

}

void loop() {

  lcd.display();    // 画面を表示
  delay(500);

  lcd.noDisplay();  // 画面を非表示
  delay(500);

}

テスト

上記ソースコードを書き込むと、下記の文字が表示され、点滅します。

Hello!
Arduino Uno

https://twitter.com/Ideaport_Suzuky/status/1695419385492742390

おまけ

過去の実績動画も併せて共有します。

https://twitter.com/hqbot9/status/1695422038973067677
Arduino Unoのリセットボタンを押すと、カウントダウンのようなものが始まります。(撮影日:2020年10月16日)

まとめ

いかがでしたでしょうか?

今回ご紹介したLCDディスプレイは、OLEDディスプレイと並んで表示デバイスとして非常に優秀です。また、本記事ではご紹介していませんが、1602Aは輝度の調整もカンタンにできますし、値段も数百円でとにかく安価です。

それに、1602Aについてはブルーバックライトに白文字とイエローバックライトに黒文字の2種類が一般的ですが、秋月電子さんのウェブサイト等をご覧いただければわかる通り、市場にはサイズも色も様々なものが出回っており、選択肢の幅が広いです。

ともかく、プロトタイプに何か表示するものを組み込みたい場合、前回ご紹介したOLEDと併せて、ぜひ今回のようなLCDディスプレイも選択肢の一つに加えてあげてください。

それではまた!

Discussion