電波時計云々の時に思い付いたんだけど、そういやキットで買ったArduinoにLCD付属していたな と。
これを時計にするかどうかは別として、LCDに文字を表示させてみたくなった。
チラッと調べてみた限りLCDに表示するために、面倒な回路を組まないといけないようだ。
深入りすると溺れる可能性が高いので、なるべく避けたいところ。
キットなら必要部品も回路もあるから安心だ。
早速キットのマニュアルを読む。
見た感じ、5V、GND、A4、A5だけ?
モジュール登場
ひとまずLCDを箱から出そう。
裏向けると
流石入門キット。非常にありがたい。
更にスケッチも用意されている。
至れり尽くせりである。
スケッチ
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup()
{
lcd.init(); // initialize the lcd
lcd.init();
// Print a message to the LCD.
lcd.backlight();
lcd.setCursor(3,0);
lcd.print("Hello, world!");
lcd.setCursor(2,1);
lcd.print("keyestudio!");
}
void loop()
{
}
コンパクト。
これ、ソースにこの状態で書いてあった。
インデントしろよ。
一応ソースは把握しておこう。
3行目にしていきなり謎。
lcdの引数がアドレス、横のキャラクタ数、縦のキャラクタ数なのはわかるけど
何故アドレスが0x27なんだ?
説明なしか?
わかったよググるよ(半ギレ
I2Cアダプターにはポテンショ(青いヤツ)の下にアドレス設定用のパターンがあって
全てオープンにするとアドレスが0x27になる ということらしい。
何故0x27なのか、アドレスを何に使うのか が不明なままだけど、深入りはしない。
ArduinoのA4、A5はそれぞれSDA、SCLになるので、それに結線するだけ。
・・・よくわからん。
lcd.init();
なんで2回イニシャライズするんだよ。
なんで2回イニシャライズするんだよ(再
1回で良い。
あとはsetCursor
で場所を指定してprint
で文字を表示させている。
なるほど。これなら俺でもわかる。
というわけで、これをコピペしてちょっと変えて・・・ライブラリがないので怒られた。
PlatformIOでライブラリ追加
PIOのホーム画面から追加する。
・・・ので一番ダウンロード数が多いのにした。
あとはよろしくやってくれる。
画面表示
あとはスケッチをArduinoに流して表示されるはず。