今回は、Arduinoとパッシブブザーを使用して、ドレミファソラシドの音階を鳴らす方法を紹介します。
目次
使用する部品一覧
使用する部品は図のとおりです。これらの部品は、すべて「ELEGOO Arduino用のMega2560スタータキット」に含まれています。Arduinoは、もちろんunoやnanoでも問題ありません。
- Arduino MEGA2560 R3 …1個
- パッシブブザー …1個
- ジャンパワイヤ(オス-メス) …2個
パッシブブザーの特徴や取り扱い方法
ブザーは2種類あり、アクティブブザーとパッシブブザーがあります。アクティブブザーは、振動源が内蔵されているため、電源を入れると音が鳴ります。 パッシブブザーはそのような音源が内蔵されていないため、電源を入れただけでは音を鳴らすことはできません。 パッシブブザーは、ある周波数を持つ方形波を入力する必要があります。その周波数が異なると、それに応じた音が発生します。この特徴を利用して、簡単なメロディーを鳴らすことができます。
回路図
パッシブブザーの+端子を8番のPWMピンに接続します。ー端子をGNDに接続します。あとのプログラムでtone()関数 を使用しますが,その場合、3番と11番ピンのPWM出力が出来なくなります(Mega以外)ので、プログラムを改造する際は注意してください。
配線図
ブレッドボードを使用した配線は図のとおりになります。
組立完成写真
実際に組み立てた写真です。同じようにできましたか?
プログラム
プログラムで音階を扱う際、周波数ではなく文字の方が可読性が上がります。それを定義したファイルがpitches.hファイルです。これをプログラムの冒頭でincludeで読み込みます。
次に、メロディーの配列を作ります。周波数を格納するため、整数のint型を使用します。NOTE_C5などは、pitches.hファイルで定義されたものです。
メインループでは、melody配列の先頭から順にパッシブブザーへ出力します。パッシブブザーへの出力は、tone関数を使うことで簡単に記述できます。
pitches.hファイルでは、音階と周波数を1対1で対応させて定義しています。もし、この音階名がわかりにくい場合は、自分でファイルを作成して読み込んでも構いません。
動かしてみよう
プログラムを書き込んで、実際に動かしてみてください。
今回学んだポイント
- パッシブブザーは、入力信号の周波数を変えることで、様々な音を出すことができる。
- tone()関数を使用すれば、入力信号を簡単に作成できる。
- 音階と周波数を外部ファイル(pitches.h)で定義すれば、周波数を文字で扱うことができ、プログラムの可読性を上げることができる。
改造してみよう
もう少し理解を深めるために、自分で改造してみてください。
- オリジナルのメロディを作ろう。
- プッシュスイッチを使用して、メロディを切り替えられるようにしよう。
(参考:ArduinoでSTEM教育 基礎編:プッシュスイッチ)
コメントを残す