酒と薔薇の日々(その2)

つれづれなるままに好きなことだけ求めて生きるINTJ人間

Arduinoで秋月LCD SC1602BS*Bの駆動実験

2014年08月17日 22時39分31秒 | マイコン(ESP32・Arduino等)

Picの時ではついにやらなかったLCDを動かしてみた。

9年前のLCDを引っ張り出して、昔電源のPINが普通と違うからという記事があったので超慎重に配線を確認

データシートはこんな感じ。

LCDを上から見た図を書いて、どのピンに繋ぐかを書いてみた。②とかがpin番号

LCDの7,8,9,10は使わない4ビットモードで動作させる。LCDライブラリには8ビットモード用のパラメータも用意されている。

VOは本当は10kΩの可変抵抗を入れる。トップ写真では入れている。

あっけなく完成・・・ではなかった。

接触が悪いのか、変な表示が出たり、上一列だけ豆腐が16個表示されたり。配線は何度も再確認した。

さらにもう一個持っていたLCDもコネクタ半田付けしてテストしても同じ状態(使いたくなかったのだがしょうがない)

配線を全部引っこ抜いて再配線したらあっさリ動いた。何だったのだろう。本当に解らない。

シールド基盤にする理由が少しわかった。毎回配線するのも面倒だ。

清書版はこちら

ソースはたったこんだけ。


#include
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Pin割り当て こんな風に書くのか

void setup() {
  lcd.begin(16, 2);
  lcd.clear();       // 無くてもイイみたい
  lcd.setCursor(0,0); // 無くてもイイみたい
  lcd.print("hello, world!");
}

void loop() {
  lcd.setCursor(0, 1);
  lcd.print(millis()/1000);
}


参考:RWはGNDに落として書き込みモードのみで動かすけど、RWを有効にしておくと、0~8番のアドレスに自分のキャラクタをBITMAPで定義できるそうです。

この場合は、LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);とpinアサインを書きます。

この記事についてブログを書く
« Windows Live MovieMaker 使... | トップ | 湿度センサーについて »