###前提・実現したいこと
Arduino Nanoとデジタルシリコンマイクによる音声入力をしたいと思っています。というのもかつてコンデンサマイクを使ったところ精度が低く、デジタルシリコンマイクは精度・感度が高いと評判で使ってみようと思った次第です。
今手元にあるデジタルマイクは以下の2つです。
http://akizukidenshi.com/catalog/g/gM-04330/
http://akizukidenshi.com/catalog/g/gK-06864/
###発生している問題・エラーメッセージ
今のところ、この(https://teratail.com/questions/98219)サイトを参考に、arduinoとレベル変換モジュール、デジタルマイクを配線し以下のプログラムを書き込みました。
しかしながら、Serial.println(count); で帰ってくる値は一定の値で、マイクに音を入力しても数値が変動しません。
###該当のソースコード
#define kOutClock 5 #define kInSignal 4 void setup() { Serial.begin(115200); pinMode(kOutClock, OUTPUT); pinMode(kInSignal, INPUT); } const int kMaxLoop = 100; const int kMaxDAC = 4095; const int kMaxRate = 2000 / kMaxLoop; const int kMaxOffset = kMaxDAC / 2; const int kOutLoop = 10000 / kMaxLoop; long a, b; void loop() { while (1) { for (int i = 0; i < kOutLoop; i++) { int count = 0; for (int l = 0; l < kMaxLoop; l++) { digitalWrite(kOutClock, LOW); a++; b++; if (digitalRead(kInSignal) == HIGH) { count++; } else { count--; } if (l < kMaxLoop - 1) { digitalWrite(kOutClock, HIGH); digitalWrite(kOutClock, HIGH); } } count = count * kMaxRate + kMaxOffset; Serial.println(count); } } }
###聞きたいこと
これまでコンデンザマイクのようなアナログしか使ったことがなかったので、こんなに難易度が違うものかと困惑しています。
自分自身がデジタルシリコンマイクについて知識が不足していることも有りますが、このマイクをarduinoで読み取るための、基本的なプログラムの構成はどのようなものでしょうか?
(例えば超音波センサーはtrigから超音波を発し、echoでそれを読み取るのようなプログラムの流れ、が知りたいです。)
最終的には音の大きさによってpwmを変化させようと思っていますが、まずはhigh,lowが読み取れることが目標です。
大変ご迷惑をおかけしますが、どうか、ご教授いただければと思います。よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。