2022年1月29日土曜日

JUNK 1行16文字? LCD GE4194HBをArduinoに接続してみる

ArduinoでLCDに文字を表示させようとJUNK箱を漁っていたらいつ購入したかも覚えていない、裏に「GE4194HB」と書いてある1行16文字表示のLCDが出てくる。
たぶんaitendoあたりでJUNK扱い100円とか、そんな感じで売っていたモノだったような?

「GE4194HB」で検索してみるもデータシート等の情報は見つからずピン配置とか不明。でも、パラレル接続のLCDでは一般的な14ピンのスルーホール穴が開いているので他のLCDと同じで動かせるだろうと、裏側を見てみたところ、何かがおかしい?

他のLCDと比べてみると
上下左右が逆っぽい

上下を合わせるとこんな感じ。このタイプの14ピンパラレルLCDで右側にデータ用の端子付いているLCD初めて見たよ(罠)(勘違い!!下方参照)

ピンアサインは、GNDとVoの場所から推測するにこんな感じ

Arduinoのサンプルコードをもとに16文字1行の設定にして動かしてみるも「hello, w」までの8文字しか表示されない
接続端子のピン配置の推測は合っていたけれど、端子側が右側ではなく、左側で電源が上側に配置という、罠が発覚。

とりあえず最低限の接続に変えて、電源とコントラスト調整用のボリュームだけ繋いで表示させてみても8文字分の■しか表示されず
電源とコントラストしか繋いでいない状態から8文字なので初期化シーケンスとか関係しないハードの不具合?壊れている?と、もう一つ同じものを購入していたのでそちらも同様に最低限の接続で確認すると、同様に8文字しか出ませんでした。ということは仕様? 1行16文字と見せかけて1行8文字という罠???

ふと、昔使用したことがある「ACM0802C-NLW-BBH」の時も1行■表示が出て、1行8空白なんてことがあったなと思い出し
 Japaninoへの8x2行LCD液晶モジュール ACM0802C-NLW-BBHの接続に悩む
ちゃんと初期化すれば16文字表示出せるのか?と

調べると16文字1行LCDはコスト削減で使用ICを減らすのに内部的には8文字2行と同じになっている事が多いようで、内部的に左8文字が1行目、右8文字が2行目扱いになっているらしい?

プログラムを見直し
無事「hello, world!」が表示できました。

罠だらけ (^●^)


表示確認に使った参考ソース
ArduinoのライブラリにあるLiquidCrystalのサンプルソースをベースに、1行16文字液晶対応にしたもの。(8文字2行と同じ。)

// include the library code:
#include <LiquidCrystal.h>

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  lcd.begin(8,2);  //内部的には8文字2行
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("hello, w");
  lcd.setCursor(0, 1);
  lcd.print("orld!");
}

void loop() {
}

0 件のコメント:

コメントを投稿