マイクセンサーを使ってArduinodeで音を検知!(KY-037)
本日はマイクを使って音を検知したいと思います!
初心者でも簡単に使いこなせるよう、マイクは部品から組み立てるのではなく、モジュールになっている物を使います!
そのためはんだごては使わず、ブレッドボードだけで完結しますので、是非、お試しください^^
①「部品」
・マイクセンサモジュール
電子工作ステーション 130円+送料(500円以上で送料無料)
楽天⇩
・ Arduino Uno
電子工作ステーション 1110円(送料無料)(互換ボード)
※UNO以外、Nanoとかでも大丈夫です。
・LED(なんでも可)
電子工作ステーション 500円以上で送料無料
(音取得時に反応を可視化する為に使用、シリアルモニターだけで確認する場合は無くても可)
・抵抗(100Ω)(LEDを使う場合のみ必要)
電子工作ステーショ 1本3円+送料(500円以上で無料)
秋月電子 100本100円+送料
・ジャンパーワイヤー(オス・オス)
電子工作ステーション 1セットで100円(送料500円以上で無料)
(ArduinoとLEDを繋ぐのに使用)
・ジャンパーワイヤー(オス・メス)
電子工作ステーション 1セットで100円(送料500円以上で無料)
(Arduinoとマイクを繋ぐために使用)
・ブレットボード(どんな形状でもOK)
電子工作ステーション 235円+送料(500円以上で無料)(400穴)
②「配線」
マイクモジュール | Arduino | LED |
A0 | A0 | |
G | GND | カソード(-) |
+ | 5V | |
D0 | 7 | |
8 | アノード(+) |
※LEDにはカソードorアノードのどちらかに抵抗100Ωを付けておくと安心です。
③「プログラミング」
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
// //Arduinoでマイク取得 const int led = 8; // LED点灯確認用 const int digitalPin = 7; // センサ D0出力接続先 const int analogPin = A0; // センサ A0出力接続先 void setup() { pinMode(led, OUTPUT); //13番ピンを出力指定 pinMode(digitalPin, INPUT); //7番ピンを入力指定 Serial.begin(9600); //シリアル通信のデータ転送レートを9600bpsで指定 } void loop() { int d_val; // デジタル用変数 float a_val; //アナログ用変数 // D0出力の制御 d_val = digitalRead(digitalPin); if(d_val == HIGH){ // D0出力がHIGH digitalWrite(led, HIGH); // 13番ピンHIGH出力(LチカON) } else if(d_val == LOW){ // D0出力がLOW digitalWrite(led, LOW); // 13番ピンLOW出力(LチカOFF) } //電源供給が5Vの場合はマイクセンサモジュールのつまみをいじり、2.5Vくらいを目安に合わせてください。 // a_val = analogRead(analogPin); //A0データの読み込み a_val = (float)analogRead(analogPin) / 1024.0f * 5.0f; //A0データを読み込み電圧に変換 Serial.println(a_val); // シリアルモニタに出力 delay(100); } |
④「結果」
まず電源を入れるとL1、L2両方ともLEDが発光しました。
マイクモジュールについてる摘み(3296)を反時計回りに10回ほど回したら、L2のみが消灯、
マイクの傍で声を出すとシリアルモニターの数値が変化しマイクモジュールのL2も光ったりしました!
※モノによってはデフォルト値が若干違うかもしれないので、上手くいかない場合はそれ以上に回してみてください。
今後はこれを応用し、声を録音とかできたら面白いですね!
難易度はかなり上がりますが(;^ω^)
以上、ご閲覧ありがとうございました!