【Arduino】 高感度音声センサモジュール

LESSON 041

      高感度音声センサモジュールで音を感知する

 
○ 今回は高感度音声センサモジュールについてを説明します。
   
○ マイクやスピーカーの原理は「フレミングの左手の法則」を利用しています。

  磁石が動くとコイルに電流が流れます。  これが、マイク

  コイルに電流が流れると磁石が動きます。 これが、スピーカー
 
  これを利用すると、マイクやスピーカーになります。
      
   
○ 高感度音声センサモジュール   KY-037 を使用します。
   モジュールにはデジタル/アナログ出力の2つの出力があります。
   AO:アナログ出力、マイク電圧信号のリアルタイム出力
   DO:音の強さが特定のしきい値に達すると、高レベルと低レベルの信号を出力します。
       しきい値感度はポテンショメータで調整します。
     
    

   
 
 

目 次

    • 構成部品
    • 配線図
    • スケッチ
    • 結果
    • まとめ
       
構成部品

Arduino​
USBケーブル​
高感度音声センサモジュール
ブレッドボード
ジャンパー線 

      
配線図  

    GPIO 9      ⇒ DO

      5V           ⇒  ✚
  GND         ⇒   GND
    GPIO A0 ⇒ AO
                        
     

スケッチ《 test033》  

   
int  sensoranalog  =  A0;
int  sensorD =  0; 
int  sensordigital= 9;
int  digitalD;
void  setup()
{
pinMode(sensordigital,INPUT);
Serial.begin(9600);
}
void  loop()
{ 
  sensorD =  analogRead(sensoranalog);
  Serial.print(" アナログ値 :  ");
  Serial.print(sensorD,  DEC);
  Serial.print(" デジタル値 :   ");
  digitalD=digitalRead(sensordigital); 
  if(digitalD==HIGH)
  {
  Serial.println("HIGH");
  }
  else
  {
  Serial.println("LOW");
  }
}

      


解説

  • void loop() 内
    アナログデータ
     sensorD = analogRead(sensoranalog);
     Serial.print(“ アナログ値 : “);
     Serial.print(sensorD, DEC);
          DEC 10進数

    デジタルデータ
     digitalD=digitalRead(sensordigital);
     if(digitalD==HIGH)
     {
     Serial.println(“HIGH”);
     }
     else
     {
     Serial.println(“LOW”);
     }
         

結果 

ポテンショメータを調整することで値やしきい値が変化します。
  
アナログ値は数値が変動します。
デジタル値がしきい値を越したらHIGH、違うならLOWになります。
    

     

     

まとめ

〇 今回はアナログ・デジタルの両方を出力しましたが、必要な方を選択して下さい。

○ ポテンショメータを調整することで必要な値が得られますが、ある程度音声が長くないと反応しません。手を叩いて「パン」と鳴らしてもほぼ反応しませんでした。
  (性能のいいセンサなら反応するかもしれませんが 私の感想です。)
         
○ Arduino を 学ぶ上で書籍やWebpageを参考に作っていますが、私なりに噛み砕いて書いているつもりですが、判らない点がありましたら連絡下さい。

目次