2016年1月10日日曜日

Arduino LEONARDOでLCD(AE-AQM1602A)を使う


表示するまで一苦労だったため、メモを兼ねて共有します。

使ったもの

ハードウェアの準備

LCDの変換基板をハンダ付けします。
プルアップ抵抗も使いたいので、右下の2箇所のハンダを盛って接続します。


2016.01.10時点でLCDのデータシートにはArduinoとの接続方法が書かれていますが、Arduinoの種類によってI2C通信に使用する端子が違うので、Wire Libraryのボード情報で接続端子を確認します。

2016年2月23日の時点では下記のピン設定になっています。
BoardI2C / TWI pins
Uno, EthernetA4 (SDA), A5 (SCL)
Mega256020 (SDA), 21 (SCL)
Leonardo2 (SDA), 3 (SCL)
Due20 (SDA), 21 (SCL), SDA1, SCL1


自分が持っているArduinoはLEONARDOなので、D2をSDA、D3をSCL、に接続します。
V+とGNDも接続します。

ソフトウェアの準備

# 2019.09.29追記
LCDのライブラリを公開したので、こちらの方がインストールしやすいと思います。
良ければこちらもご覧ください。
ST7032で動くLCDをライブラリを利用してArduinoで制御してみた
# 追記終わり

ライブラリを作られている方がいらっしゃったので、利用させて頂きました。
ストロベリー・リナックス/秋月電子のI2C液晶/OLEDほかをArduinoで使う

上記のサイトからzipをダウンロードして、zip解凍によって作成されるI2CLiquidCrystalフォルダをArduinoのlibrariesフォルダに置きます。

うまく設定されると、Arduinoのエディタ再起動後にライブラリが認識されます。


ライブラリを使って、下記のコードを動かしてみました。

lcd_test
#include <I2CLiquidCrystal.h>
#include <Wire.h>

I2CLiquidCrystal lcd(63, (bool)true);

void setup() {
  lcd.begin(16, 2);
}

void loop() {
  lcd.setCursor(0, 0);
  lcd.print("Hello, World!");
  delay(1000);
  lcd.setCursor(4, 1);
  lcd.print("By LEONARDO.");
  delay(1000);
  lcd.clear();
  delay(1000);
}

動作確認

下記の動作がループしていたら成功です。

  1. 「Hello, world!」が表示される
  2. 「By LEONARDO.」が表示される
  3. 文字が消える

この情報が誰かの役に立てば嬉しいです。

参考

I2C接続小型キャラクタLCDモジュール(16x2行・3.3V/5V)ピッチ変換キット [AE-AQM1602A(KIT)]

0 件のコメント :