パッシブブザーモジュール¶
概要¶
パッシブブザーは、電気信号がかかると音を発生する装置です。内部に発振器を持っていないため「パッシブ」と呼ばれます。音を発生させるためには、Arduinoのようなマイクロコントローラからの外部信号が必要です。パッシブブザーモジュールは、パッシブブザーとそれをArduinoで簡単に使用できるようにする追加の回路を含む小型の電子部品です。
原理¶
パッシブブザーモジュールの動作原理は、圧電効果に基づいています。電気信号がブザーにかかると、ブザー内部の圧電結晶が特定の周波数で振動します。この振動が我々が聞くことのできる音波を発生させます。ブザーによって発生する音の周波数は、かかる電気信号の周波数に依存します。信号の周波数を変更することで、ブザーによって発生する音のピッチを変更できます。
使い方¶
使用する電子部品
Arduino Uno R4またはR3ボード * 1
パッシブブザーモジュール * 1
ジャンパーワイヤ
回路の組み立て
コード¶
コードの説明¶
pitchesライブラリをインクルード:
このライブラリは、各音符の周波数値を提供し、コード内で音楽記号を使えるようにします。
#include "pitches.h"
定数と配列の定義:
buzzerPin
はブザーが接続されているArduinoのデジタルピンです。melody[]
は、演奏される音符の配列です。noteDurations[]
は、メロディ内の各音符の長さを格納する配列です。
const int buzzerPin = 8; int melody[] = { NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4 }; int noteDurations[] = { 4, 8, 8, 4, 4, 4, 4, 4 };
メロディの演奏:
for
ループは、メロディの各音符を反復処理します。tone()
関数は、指定された長さの音符をブザーで演奏します。音符間には遅延が追加され、それぞれを区別します。
noTone()
関数は音を停止します。
void setup() { for (int thisNote = 0; thisNote < 8; thisNote++) { int noteDuration = 1000 / noteDurations[thisNote]; tone(buzzerPin, melody[thisNote], noteDuration); int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); noTone(buzzerPin); } }
空のループ関数: メロディはsetup()で一度だけ演奏されるため、loop()関数内にはコードがありません。
追加のアイデア¶
メロディを変更:
melody[]
とnoteDurations[]
配列内の音符と長さを変更して、独自の曲を作成できます。興味があれば、GitHubにArduinoで様々な曲を演奏するコードを提供するリポジトリ(robsoncouto/arduino-songs )もあります。ボタンを追加:プッシュボタンを回路に組み込み、ボタンが押されたときにメロディを演奏するようにコードを変更します。
さらに多くのプロジェクト¶
fun_doorbell