今笑いましたね。
表示しない!なんで!だったので、ちょっとその仁義なき戦いを記録しておきます。
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に差し込んだので、CLKとDIOの定義は以下のとおり。
#define CLK (WIOLTE_D20) #define DIO (WIOLTE_D19)
光る気配がない
さて!光らせちゃうよ!と意気込んだものの、数字が表示されませぬ。
コードをなんども見直します。おかしいところはない。。
「信号きてますかー?もしもーし?」
とか、しょうもないことをやっていたので、シャチョーが見てくれました。
ハードウェアのデバッグってどうするんですかね・・・
どうも信号がきていない模様。。
ちなみにテストコードで信号を送ってみても、信号が出ていませんでした。
if (out == LOW) { out = HIGH; } else { out = LOW; } digitalWrite(CLK, out);
もしやと思い、setupにpinModeの設定を追加しました。
pinMode(CLK, OUTPUT); pinMode(DIO, OUTPUT);
動いたああ
テストコードの信号が綺麗に受け取れました。
Wio.PowerSupplyGroveをした後に、pinModeの設定をする必要があったようです。
温度湿度を4digitディスプレイ表示
せっかくなので、SoracomのWioLTEハンズオンでやった、温度湿度計測との合わせ技で、今回はSoracomに送信せずに、手元の4digit Displayに表示してみました。
前2桁が温度で、後ろ2桁が湿度です。
簡単見える化。
息を吹きかけたり、握ったりして、温度と湿度を変化するか検証・・・
チョチョイのチョイだろう、と思っていると、案外いろんな罠が控えていたりします。。。
そういうのを越えるのも経験。やってみて、学ぶこと大事。。
Enjoy!