以前のリビジョンの文書です
ライントレーサーに載せてあるスピーカーを使っていきたいと思います。
ここまで来た人はタイマー割り込み(CMT)が理解できていますよね?
それではやっていきます。
音ってなんでしょう。皆さんなら波動であることは知っていますよね?スピーカーは電気的な波を受けることによって音波に変換してくれます
(構造は面白いので時間があったら調べてみるといいかも)
電気的な波を起こすには一定の時間ON,OFFを繰り返す必要があります。
一定の時間ということでCMT割り込みを使っていきます。
皆さんは1/1000秒(1ms)に一回割り込んでますね?
しかし音を鳴らすのにはもっと速く割り込んでもらわないといけません。
そこで25倍の速さ、1/25000秒(40μs)で割り込んでみてください。
LEDが1秒毎にON,OFFするはずのプログラムが
嫌になるような高速でチカチカするようになるはずです。
できましたか?ヒント;initCMTの割り込み周期を変えよう
音の周波数の基準値というのは440Hz(ふつうのラ)だそうです。
楽器を習ったことのある人は知っているかも
まず、割り込みの関数内で1ずつ加算される変数sound_countを作ってください。
次に440Hzの電気的な波、つまり440回ON/OFFの波を送ってみてください。
ヒント;(ONまたはOFFの時間)=(周期/2) 周期=(1/周波数)
出ました?といっても絶対音感の持ち主じゃなきゃわからないですよね?スマホのピアノアプリとかをダウンロードして、ラの音(これはわかるよね)を出してみてください。