HaLake Magazine

コワーキングスペースHaLakeの技術情報発信サイト!IoT,AR,VRなど最新技術情報をお届け!

音センサとサーボモータを連動させる<Arduino nano>

最近ESP32についての記事が続いていたので今回はArduino nanoを使って音を感知してサーボモータを動かしていきたいと思います。


目次

  1. 準備するもの
  2. ハードウェア
  3. ソフトウェア
  4. 動作確認
  5. まとめ

準備するもの

ハードウェア

f:id:mischief_cat:20200308105244p:plain
ハードウェア1
画像の通りに配線すれば動くと思います。
また、サーボモータ用に乾電池は4本画像で用意されていますがサーボモータの動作電圧は3.3~5.0vなので3~4本(1本1.5v)乾電池があれば動くと思います。 2本だと電圧がギリギリ足りないと思うので3本は用意しておくと良い。
* 注意:サーボモータ用に別で電源(今回は乾電池)を確保してください。Arduino nanoから給電すると誤動作します。
配線する時は必ずサーボモータのGNDとArduino nanoのGND、電源のGNDはつながるように配線してください。

ソフトウェア

#include <Arduino.h>
#include <Servo.h>
Servo servo;
void setup() {
  Serial.begin(115200);
  pinMode(0,INPUT);
  servo.attach(3);
  servo.write(0);
}

int i = 0;
void loop() {
  if(analogRead(0) >= 600){
    i += 20;
    servo.write(i);
    delay(100);
  }
  if(i == 180){
    servo.write(0);
    delay(500);
    i = 0;
  }
}

わからない方は前の記事を参考に書き込んでください。
プロジェクト作成時のボード情報の場所をArduino Nano ATmega328に設定してください。
* 注意:Arduino Nano ATmega328(New Bootloader)を選択してしまうとうまく動作しないことがあるので前述の方で設定してください。

動作確認

音を出したときに20度回転するように設定しているので少しずつ回転するように動いたら成功です。

f:id:mischief_cat:20200308133117j:plain
動作確認2
もしうまく動作しない場合は音センサについている可変抵抗を回転させて調節することをお勧めします。
LEDが光ったり消えたりすると思うので無音状態で光が消えるところと点灯するところのギリギリで光が点灯し続ける場所が最適です。
環境によって回す方向が違う場合があるのでご自分で回して確かめてください。

まとめ

Arduino nanoで音センサとサーボモータを組み合わせて音を感知しそれをサーボモータで確認するものを作ってみました。 注意書きにもある通りサーボモータの電源をarduinoと音センサで共有してしまうとノイズが入ってしまうことで躓き解明に時間をかけてしまったことがありました。またこの音センサは音を感知するだけで強弱は判定できないというところを注意してください。