質問: ■Arduinoでのコンデンサマイク制御について コンデンサマイクを使った電子工作の勉強をしています。その際のプログラムの書き方がわからなくなったため教えていただきたいです。
回答: プログラムの前に、ちょっと疑問が ・回路図でモーターの上に抵抗があるけどそこに330オーム付けてモーターが回るのか? ・マイクアンプからの出力は2.5Vを中心とした振幅になると思うのだけども、 最大に振幅(0-5V)している時でさえ、ADC取得タイミング次第で2.5V付近が続くこともあり得る訳で、それをそのままモーター駆動と結び付けていいのか? 簡単にスケッチを書けば int sikii=100;//ADC閾値 MAX512 void setup() { pinMode(11,OUTPUT); pinMode(12,OUTPUT); } void loop() { int adc=abs(analogRead(A0)-512); digitalWrite(11,adc>sikii); digitalWrite(12,adc>sikii); } みたいな感じだけど、実際には歯抜け状態の出力になるでしょう。 歯抜けを防ぐようにするなら、ちょっと細工して、 void loop() { static byte count=0; int adc=abs(analogRead(A0)-512); if(adc>sikii)count=5;//5回有効 digitalWrite(11,count); digitalWrite(12,count); if(count)count--; } みたいな感じかな。