littleBitsのArduinoモジュールで入出力値を連携してLED点滅間隔を調整してみた
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を!
