■Arduinoでのコンデンサマイク制御について コンデンサマイクを使った電子工作の勉強をしています。その際のプログラムの書き方がわからなくなったため教えていただきたいです。

■Arduinoでのコンデンサマイク制御について コンデンサマイクを使った電子工作の勉強をしています。その際のプログラムの書き方がわからなくなったため教えていただきたいです。 作品のシステムは 入力:コンデンサマイク 計算:「コンデンサマイク」の値が一定値を越えると電圧を上げる 出力:「モーター」と「LED」の起動 EAGLEでの回路図は以下の通りです。Aruduino シールドを使っています。 よろしくお願いします。

画像

C言語関連57閲覧

ベストアンサー

0

プログラムの前に、ちょっと疑問が ・回路図でモーターの上に抵抗があるけどそこに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--; } みたいな感じかな。

ThanksImg質問者からのお礼コメント

回答誠にありがとうございます。指摘してくださったことが原因でたしかにモーターは動きませんでした。大変勉強になりました。本当にありがとうございました!

お礼日時:2019/1/22 0:30