[ESP32]電子ブザー with Arduino IDE

ESP32

[ESP32]電子ブザー with Arduino IDE

はじめに

電子ブザーとは、内部にサウンダと発信回路があり直流電流を流すことで音が鳴ります。
同じようなものに圧電ブザーもあります。
圧電ブザー(ピエゾブザー)とは、内部に電圧で伸縮する圧電体(ピエゾ)が内蔵されており、電圧の向きを交互に変化させることにより音が鳴ります。

電子ブザーは、電池をつなぐだけで音が鳴るが、圧電ブザーは鳴らない。
電子ブザーは、+と-があるが、圧電ブザーはない。

・圧電ブザーは、パルス出力の周波数を変化することにより音階を自由に変化させることができる。
 電子ブザーでも、パルス出力である程度は音階を変化させることができるが、音が汚い。

開発環境

OS : Windows 11 Pro
ESP32:ESP-WROOM-32
統合開発環境 : Arduino IDE 2.3.2
Arduino core for the ESP32:1.0.6
使用ライブラリ:なし

使用パーツ

ESP32開発ボード(38Pin)

ESP32 Development Board ESP-32S NodeMCU-32S MICRO/TYPE-C Wireless Module WiFi+Bluetooth ESP-WROOM-32 IOT Expansion Board - AliExpress 502
Smarter Shopping, Better Living! Aliexpress.com

電子工作ステーション https://electronicwork.shop/items/64134541d91711003035a5a6

電子ブザー

作業内容

配線図

電子ブザー とは GPIO 23 を接続します。

電子ブザーESP32開発ボード(38Pin)
REDGPIO 23
BLACKGND

ライブラリインストール

なし。

スケッチ作成

電子ブザーを鳴らすスケッチを作成します。

#define BUZZER_PIN 23

void setup()
{
  pinMode(BUZZER_PIN,OUTPUT);  

  // 1秒間継続音を鳴らす
  digitalWrite(BUZZER_PIN, HIGH);
  delay(1000);
  digitalWrite(BUZZER_PIN, LOW);
  delay(1000); 

  // 10mS間隔の断続音を鳴らす
  for (int i=0; i<50; i++) {
    digitalWrite(BUZZER_PIN,HIGH);
    delay(10);
    digitalWrite(BUZZER_PIN,LOW);
    delay(10);
  }
}

void loop()
{

}
コード説明
#define BUZZER_PIN 23

👈電子ブザーと接続するピン番号を23に設定。

  pinMode(BUZZER_PIN,OUTPUT);  

👈ピンモードを OUTPUT に設定。

  // 1秒間継続音を鳴らす
  digitalWrite(BUZZER_PIN, HIGH);
  delay(1000);
  digitalWrite(BUZZER_PIN, LOW);
  delay(1000); 

👈1秒 BUZZER_PIN を HIGH に設定した後、1間 LOW に設定。

  // 10mS間隔の断続音を鳴らす
  for (int i=0; i<50; i++) {
    digitalWrite(BUZZER_PIN,HIGH);
    delay(10);
    digitalWrite(BUZZER_PIN,LOW);
    delay(10);
  }

👈10ミリ秒 BUZZER_PIN を HIGH に設定した後、10ミリ秒 LOW に設定を50回繰り返す。
(1秒間ブザーが鳴る)

動作確認

動作させてみると、ピーと1秒鳴った後にビーと1秒鳴ります。
1度しか鳴らないようにしているため、再度鳴らす場合は RESET ボタンを押します。

おわりに

単純に音を鳴らすだけなら簡単ですね。
圧電ブザーなら音階などもコントロールして単音の音楽を鳴らすこともできます。
昔の着メロのような。

コメント

タイトルとURLをコピーしました