第6回 圧電ブザーで音を鳴らしてみよう

    圧電ブザーで音を鳴らしてみよう


    圧電ブザー

    圧電ブザーという部品を使用すると、電圧を加えることで振動がおきて音波が発生し、音を鳴らすことができます。 以下の流れで学習していきます。 1) fritzingを使用して、配線図を作成 2) 配線図を見て、Arduinoとブレッドボードを配線 3) プログラムの作成 4) コンパイルと書き込みの実行 ピアノのドレミファソラシドを奏でるプログラムを作成し、音を鳴らしてみましょう。

    準備するもの


    第6回で事前準備するものを紹介します。

    項目名 個数
    Arduino本体 1個 Arduino本体
    ブレッドボード 1個 ブレッドボード
    圧電ブザー 1個 LED
    ジャンパーワイヤー 2本 ジャンパーワイヤー

    fritzingを使用して、配線図を作成


     fritzingを使用して、配線図を作成

    fritzingを使用して、圧電ブザーの配線図を作成します。 1) 圧電ブザーの黒い線(-)をArduinoのGNDピンに接続 2) 圧電ブザーの赤い線(+)をArduinoの12番ピンに接続 今回のArduino本体とブレッドボードの接続は、これだけでOKなので、すごく簡単にできます。 下記のボタンをクリックすると、fritzingを使った圧電ブザーの配線図の作成動画を確認できます。 圧電ブザーの配線図の作成

    配線図を見て、Arduinoとブレッドボードを配線


    Arduinoとブレッドボードを配線

    作成した配線図を見ながら、実際に配線します。 1) ブレッドボードに圧電スピーカーを挿し込みます。 2) ブレッドボードに圧電スピーカーのマイナス側と、ArduinoのGNDピン(-)を配線で接続します。 3) ブレッドボードに圧電スピーカーのプラス側と、Arduinoの12番ピン(+)を配線で接続します。 ※ 圧電スピーカーの配線を接続する前に、一度裏側を見て、プラス(+)、マイナス(-)がどちら側なのか確認しましょう。

    使用する関数の紹介


    tone 関数

    書式) void tone(byte pin, unsigned int frequency) 説明) 圧電ブザーを鳴らすための関数です。pinは出力に使用するピンを設定し、frequencyで音の高さ(周波数)を設定します。

    noTone 関数

    書式) void noTone(byte pin) 説明) 音を止めます。

    プログラムの作成


    プログラム作成

    tone関数を使用して、ピアノのドレミファソラシドを奏でるプログラムの作成をしていきます。 1) Arduino IDEを起動します。 2) ファイル → 名前を付けて保存をクリックして、今回は、pianoと入力しファイルを保存します。 下記のボタンをクリックして、プログラムの作成動画を見ながら作成してみましょう。

    プログラムの作成

    プログラムの解説


    プログラム解説

    1行目では、今回する使用するピンをpianoPinという変数名で定義を行っています。 3行目~4行目のsetup(){}については、今回は使用しないので何も書きません。 setup(){}には、動かした時に1回だけ実行したい処理を記述します。 例としては、出力ピンの設定や、シリアル通信の初期化などがあります。 7行目~22行目までは、tone関数を使用して圧電ブザーから音を出す処理になります。 ドレミファソラシドの音を1秒間隔で鳴らすようにしています。 tone関数の第1引数には、圧電ブザーを接続しているピン番号を、第2引数には、音階を設定します。 音階の詳細については、次のページで確認してみて下さい。 23行目~24行目では、noTone関数を使用して音を止めています。 noTone関数の後に、delay関数を記述することにより、指定した秒数の間音が止まります。

    音階と周波数


       の部分が今回使用した周波数 ・ 周波数を変更することにより音を変えることができる

    音階 ド# レ# ファ ファ# ソ# ラ#
    周波数 131 139 147 156 165 175 185 196 208 110 117 123
    262 277 294 311 330 349 370 392 415 220 233 247
    523 554 587 622 659 698 740 784 83 440 466 494

    音階は、音を高低の順番に並べたものであり、音の高低は周波数で表すことができます。 表の黄色の部分で、「ドレミファソラシド」のように、順番に音が高くなるにつれて周波数が上がっていきます。 また、音は周波数が半分になると1オクターブ低くなり、周波数が倍になると1オクターブ高くなります。 音階の「ド」について見てみると、131、262、523と低い音から、1オクターブずつ高い「ド」になっていることが分かります。

    プログラムのコンパイルと書き込み


    プログラム解説

    プログラムの作成ができたら、コンパイルを行い、Arduinoへの書き込み処理を行います。 1) コンパイルを実行 → コンパイルアイコン をクリックします 2) アップロードを実行 → アップロードアイコン をクリックします 下記のボタンをクリックすると、プログラムのコンパイルと書き込み動画を見て確認できます。 プログラムのコンパイルと書き込み

    動作確認


    ドレミファソラシドを奏でることができれば成功です。 周波数を変えると、音を変化させることができるので、自分の好きな音楽なども作成することが可能です。 また、圧電ブザーは振動センサーとしても活用することができ、他にも使い道があります。 ピアノのプログラムを確認しておきましょう。

    #define pianoPin 12 void setup() { } void loop() { tone(pianoPin, 262); delay(1000); tone(pianoPin, 294); delay(1000); tone(pianoPin, 330); delay(1000); tone(pianoPin, 349); delay(1000); tone(pianoPin, 392); delay(1000); tone(pianoPin, 440); delay(1000); tone(pianoPin, 494); delay(1000); tone(pianoPin, 523); delay(1000); noTone(pianoPin); delay(1000); }

    LEDを光らせたり、圧電ブザーで音を鳴らしたりしました。 次はモーターを使用してモーターを回してみましょう。

    >> 第7回 モーターを回してみよう