Mira&Luna's nursery lab

旅乙女と発明娘の子供部屋

手作りGPSロガー 4回目「液晶ディスプレイ」

f:id:miraluna:20180103123620j:plain:w290 f:id:miraluna:20180514121902j:plain:w290
Mira f:id:miraluna:20180105114819j:plain:w30          🎀目次へ🎀

自作GPSロガーの作り方を紹介します。第4回目。

LCDマイクロコンピュータで制御します。
L=Liquid  =液体=液
C=Crystal  =結晶=晶
D=Display =ディスプレイ

LCD=液晶ディスプレイ  よ。

使ったのは「I²C接続小型キャラクタLCDモジュール 8x2行」
[AQM0802A-RN-GBW]


LCDは12本とか14本とか線をつなぐものも多いんだけど、GPSロガーを作るには みつは(マイコン)につなぐ部品が他にもあるから、なるべく少ない本数でつなぎたい。そこで今回はI²C(アイ スクエアド シー)という通信のできるLCDを使います。秋月電子さんで320円。これを使えば4本だけの配線でつなぐことができます。
でもこれだけだと基板との足の幅(ピッチ)が違うのと、プルアップ抵抗というものを入れなくちゃいけないの。そこでモジュールピッチ変換基板という便利な基板を間に入れました。

「I²C接続小型キャラクLCDモジュールピッチ用変換基板」
 [AE-AQM1602A(BOARD)] こちらも秋月電子さん。120円。

こうするとプルアップ抵抗も実装済みだし、きれいに基板のピッチに変えられる。

でもこの基板、もともとは[AQM1602XA-RN-GBW]という16x2行のもっと大きいLCDのためのもので、まったくそのままでは使えない。足を一本だけ組み替える必要があるの。
組み替えたのが下の写真。左から2番目の足を、3・4番目の次に入れているの、
わかる?
f:id:miraluna:20180103123758j:plain:w350

1・2・3・4・5・6・7・8・9 という順番を
1・ 3・4・5・6・7・8・9 という順番にする。
これでばっちり!

だけどじつは足の組み換えをしなくても、同じ秋月電子さんなら
「I²C接続小型LCDモジュール(8x2行)ピッチ変換キット」
 [AE-AQM0802(KIT)]  600円
で、LCDも専用の変換基板もキットで手に入るんだけどね。


〇接続
 接続は四本のピンヘッダをつなぐだけだから難しくない。
 ・向かって左がGND。バッテリーのマイナスに流れるようにつなぐ。
 ・2番目がSDA(シリアルデータ)。みつは(ATmega328)の場合は27番ピン(A4ピン)
  につなぐ。
 ・3番目がSCL(シリアルクロック)。みつはの28番ピン(A5ピン)につなぐ。
 ・向かって一番右はVDD。3.3vのプラス電源につなぐ。

 これで配線は完了。


〇プログラム
 I²Cの使い方は、私には難しい。そこで今回は他のLCDのように(Arduinoソフトウェアにある「LiquidCrystal」のように)制御できるライブラリ<ST7032.h>を使いました。

以下、試験用プログラム(Arduinoのスケッチ)。

#include <ST7032.h>    //I²CのLCDをLiquidCrystalのように制御できます
#include <Wire.h>     //I²Cはこのライブラリで通信します

ST7032 lcd;

void setup(){         
       //setupでは、起動時に一度だけプログラムを実行します
lcd.begin(8,2);      //今回のLCDは 8x2 なので
lcd.setContrast(30);     //濃淡,コントラストです。20くらい
lcd.print("Hello\xd0\xc2\xca");    //「Helloミツハ」を表示 アスキー文字
}
int i=0;     //「i」に数字0を入れる
int j=0;     //「j」に数字0を入れる
void loop(){
      //loopでは、プログラムを繰り返します。
lcd.setCursor(2,1); /*2行目3マス目からスタートし、
         0から99までカウントするプログラム*/
lcd.print(i);   //「i」に入っている数字を表示
i++;      // iに入っている数字を1つ増やす
delay(75);    //一瞬待つ
if(i==100){i=0;}  //100になったら0に戻る

lcd.setCursor(5,1); //2行目6マス目から50までカウントするプログラム
lcd.print(j);
j++;
delay(75);
if(j==51){j=0;}
}


以上、試験用プログラム。

※全角のスペースがあります。コピーする方は半角にするか消去してお使いください。
< > ←このかっこも全角になっています。

ライブラリについての情報は ↓こちらを参照ください。
手作りGPSロガー プラスαの2回目 「Arduinoでライブラリを使うための準備」 - Mira&Luna's nursery lab



1行目は「helloミツハ」の表示、2行目の3マス目と6マス目でカウントが始まれば成功!



おまけ:アスキー
f:id:miraluna:20180105174531p:plain


続く。

3回目」へ        「5回目」へ

       ★目次へ