今笑いましたね。
表示しない!なんで!だったので、ちょっとその仁義なき戦いを記録しておきます。
Grove – 4-Digit Display
まずは、seeed wikiを確認しましょう。
概要を読むとわかりますが、デジタルポートを使い、2デジタルピンを使うことがわかります。
デジタルポートは、D38とD20の2つあるので、どちらかに差し込みます。
サンプルコードを動かそう
上記のwikiの下にサンプルコードがあります。
これを参考に書き換えます。やらなければいけないことは3つ
- 必要なライブラリをインクルードする
- setupの部分にWioLTEのセットアップを加える
- ピン定義を自分の差し込んだポートと合わせること
必要なライブラリ
ライブラリをインクルードで、.zip形式のライブラリをインクルードできるので、zip形式のままインクルードします
setupの部分にWioLTEのセットアップを加える
初期化と電源供給!
SerialUSB.println("### Wio Initialize."); Wio.Init();
SerialUSB.println(“### Power supply ON.”); Wio.PowerSupplyGrove(true);
D38以外のGroveポートを使用する場合は電源供給必須とのことです!
あ、D20だと Wio.GrovePowerSupply(true) をsetup() で叩かないと電源が供給されませんよ。https://t.co/6Nm4JAFzq4
D38以外のGroveポートを使用する場合は必須です。
— こにゃ (@kuroneko_ko2a) December 19, 2017
ピン定義を自分の差し込んだポートと合わせること
私は、D20に差し込んだので、CLKとDIOの定義は以下のとおり。
#define CLK (WIOLTE_D20) #define DIO (WIOLTE_D19)
光る気配がない
さて!光らせちゃうよ!と意気込んだものの、数字が表示されませぬ。
コードをなんども見直します。おかしいところはない。。
「信号きてますかー?もしもーし?」
とか、しょうもないことをやっていたので、シャチョーが見てくれました。
ハードウェアのデバッグってどうするんですかね・・・
どうも信号がきていない模様。。
ちなみにテストコードで信号を送ってみても、信号が出ていませんでした。
if (out == LOW) { out = HIGH; } else { out = LOW; } digitalWrite(CLK, out);
pinMode(CLK, OUTPUT); pinMode(DIO, OUTPUT);
温度湿度を4digitディスプレイ表示
せっかくなので、SoracomのWioLTEハンズオンでやった、温度湿度計測との合わせ技で、今回はSoracomに送信せずに、手元の4digit Displayに表示してみました。
前2桁が温度で、後ろ2桁が湿度です。
簡単見える化。