以前、
逆ポーランド電卓 について書きましたが、やはり作ってみたくて部品を集め始めました。本日中国から届いたのは20桁×4行のLCDモジュールです。2004 LCDとか呼ばれているようです。4行にしたのはスタックが見えるようにしたかった為ですが、かなりゴツいですね。
写真はiPhoneで撮っておりちょっと写りがイマイチ。肉眼だともっとキレイに見えます。
緑や青はアマゾンでも売られていますが、白バックに黒文字が欲しくてAliexpressで購入しました。送料が結構かかったので、送料を薄めるために2個購入して2,000円ちょっとです。
I2Cインタフェースモジュールは別売になっていたので、これも購入。自分で半田付けします。LCD側の基板とのショートが心配だったので、裏にカプトンテープを貼りました。
LCD基板の裏側の様子です。
Arduino nanoで試しています。タクトスイッチはブレッドボードに載っているだけで使っていません。
最初バックライトが光るだけで何も表示されなかったので焦りましたが、I2Cモジュールに載っている半固定抵抗でコントラストを調整したらしっかり表示されていました。
キースイッチも注文してありますが、まだ届きません。スイッチの方が10日くらい早く注文したのですが。
簡単ですがスケッチです。無保証です。lcdクラスの0x27はI2Cのアドレス。
//------------------------------------------------------------------
// 21.08.23 naka
// LCD2004(20桁x4行)テスト
//------------------------------------------------------------------
//#define SDAPIN A4
//#define SCLPIN A5
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
void setup() {
lcd.init();
lcd.backlight();
dispLCD_msg("0123456789ABCDEFGHIJ",
"KLMNOPQRSTUVWXYZabcd",
"efghijklmnopqrstuvwx",
"yz!#$%&'()=~|+-^[]{}");
}
void loop() {
}
void dispLCD_msg(char msg1[],char msg2[],char msg3[],char msg4[]) {
lcd.clear();
lcd.setCursor(0, 0); // Col,Raw
lcd.print(msg1);
lcd.setCursor(0, 1); // Col,Raw
lcd.print(msg2);
lcd.setCursor(0, 2); // Col,Raw
lcd.print(msg3);
lcd.setCursor(0, 3); // Col,Raw
lcd.print(msg4);
}
//------------------------------------------------------------------
// EOF
//------------------------------------------------------------------