注:すべてのOSOYOO製品は、ARDUINOコンテンツと完全に互換性のある第三者ボードです。

コンテンツ

  1. はじめに
  2. 準備
  3. 音検出センサーについて
  4. 使用例

はじめに

音検出センサーは、マイクといくつかの処理回路を組み合わせた小さなボードで、異なる大きさの音を検出する能力を持っています。 このセンサーは、産業用から簡単な趣味や遊びまで、様々な用途に使用できます。

このレッスンでは、サウンドディテクタの接続と使用方法を説明します。回路がどのように動作するかを調べ、サウンドセンサーから最高の性能を引き出すための詳細を説明し、その後、サウンドセンサーの使い方を示すいくつかのプロジェクトを紹介します。

準備

ハードウエア

ソフトウェア

音検出センサーについて

概要

音検出センサーモジュールは、音に感度の高い静電容量型エレクトレットマイクロホンを内蔵しています。音波がエレクトレットマイクロホンの薄膜を振動させ、静電容量が変化することで、対応する変化電圧が発生し、周囲環境の音の強さを検出することができます。この変化は極めて弱いため、増幅する必要がある。ここではパワーアンプとしてLM393を使っています。感度はポテンショメーターで調整します。音のレベルが設定値を超えると、センサーモジュールのLEDが点灯し、出力がLowになります。

注意:このサウンドセンサーは、音の周囲があるかどうかを検出するために使用され、周波数やボリュームを認識することはできませんので、音信号を収集するためにモジュールを使用しないでください。

 音検出センサーのピンアウト

以下の画像と表は、コントロール、ピンアウト、および他の主要なコンポーネントの詳細です。

感度を参照する場合、まあ。つまり

項目
+ 5 V DC from your mainboard
G GND from your mainboard
D0 Connect to Digital Input Pin
A0 Connect to Analog Input Pin
Power LED Illuminates when power is applied
Sound Detect LED Illuminates when sound is detected
Potentiometer CW = More Sensitive
CCW = Less Sensitive

ポテンショメーターには4つのピンがあり、メインボードに接続する必要があります。一番上のピンはAOです。これはArduinのアナログ入力0(A0)に接続します。VCCは+5Vに接続し、最後のDOはモジュールのデジタル出力で、Arduinのデジタルピン2に接続します。

音センサーの上部には、音センサーの感度とアナログ出力を調整するために回すことができる小さなマイナスネジがあります。音センサーのキャリブレーションを行うには、ノイズを発生させながらネジを回して、音センサーの感度とアナログ出力を調整します。

サウンドディテクターの用途

このデバイスは、音が閾値を超えたかどうかを測定するものなので、基本的には何をしたいのかを決めることになる。 どういうことかというと、静かなときに何かをすることもできるし、大きな音のときに何かをすることもできる。 例えば

デジタル・ディテクト・サウンド・センシティブ・ライト

この例では、音検出センサーモジュールをArduinのデジタルピンに接続し、センサーが音を検出するたびにLEDが点灯するように、オンボードLEDを制御します。

注: 音検出センサーの感度は調整可能です。

接続

ここでは、D2をデジタルピンとして使用し、音センサーと接続します:

コードプログラム

上記の操作が完了したら、USBケーブルを使ってボードをコンピュータに接続します。Arduino IDEを開き、プロジェクトに対応するボードタイプとポートタイプを選択します。次のスケッチをボードにロードします。

int digit_sensor = 2; // select the input pin for the potentiometer int ledPin = 13; // select the pin for the LED int digitValue ; //  value from the digit input pin void setup () { pinMode (ledPin, OUTPUT); pinMode (digit_sensor, INPUT); Serial.begin (9600); } void loop () { digitValue=digitalRead(digit_sensor); if (digitValue==LOW) { digitalWrite (ledPin, HIGH); delay(50); } else { digitalWrite (ledPin, LOW); delay(10); } }

実行結果

アップロードが終了してから数秒後、センサーの横で拍手をしたり、何かを叩いたりして、音量がある値に達すると、Osoyoo Unoボードの13番ピンに付いているLEDが点灯します。

注:LEDが点灯しない、またはLEDが常に明るい場合は、ポテンショメータを回してセンサーの感度を変更する必要があります。

音に反応するアナログライトの検出

この例では、アナログピンを使って音を検出する方法を示します。マイクセンサーは周囲の音の強さを検知し、音の強さがある閾値以上であればLEDを点灯させます。

接続

ここではA0をアナログピンとして、音センサーと接続します:

コードプログラム

上記の操作が完了したら、USBケーブルを使ってボードとコンピュータを接続します。Arduino IDEを開き、プロジェクトに対応するボードタイプとポートタイプを選択します。次のスケッチをボードにロードします。

const int ledPin = 13; //pin 13 built-in led const int soundPin = A0; //sound sensor attach to A0 int threshold = 600; //Set minimum threshold for LED lit void setup() { pinMode(ledPin,OUTPUT);//set pin13 as OUTPUT Serial.begin(9600); //initialize serial } void loop() { int value = analogRead(soundPin);//read the value of A0 Serial.println(value);//print the value if(value > threshold) //if the value is greater than 600 { digitalWrite(ledPin,HIGH);//turn on the led delay(200);//delay 200ms } else { digitalWrite(ledPin,LOW);//turn off the led } delay(1000); }
これが、音とともにLEDを点滅させるコードだ。しきい値は、LEDを点滅させるのに十分な値に設定する必要がある。

実行結果

このコードをコピーしてアップロードすると、音量がある値に達すると、Unoボードの13番ピンに付いているLEDが点灯する。音があまり感じられない場合は、しきい値を変更したり、ポテンショメータを回してセンサーの感度を変更してみてください。

Tools > Serial Monitorでシリアルモニターを開くか、ソフトウェアウィンドウの虫眼鏡ボタンを押します。

出力されるのは、サウンドセンサーモジュールからのアナログ値とデジタル値です。ノイズが発生するとアナログ値が急上昇し、静かになると安定するはずです。今、コードの中に “int threshold = 600; “という行がありますが、これは、あなたの周囲が静かなときにシリアルモニターから得られる値に非常に近いが、それよりも高い値に変更する必要があります。例えば、アナログ値が500の場合、thresholdは503か505に変更する必要があります。音が発生すると、アナログ値が上昇し、スレッショルド値を上回ります。そうするとLEDが点灯します。再び静かになると、アナログ値は503に戻り、LEDは再び暗くなります。