圧電ブザーという部品を使用すると、電圧を加えることで振動がおきて音波が発生し、音を鳴らすことができます。 以下の流れで学習していきます。 1) fritzingを使用して、配線図を作成 2) 配線図を見て、Arduinoとブレッドボードを配線 3) プログラムの作成 4) コンパイルと書き込みの実行 ピアノのドレミファソラシドを奏でるプログラムを作成し、音を鳴らしてみましょう。
第6回で事前準備するものを紹介します。
項目名 | 個数 | |
Arduino本体 | 1個 | |
ブレッドボード | 1個 | |
圧電ブザー | 1個 | |
ジャンパーワイヤー | 2本 |
fritzingを使用して、圧電ブザーの配線図を作成します。 1) 圧電ブザーの黒い線(-)をArduinoのGNDピンに接続 2) 圧電ブザーの赤い線(+)をArduinoの12番ピンに接続 今回のArduino本体とブレッドボードの接続は、これだけでOKなので、すごく簡単にできます。 下記のボタンをクリックすると、fritzingを使った圧電ブザーの配線図の作成動画を確認できます。 圧電ブザーの配線図の作成
作成した配線図を見ながら、実際に配線します。 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と入力しファイルを保存します。 下記のボタンをクリックして、プログラムの作成動画を見ながら作成してみましょう。
プログラムの作成・ の部分が今回使用した周波数 ・ 周波数を変更することにより音を変えることができる
音階 | ド | ド# | レ | レ# | ミ | ファ | ファ# | ソ | ソ# | ラ | ラ# | シ |
周波数 | 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を光らせたり、圧電ブザーで音を鳴らしたりしました。 次はモーターを使用してモーターを回してみましょう。