「Arduinoをはじめよう」ではじめよう(4)

第6章をやってみました。ここまでやってきたことを組み合わせて、3色のLEDを混ぜたランプをつくるものです。
PCでProcessingを使ってWebから情報を取ってきて、それを元にシリアルでArduinoに色を伝えるという仕組みです。
ランプになってませんが、こんな感じになりました。

これでひと通り読み終わりました。
巻末に付いているリファレンスをざっと読んでいて、tone関数attachInterrupt関数が気になりました。エントリーキットに圧電スピーカーも付いていたので、音を出してみることにしました。ソースはこちら

tone関数は、指定した周波数の矩形波を出す関数です。1行書くだけで、音が出ました!
tone(SPEAKER, scale[i]);

attachInterrupt関数は、割り込みの関数です。タクトスイッチで音を止めたり出したりするのを割り込みでやってみました。
attachInterrupt(SWITCH, stop, RISING);
と、SWITCHで指定したピンがLOW -> HIGHの場合にstop関数を呼び出すようにしました。4章ででていたバウンシングなのか、連続して割り込みが出るケースが結構ありました。delayを挟んだりしてみたのですが、うまく改善できず。。。。こういうのはループの中でやるべきなのかな?

実際に動かしてみて音が出たところです。

コメント

Amazon ad