ARMでのLチカから始まった、私のマイコン弄り、前回はEdisonでネギ振りシールドの制御に失敗しましたが、他のシールドはどうかなぁと液晶シールドを買ってきちゃいました。
ええ、またしてもEdisonじゃ動きませんでしたよ。
と言う訳で検証用に買ったArudino UNOで動かしてみました
LEDとあまり変わらない難易度で文字や絵が扱える
MGLCDライブラリという、GLCD制御用のライブラリが、基盤製作者のHPで公開されており、Lチカとたいして変わらない難易度で、液晶に文字や画像を表示できます。
基盤は二枚重ねになっており、下段には空きパターンや信号が伸びてきてますので、何かしらの回路を一緒に実装して、何かおもちゃが作れると思いますが、ちょっと難易度が高いかも。
参考までに今回使ったメイン部分のスケッチを置いておきます。
呼び出されるs01.hなどの画像ファイルはライブラリ付属の変換ツールでモノクロBMPから作成できます。
#include <mglcd.h>
#include "s01.h"
#include "s02.h"
#include "s03.h"
#include "s04.h"
#include "s05.h"
#include "s06.h"
TLcdPinAssignTable PinAssignTable={
A0_DI : A3, // A0
CS1_E1 : A0, // E1
CS2_E2 : A1, // E2
E : MGLCD_UNUSED_PIN,
RW : A2,
DB0 : 8 ,
DB1 : 9 ,
DB2 : 10,
DB3 : 11,
DB4 : 4 ,
DB5 : 5 ,
DB6 : 6,
DB7 : 7
}; // PinAssignTable;
mglcd_S12232ZA MGLCD(PinAssignTable);
void setup()
{
MGLCD.Reset();
// 負電圧を発生するチャージポンプ回路を有効にする
pinMode(3,OUTPUT);
analogWrite(3,127);
// スタートメッセージ
MGLCD.print("DEMO by amatarin");
delay(2000);
MGLCD.ClearScreen();
}
void loop ()
{
MGLCD.ClearScreen();
for(int i=0; i<30; i+=5) {
MGLCD.DrawBitmap(BMP_s01,0,0);
delay(2000);
MGLCD.DrawBitmap(BMP_s02,0,0);
delay(2000);
MGLCD.DrawBitmap(BMP_s03,0,0);
delay(2000);
MGLCD.DrawBitmap(BMP_s04,0,0);
delay(2000);
MGLCD.DrawBitmap(BMP_s05,0,0);
delay(2000);
MGLCD.DrawBitmap(BMP_s06,0,0);
delay(2000);
} // for
MGLCD.print("DEMO END");
delay(2000);
MGLCD.ClearScreen();
}
以上。
MGLCD.DrawBitmapの仕様は公開されてないんですが、
s01.hを呼びたい場合は
MGLCD.DrawBitmap(BMP_s01,0,0);
と書くようです。後ろの0,0はxyの座標だと思います。
コレさえ解れば簡単でした。
あとは回転数で絵が変わるファンコンとか作れる知識があればなぁ
-
購入金額
1,522円
-
購入日
2015年01月12日
-
購入場所
三月兎2号店
ZIGSOWにログインするとコメントやこのアイテムを持っているユーザー全員に質問できます。