I2C/SPIキャラクタ液晶モジュール(ATD1602A-14)を試してみる

やってみた

 手持ちのLCDはどれもI2CやSPIに対応していないものだったので、aitendoのI2C/SPI対応のLCDを試してみることにした。

材料

商品名購入先価格
Arduino Nano(Clone品)中国の謎バイヤー\500
I2C/SPIキャラクタ液晶モジュール(16×2) [ATD1602A-14]aitendo\500
ピンヘッダーaitendo\25

合計:1,025円

 I2Cだけあればよかったが、せっかくなのでSPIも使えるものを選んでみた。
Aliexpressで探すと

ピンアサイン

 この製品は何故かわからないがJ1とJ2という2つのpin部分があり、J1は6pin、J2は5pinと異なっている。データシートによると、J1にだけある4番目のPSBは入力がHighのときはI2Cインタフェース、LowのときはSPIインタフェースということになっている。
I2CとSPIをプログラムから切り替えて使うとか利用シーンが思いつかないし、使いどころが分からないのでJ2だけ使うことにする。

J1

No. Symbol Function
1VSSGround (0V)
2VDDSupply Voltage for Logic (+5.0V )
3CSChip select pin. ”L” : 3-Line Interface, “open” : I2C Interface
4PSB”H” : I2C Interface, ”L” : 3-Line Interface
5SCKserial clock
6SDAserial data input

J2

No. Symbol Function
1VSSGround (0V)
2VDDSupply Voltage for Logic (+5.0V )
3CSChip select pin. ”L” : 3-Line Interface, “open” : I2C Interface
4SCKserial clock
5SDAserial data input

配線

 I2Cで使用するときは3番ピンのCSには何もつながない。VSS→GND、VDD→VIN(5V)、SDA→A4、SCK→A5に繋ぐ。

ソースコード

 販売先のaitendoが動作確認に使用したとするライブラリのLCD_ST7032はgithubにある。LCD_ST7032はライブラリマネージャからのインストールも可能。(参考:ライブラリの追加方法
 データシートによるとドライバICはAIP31068LとなっているがST7032用でも問題ないようだ。
ライブラリの中にサンプルとしてHelloWorldが入っているので実装の参考にできる。

//-------------------------------------------------------------------------------------------
// Tested Module    : ERC1602-4, EASTRISING TECHNOLOGY CO,.LTD.
// Drive IC         : ST7032
// INTERFACE        : I2C
// VDD              : 2.7V-5.5V
// Tested with MCU	: Arduino Uno, Attiny85@1mhz(5.0V), Attiny85@8mhz(5.0V) and ESP8266(3.3V)
//-------------------------------------------------------------------------------------------

#include <LCD_ST7032.h>

LCD_ST7032 lcd;

void setup() {
  lcd.begin();
  lcd.setcontrast(24); //contrast value range is 0-63, try 25@5V or 50@3.3V as a starting value
}

void loop() {
  static int counter = 0;
  
  // Write a piece of text on the first line...
  lcd.setCursor(0, 0);  //LINE 1, ADDRESS 0
  lcd.print("Hello World");

  // Write the counter on the second line...
  lcd.setCursor(1, 0);
  lcd.print(counter/10, DEC);
  lcd.write('.');
  lcd.print(counter%10, DEC);
  lcd.write(' ');
  delay(500);
  counter++;
}

動作テスト

配線が正しく、プログラムにも問題がなければ1行目に「Hello World」、2行目にカウントアップされる数字が表示される。

感想

おすすめ度:★★★★★  

 4本配線するだけで済むので配線作業がとても楽になります。値段もそんなに高くなりませんし、これから買う人はI2CかSPI対応のLCDを購入することを強くおすすめします。

タイトルとURLをコピーしました