先日だいたい分かったので、今日は「太鼓を叩くと LED が光る仕組み」を作ってみる。
今までのまとめ:
ここからどうやって信号を取り出そうかとても悩んだのですが、半田付けが簡単なように結局センサ入力をそのまま引っ張る事にしました。ここで分からなかったのは、そもそもセンサからの入力が何も無い時になぜ 3.3V になるかという事です。センサは圧力によって抵抗が変わるだけの仕組みなので、自分で 3.3V を発生するわけがない。センサを外した状態でテスタを当ててみて、入力が無い時はシュミットトリガ U74HC14L が電源電圧をかける事が分かりました。ちょっとググっただけでは U74HC14L の中身が分からなかったので何故こうなっているかは分からずじまいでしたが、気にしないでまず進む事にしました。
次に、いよいよ Arduino に繋ぎ LED を光らせてみます。Arduino には都合が良く 3.3V 出力がありますので、これをタタコンの電源として使います。センサー入力はデジタル D2 ピンに繋ぎます。Arduino が 5V なのに対してタタコンは 3.3V なので多少違いますが、まあデジタル入力の許容範囲みたいです。
このように繋いでプログラムを走らせます。プログラムは Button サンプルとほとんど同じです。HIGH と LOW が逆転している所と、LED を光らせた後 30ms 程何もしない所が違います。
const int sensorPin = 2; // Pressure sensor const int ledPin = 13; // LED pin const int delayTime = 30; void setup() { pinMode(ledPin, OUTPUT); // initialize the LED pin as an output: pinMode(sensorPin, INPUT); // initialize the sensor pin as an input: } void loop(){ int sensorState = digitalRead(sensorPin); // read the state of the sensor value: if (sensorState == HIGH) { digitalWrite(ledPin, LOW); // If the sensorState is HIGH, Nothing happens. } else { digitalWrite(ledPin, HIGH); // If the sensorState is LOW, Taiko is triggered. delay(delayTime); } }
太鼓を叩くと LED が光った!
ちなみに、一応注意深く作業したのでこの状態で Wii コントローラに繋いで「太鼓の達人」ゲームで遊ぶ事も出来ます。壊したくなかったので作業前の調査に時間を食ってしまいましたが、工作自体は至って簡単でした。