ホーム > カテゴリ > ロボット・電子工作・マイコン >

LCD(液晶ディスプレイ)の使い方 [Arduino]

今回は「16文字2行」(16列2行)の文字列を表示する事が可能な「SC1602BBWB-XA-GB-G」を使用します。このLCDにはVo入力がありますので「コントラスト調整」(文字の濃淡調整)が可能です。また、LEDのバックライト付きで白抜きですので見やすいです。

[実行例1] - 1行(英字)

[実行例2] - 2行で「半角カタカナ」と「英字」を使用

※半固定抵抗器でLCDのコントラストを調整可能です。

使用部品・材料

総額で約1,120円です。(Arduino本体の値段を除く)

部品/材料値段備考
ブレッドボード¥270秋月電子の通販コード(P-00315)
LCDキャラクタディスプレイモジュール
16x2行 バックライト付白抜き
¥800秋月電子の通販コード(P-02919)
半固定ボリューム 10kΩ [103]¥50秋月電子の通販コード(P-08012)

はんだ付け

このLCDは基盤表の「ソケット(メス)」、基盤裏の「J3」と「R9(100Ω抵抗)」の3箇所を「はんだ付け」する必要があります。

基盤(表)

基盤(裏)

配線図

[LCDの配線]

スケッチ(プログラム)

3秒毎にLCDに表示させる文字列を変更します。

#include <LiquidCrystal.h>

// ピン番号を指定してライブラリを初期化する
LiquidCrystal lcd( 2,3,4,10,11,12,13 );

void setup() {
 // LCDの列と行を設定する
 lcd.begin(16, 2);
}

void loop() {
  
  lcd.clear();
  
  // 1行目
  lcd.setCursor(0,0);
  lcd.print("Hello, world!");

  delay(3000);
  
  lcd.clear();
  // 1行目(半角でプチモンテ)
  // ※機種によっては半角カナカナは表示されません。
  lcd.setCursor(0,0);
  lcd.print("\314\337\301\323\335\303");

  // 2行目
  lcd.setCursor(0,1);
  lcd.print("petitmonte.com");
  delay(3000);
}

今回のLCDは「Hitachi HD44780互換」ですのでAraduinoの標準ライブラリである「LiquidCrystal」を使用します。(I2C接続のものはI2Cを使用)

接続には「データ信号線」と「制御信号線」(RS/RW/Enable)を使用します。データ信号線は「データ信号線4本線」(d4, d5, d6, d7)、「データ信号8本線」(d0, d1, d2, d3, d4, d5, d6, d7)の2種類があります。

今回は配線が少ない「データ信号4本線」を使用します。詳細はArduino 日本語リファレンスをご覧頂くと理解しやすいと思います。

...

「¥314¥337¥301¥323¥335¥303」は半角カタカナで「プチモンテ」となります。※¥は半角。

16進数8進数
0xCC¥314
0xDF¥337
0xC1¥301
0xD3¥323
0xDD¥335
0xC3¥303

※詳細はデータシートをご確認ください。

文字が表示されない

LCDの配線が正しいのに文字列が表示されない場合は、半固定抵抗器の「つまみ」を動かして画面のコントラスト調整をします。

それでも、次のような画面でしたら、ソケットのはんだ付けに失敗している可能性があります。

LCD(Hitachi HD44780互換)の見分け方

次は今回のLCDのデータシートです。

このように「RS」「R/W」「Enalble」「DBが4本以上」あれば、互換チップセットだと判別できます。また、コントラスト調整の「Vo」がない機種もあります。

反対に「I2C」や「SDA」「SCL」などが表記されている場合は「I2C接続」ですので、LiquidCrystalクラスは使用できませんので注意して下さい。





掲示板

ArduinoやRaspberry Piなどの電子工作の掲示板を作成しました。質問やわからない事は電子工作 (Arduino・ラズパイ等)でユーザー同士で情報を共有して下さい。

関連記事



公開日:2017年05月27日 最終更新日:2017年08月20日
記事NO:02397