秋月の小型キャラクタLCD
今回秋月電子で売られている小型のキャラクター液晶2種を買ったので、ちょっと比較してみる。
買ったのは8文字x2行と16文字x2行の物。
I2C接続小型LCDモジュールピッチ変換キット – 秋月電子
I2C接続小型キャラクタLCDモジュール(3.3V/5V)ピッチ変換キット – 秋月電子
値段
LCD単体 | ピッチ変換基板 | セット | |
8x2(AQM0802) | 320円 | 400円 | 600円 |
16x2(AQM1602) | 450円 | - | 550円 |
LCD単体価格と基板付きの価格で逆転現象が起きてます。
8x2のピッチ変換基板の高さが目立つ。
LCDサイズ
16x2の方は単純に8x2の倍の大きさなのかなと思ったらそうでは無かった。
16x2の方はだいぶと大きいです。
画面 | 全体 | 文字 | |
AQM0802 | 27 × 10.5 | 30 × 19.5 | 2.45 x 4.35 |
AQM1602 | 54.7 × 10.8 | 66 × 27.7 | 2.95 x 5.15 |
厚さ
LCDの厚さは見た目にはほぼ変らないが、データシートによると僅かに違うようです。
また、個体差があるのかデータシートには最大値が記されているだけ。
厚さ(実測) | 厚さ(最大) | |
AQM0802 | 1.7mm | 最大1.8mm |
AQM1602 | 1.9mm | 最大2.0mm |
ピッチ変換基板
2つ共通のものでは無く、別々の基板です。
LCDのピンの並びも微妙に違っているようで、共通で利用するのは無理っぽい。
ピンのピッチも違っていて、16x2の方はハーフピッチ(1.27mm)で8x2の方は1.5mm。
どちらの基板もI2Cのプルアップ用抵抗が実装されていて、半田ジャンパーによって有効・無効を選べる。
そして、基板から変換されるピンですが、16x2の方はVDD・SCL・SCA・GNDの4ピンだけなのに対して、8x2の方は4つのピンに加えてRESETピンも用意されています。
取り付けると、8x2の方は液晶の左側からピンが出ているのに対して、16x2の方は液晶の上部から出ています。
仕様
2つとも同じコントローラ(ST7032i)が搭載されているけれど、モジュールの仕様は説明書やデータシートの記載場所によって若干の違いがあったりします。
一応ST7032のデータシートを見てみると
電源電圧:2.7~5.5V
インターフェース:I2C
I2Cアドレス:0x3E
I2Cスピード: 最大400kHz
使用可能温度:-30~+85℃
I2Cアドレス
ST7032iのI2Cアドレスは0b0111110(0x3E)で固定されているようです。
※8x2の方ですが、秋月電子の説明書には0x7Cと書かれているけれど、これは間違いのようで実際は0x3Eでした。
ユーザ定義文字(CGRAM)
キャラクターを独自に定義出来る文字数が、8x2と16x2で違っています。
アドレス | 文字数 | |
AQM0802 | 0x00~0x05 | 6文字 |
AQM1602 | 0x00~0x07 | 8文字 |
実際の表示
秋月の16x2の方の説明書にArduinoとの接続のしかたが掲載されている。
ピンの接続のほか、Arduino用のプログラムも掲載されているので、とりあえず説明書通りに試してみました。
(I2Cのプルアップは、変換基板の物を使わず外部で10kΩの抵抗を使いました。)
ですが、説明書通りのプログラムをそのまま5V動作のArduinoで実行するとコントラストが濃くて全てのドットが真っ黒になってしまいました。
これは、内部の昇圧回路がONになっている為で、昇圧をOFFにしてやる必要があるようです。
#include <Wire.h><br /> #define LCD_ADRS 0x3E<br /> <br /> char moji[]="AQM1602XA-RN-GBW";<br /> <br /> void setup()<br /> {<br /> Wire.begin();<br /> init_LCD();<br /> }<br /> <br /> void loop()<br /> {<br /> for(int i=0;i<16;i++)<br /> {<br /> writeData(moji[i]);<br /> }<br /> writeCommand(0x40+0x80);<br /> for(int i=0;i<16;i++)<br /> {<br /> writeData(i+0xB1);<br /> }<br /> while(1){}<br /> }<br /> <br /> void writeData(byte t_data)<br /> {<br /> Wire.beginTransmission(LCD_ADRS);<br /> Wire.write(0x40);<br /> Wire.write(t_data);<br /> Wire.endTransmission();<br /> delay(1);<br /> }<br /> <br /> void writeCommand(byte t_command)<br /> {<br /> Wire.beginTransmission(LCD_ADRS);<br /> Wire.write(0x00);<br /> Wire.write(t_command);<br /> Wire.endTransmission();<br /> delay(10);<br /> }<br /> <br /> void init_LCD()<br /> {<br /> delay(100);<br /> writeCommand(0x38);<br /> delay(20);<br /> writeCommand(0x39);<br /> delay(20);<br /> writeCommand(0x14); <br /> delay(20);<br /> writeCommand(0x73);<br /> delay(20);<br /> writeCommand(0x52); // 5V動作用<br /> //writeCommand(0x56); // 3V動作用<br /> delay(20);<br /> writeCommand(0x6C);<br /> delay(20);<br /> writeCommand(0x38);<br /> delay(20);<br /> writeCommand(0x01);<br /> delay(20);<br /> writeCommand(0x0C);<br /> delay(20);<br /> }<br />
内部の昇圧回路をOFFにする為に55行・56行で数値を変えています。
無事に表示が確認できました。
実際に表示してみると、文字の大きさの違いは小さい。
そして16x2の方は余白部分が大きいことが分かる。
関連記事
-
-
Arduino + USBホストシールド で ADK を試す(その1)
先日Google IOで発表された Android Open Accessory。みなさん知ってます
-
-
USBホストケーブルとUSBケーブルの違い
USBホストケーブル(OTGケーブル)と普通のUSBケーブルの違いは、USBホストケーブルとして振る
-
-
PIC24FJ64GB002でADKを試す(その2)
前回「PIC24FJ64GB002でADKを試す(その1)」では回路の説明までしたので、
-
-
Arduino + USBホストシールド で ADK を試す(その2)
前回「Arduino + USBホストシールド で ADK を試す(その1)」では、Androidで
-
-
米粒AVRでI2C通信(マスター)
米粒AVRことATtiny10は3つまたは4つのI/Oピンしか使えないのですが、I2Cなら2つの
-
-
S2 Resistor Color Code 公開しました。
このアプリは、抵抗のカラーコードから抵抗値を素早く見る為のAndroidアプリです。 4本帯と、5
-
-
Android+Arduinoでリモコン3 その1(AndroidAccessory接続)
何度か、Android+リモコンのネタを書いたことがあるのですが、今回はAndroid Access
-
-
Raspberry Piの起動SDカードを準備する
先日入手したRaspberry PiでLinuxを起動する為のSDカードを準備します。 Ras
-
-
米粒AVRでシリアル通信(ただし送信だけ)
米粒AVR(ATtiny10)にUART機能は搭載されていないので、シリアル通信を行う為には自前
-
-
AndroidでSoftModemを試してみた
今回、ここで言うSoftModemとは、携帯電話のオーディオ端子(イヤホン・マイク端子)を利用し
- PREV
- パソコンで温度計 #4
- NEXT
- 秋月のリアルタイムクロック(RTC)モジュール