Mira 🎀目次へ🎀
自作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番目の次に入れているの、
わかる?
1・2・3・4・5・6・7・8・9 という順番を
1・ 3・4・2・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マス目でカウントが始まれば成功!
おまけ:アスキー表
続く。
★目次へ★