I2C接続AQMシリーズのキャラクタ表示LCDをArduinoで使う (3) ACM1602NI

番外編;ACM1602NIは16文字×2行のキャラクタ表示LCD

 ACM1602NIは、連載の1回目のAQM0802より表示面積は広い16文字×2行の表示器です。AQM1602と異なりバックライトが使えるので、暗闇でもはっきり文字が読み取れます。ライブラリは同じものを利用するので、インストール方法は連載1回目の記事を参照ください。

 ACM1602NIは、秋月電子通商から2017年7月現在、1280円で販売されています。

AQM0802と設定が2か所異なる

 AQM0802のライブラリを利用します。AQM0802とACM1602NIでは異なる部分があります。2か所、修正します。どちらも、「ドキュメント\Arduino\libraries\FaBo_213_LCD_mini_AQM0802A\src」に入っています。

スレーブ・アドレス 0x3e -> 0x50

 ヘッダ・ファイル FaBoLCDmini_AQM0802A.hの変更部分

//#define AQM0802A_SLAVE_ADDRESS 0x3E ///< AQM0802A I2C Slave Address
#define AQM0802A_SLAVE_ADDRESS 0x50 ///< ACM1602NI I2C Slave Address

データの書き込みコード 0x40 -> 0x80

 C++のプログラム FaBoLCDmini_AQM0802A.cpp

size_t FaBoLCDmini_AQM0802A::write(uint8_t value)
{
// send(value, (uint8_t)0x40);
send(value, (uint8_t)0x80);
return 1; // assume sucess
}

AQM1602と同じスケッチを動かす

 前回と同様に、Arduino Unoと接続します。3番ピンVoはコントラストの調整用の入力で、マニュアルにあるように、10kもしくは20kΩの半固定抵抗で5Vの電圧を下げて、接続します。文字が見やすい範囲は狭いです。

Arduinoの端子 ACM1602の端子
5V VDD(2番)とBL+(6番)
GND VSS(1番)とBL-(1番)
SCL SCL(4番)
SDA SDA(5番)

 AQM1602用のアナログ入力の電圧を表示するスケッチを少し修正しました。初期化は、AQMシリーズのように拡張命令がないので、特別なコードは不要です。

#include <Wire.h>
#include <FaBoLCDmini_AQM0802A.h>
FaBoLCDmini_AQM0802A lcd;
int sensorPin = A0;
int sensorValue = 0;

void setup() {
// set up the LCD:
lcd.begin();

// Print a message to the LCD.
lcd.print("hello!");
delay(10000);
}
void loop() {
lcd.clear();
sensorValue = analogRead(sensorPin);
lcd.print(sensorValue); lcd.print(" ");
lcd.print(sensorValue/1024.0*5.0); lcd.print("V");
delay(1000);
}