littleBitsのArduinoモジュールで入出力値を連携してLED点滅間隔を調整してみたメモです。
- littleBitsのArduinoモジュールで入力値を取得してみる | 1ft-seabass.jp.MEMO
- littleBitsのArduinoモジュールのBlinkサンプルで変なハマり方をしたものの解決した話 | 1ft-seabass.jp.MEMO
すでに入力と出力それぞれは出来上がっているので、組み合わせて連携してみます。
0-1023という値変動をどんな風に使うか
ひとまず値を加工せずになるべくシンプルに0-1023という値変動を使えないかというところで、LEDの点滅タイミングをミリ秒(1000ミリ秒で1秒)で指定してみることにしました。
以下の写真の通り、左右レバーで調節するとLEDの点滅が変わるようにしています。
ただし、例えば50という値とした場合、なんと0.05秒。こんな高速点滅だとかなり視認しにくいので、100ミリ秒は加えます。
Arduinoコード
Arduinoのコードは以下のとおりです。
int led = 5; void setup() { Serial.begin(9600); // pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { // A0から取得 レバーから0-1023の値が来る int sensorValue = analogRead(A0); // Serial.println(sensorValue); // 計測間隔まで影響をうけるのでいずれ直す // あまりにも短いと見えづらいので100ミリ秒をチョイ足し sensorValue += 100; // 点滅 digitalWrite(led, HIGH); delay(sensorValue); digitalWrite(led, LOW); delay(sensorValue); }
実際に動く動画
実際に動く動画はこちらです。いい感じに点滅量が変わります。
実はこの動画の公開方法で散々悩んだのは秘密。
おわりに
いかがでしたでしょうか。
基本的な入出力が出来まして、入力側を人感センサーなど様々なキッカケ(センサー)に変えてみたり、出力側をサーボやブザーなどに変えてみるのも、使った感じが変わってきそうです!
引き続き、いろいろと実験を進めていきます。
それでは、よきArduino & littleBits Lifeを!