Waffleを使って実際にGroveセンサーを試してみています。
今回は入力系ではなく表示位で、4桁の数字を表示する「4-Digit Display」を使ってみます。
Waffleとは
Arduino互換のマイコンボードです。
詳しくはこちらをご覧ください。
※だんだん説明が雑になっていくw
準備
各自、必要なものを準備しておいてください。
開発は、Arduino IDEを使用します。
ライブラリの準備
今回の「4-Digit Display」では、LED操作チップである「TM1637」のライブラリを使用します。
ライブラリである「DigitalTube.zip」をここからダウンロードします。
次に、Ardiono IDEの「.zip形式のライブラリをインストール...」からインストールを行います。
何も起こらず心配になりますが、ちゃんとメニューに「DigitalTube」が増えています。
プログラミング
seeedのWikiにあるサンプルを動かしてみます。
/*
* TM1637.cpp
* A library for the 4 digit display
*/
# include "TM1637.h"
# define CLK 39 //pins definitions for TM1637 and can be changed to other ports
# define DIO 38
TM1637 tm1637(CLK,DIO);
void setup()
{
tm1637.init();
tm1637.set(BRIGHT_TYPICAL);//BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7;
}
void loop()
{
int8_t NumTab[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};//0~9,A,b,C,d,E,F
int8_t ListDisp[4];
unsigned char i = 0;
unsigned char count = 0;
delay(150);
while(1)
{
i = count;
count ++;
if(count == sizeof(NumTab)) count = 0;
for(unsigned char BitSelect = 0;BitSelect < 4;BitSelect ++)
{
ListDisp[BitSelect] = NumTab[i];
i ++;
if(i == sizeof(NumTab)) i = 0;
}
tm1637.display(0,ListDisp[0]);
tm1637.display(1,ListDisp[1]);
tm1637.display(2,ListDisp[2]);
tm1637.display(3,ListDisp[3]);
delay(300);
}
}
接続する
Waffleと4-Digit Displayを繋がなくてはいけないのですが、ソースを見た感じ「38」「39」というところに繋がなくてはいけなさそう。
しかしそんな番号のポートはない。
おそらく4-Digit Displayはデジタルなので、D5とD9しかない。
とりあえずD5に繋いでみる。
...何も表示されない。
次に、D9に繋いでみる。
...何も表示されない。
Wikiを見ると「D2/D3に繋げ」と書いてある。
ないし。2つって意味わかんないし。
いじってみる
あるのはD5とD9なので、とりあえずD9狙いでソース変更してみる。
# define CLK 9 // 39->9
# define DIO 10 // 38->10
※なんでDIOが8じゃダメで10だといいのかはわかっていない...
★回路図、マジ重要! →Waffleのgithubにある回路図
まとめ
これでWaffleからの表示手段が出来ました。