ELEGOO (Arduino)で始めるマイコン入門7:ヘッダーと奏でるブザー

 今回はヘッダーについて学びながら、パッシブブザーを使って音色を奏でます。
 パッシブブザーとは、PWMの説明で使用した矩形波と呼ばれる形の電圧を入力することによって、デューティー比に対応した音を発生させるブザーです。
 Arduinoでは、パッシブブザーを鳴らすための関数が用意されています。それがtone(ピン番号, frequency, duration)です。frequencyに鳴らしたい周波数を入れ、durationに鳴らす秒数(単位:ミリ秒)を入れて使います。ここで気になるのが、ド、を鳴らしたいとき、いくつを入れるとよいかということです。この関数にいくつを入れると、ド、が出るかはネットで検索すれば出てきます。では、同じようにして所望の音程とfrequencyの対応がわかったとして、プログラムにどう記述しましょうか。#define tone_do xx と順番に書いていくと、プログラムが見にくくなってしまいますし、他のプログラムでドを出したいときは、長いdefineをコピーしなくてはいけません。この面倒ごとを解決するのがヘッダーです。ヘッダーに一度定義や関数を書いてしまえば、他のプログラムはヘッダーを読み込むだけで、それらを使うことができるようになるのです。

 Arduino IDEでヘッダーを作ってみましょう。下の画像のように、端の△ボタンをクリックし、新規タブを選びます。その後、他のプログラムでも使うような便利な関数や定義を記述するだけです。

画像1

mydef.hという名前でタブを作り、定義を記述したとします。これを使うためには、プログラムの先頭で、#include "mydef.h" と記述します。これで準備完了です。あとはメロディを配列で作成し、

int melody[] = { TONE_DO, TONE_LE, TONE_MI, TONE_FA }
for (int thisNote = 0; thisNote < 8; thisNote++) {
   tone(8, melody[thisNote], 1000);
}

このように記述して完成です。

この記事が気に入ったらサポートをしてみませんか?