[Nefry BTとGrove接続実験] 音センサ

音センサーモジュール

私が購入したGROVEスターターキットV3に入っていた音センサモジュールは、Sound Sensor V1.6というモジュールです。スイッチサイエンスさんの単体販売ページに掲載されているものと同じです。

黒い丸い部分がマイクで、その下にあるICはアンプです。

Grove音センサ(表)
Grove音センサ(裏)

音センサモジュールの動作

音センサモジュールはアナログモジュールです。音の大きさに応じて出力される電圧が変化します。

プログラム

analogRead( )関数を使って音センサーから読み込んだ値をシリアルモニタに表示するプログラムです。

// Nefry BT無印の場合: A2
// Nefry BT R2の場合: A1 (注:A0を使うときはA1を記載します。)
#define PIN A1

void setup() {
 pinMode(PIN, INPUT);
}

void loop() {
 Serial.println(analogRead(PIN));
 delay(100);
}

このプログラムを動作させると、このように数字列が表示されます。

シリアルモニタ出力例

数値が激しく変化していますね。音の情報なので変化速度や変化量が大きいためだと思われます。100ms周期でデータを取るのは遅すぎるようです。

Seeed社のWikiページに掲載されているプログラムは次のようになっています。

// test code for Grove - Sound Sensor
// loovee @ 2016-8-30

const int pinAdc = A0;

void setup()
{
 Serial.begin(115200);
 //Serial.println("Grove - Sound Sensor Test...");
}

void loop()
{
 long sum = 0;
 for(int i=0; i<32; i++)
 {
 sum += analogRead(pinAdc);
 }

sum >>= 5;

Serial.println(sum);
 delay(10);
}

32回測定してその平均を計測結果にしています。また、計測は10ms周期で行なっています。

これだけ短い周期で結果をシリアルモニタに出力すると、値がどんどん流れて行ってしまい、全体の傾向がどうなっているのかがわかりません。

シリアルプロッタを使うと、結果をわかりやすく表示できます。シリアルプロッタを開く手順は次の通りです。

  1. シリアルモニタが開いている場合は閉じます
  2. ツールメニューのシリアルプロッタを選択します。
ツルーメニューでシリアルプロッタを選択

シリアルプロッタには次のようなグラフが表示されます。

シリアルプロッタ表示例

諸元

名称Sound Sensor
音センサ
バージョンV1.6
Seeed社 Wikihttp://wiki.seeedstudio.com/Grove-Sound_Sensor/
スイッチサイエンス商品ページhttps://www.switch-science.com/catalog/816/
Nefry BT無印 動作ソケットA2
Nefry BT R2 動作ソケットA0(プログラム上はA1)

「Nefry BTとGroveモジュール接続実験」 トップページ

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください