MIDI ドラムトリガーの製作

トップページへ戻る
執筆中 @@)
IMG_1270_W640.JPG

IMG_1265-w320.jpg バス、スネア、タム、シンバルなど7つのパッドを受ける。
CPU ATmega328PはADコンバータの入力が6つなので、
バスドラムのみコンパレータ入力AN1で受けることにする。


しかし、、ここで問題が。。。
piezo_voltage.png 叩く強さでベロシティーを変化させたい。

圧電素子をたたくと、左記の波形のような電圧が発生する。
これが時間的に変化する。
今回使おうとしているAtmega328PのADコンバーターは、1チャンネルあたり
 1/200KHz x26 =約13μSの変換時間がかかる。
6チャネルで約100μSくらいは必要かなっと!?

2回をこれをおこなってると、ピーク値を取りそこなうのは間違いない。@@)



edrum.PNG 諸先輩方は、ここでピークホールド回路を使っている。
そうすれば、先の波形の青点線のピーク値をゆっくりと変換すればよい。
パッドには、圧電素子を使って、ピークホールド回路でコンデンサC1にピーク値をホールドする。
ツェナーダイオードD2は、CPUの電源電圧5Vより下の4.7〜4.9Vのものを使用した。
これがないと強くたたいたときに20V以上の電圧が発生してしまう。

さらに、ホールドした電荷をディスチャージするためにCPU側で以下の工夫を入れた。
ADC_pin.png CPUのADコンバータの入力端子に工夫を入れている。
通常は赤のラインでAD入力を行う。
AD変換値が閾値を超えたときに
1ms待ってから、2回目のAD変換を行って、1,2回目の値の比較をして大きな値を使用する。

サンプリング後に端子を1瞬、Low出力に切り替えて先の回路のC1の電荷を抜く。このようにしてピークホールドした値をリセットして、また新たな入力をピークホールドすることにした。


パッドにも工夫を入れたんです。。

後日、、、