もみあげあしめ

組み込みとかIoTとか、いろいろ

Arduino でキャラクタディスプレイを使う

冬といえば、キャラクタディスプレイの季節ですね。光るバックライトに流れる文字。
イルミネーション?新年のご挨拶?何のことですか?

f:id:shima_nigoro:20161218223253p:plain:w300

この記事では Arduinoをはじめよう 互換キット に付属する I2C LCD の使い方をまとめる。

Arduino とデバイスをつなぐ

16x2 I2C LCD プロジェクト | osoyoo.com のとおりにデバイスをつなぐだけ
#普通は 4つのデータ線と 2つの制御線がいるらしいが、これは 2つで済むらしい。助かる。

バイスのアドレスを特定する

Arduino のシリアル経由でデバイスアドレスを送信させる

16x2 I2C LCD プロジェクト | osoyoo.com の ic2_scanner をビルドしてアップロードする。
#i2c_scanner の間違いであるが、そこは気にしないでおk

Arduino が送信するアドレスを Raspberry Piで受信する

Raspberry Pi にシリアル通信用のツール cu をインストールする

sudo apt-get install cu

Raspberry Pi でシリアル通信端末を起動する #ボーレートは 9600 らしい

cu -l /dev/ttyACM0 -s 9600

・デバイスが見つかると下記のようなログが出る

I2C Scanner
Scanning...
I2C device found at address 0x27  !
done

※シリアル端末を閉じる際は ~. を入力する

LCD に文字を表示させる

Osoyoo I2C 1602 LCD 用のライブラリのインストール

16x2 I2C LCD プロジェクト | osoyoo.com からダウンロードして lib に展開しておく

画面表示用のスケッチを保存する

サンプルが気に入らなかったので書き直したけれど、実は1文字ずつプリントする必要はない。
※ LiquidCrystal_I2C lcd(device_addr,16,2) の device_addr は取得したものを設定する

上記をライブラリと一緒にビルドして転送すれば、LCD 上に文字が流れます。お疲れ様でした。