[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)
電子工作ステーション https://electronicwork.shop/items/64134541d91711003035a5a6
電子ブザー
作業内容
配線図
電子ブザー とは GPIO 23 を接続します。
電子ブザー | ESP32開発ボード(38Pin) |
RED | GPIO 23 |
BLACK | GND |
ライブラリインストール
なし。
スケッチ作成
電子ブザーを鳴らすスケッチを作成します。
#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 ボタンを押します。
おわりに
単純に音を鳴らすだけなら簡単ですね。
圧電ブザーなら音階などもコントロールして単音の音楽を鳴らすこともできます。
昔の着メロのような。
コメント