Arduino

Arduinoと圧電スピーカーで音を鳴らしてみる

2018年11月28日

こんばんは!
今回は圧電スピーカーを使っていこうと思います。

概要

圧電スピーカーでドレミファソラシドを鳴らす。
音を上手く組み合わせて某コンビニのあの音を鳴らす

使用するもの

・Arduinoメインボード(https://amzn.to/2vkPIUH)
・USBケーブル(https://amzn.to/2UHhntl)
・ブレッドボード(https://amzn.to/38eNi8u)
・ジャンパワイヤ (https://amzn.to/39uBU8T)
・圧電スピーカー(https://amzn.to/2Fnfuv0)

圧電スピーカーについて

電極に信号電圧を加えることにより圧電体が歪み、その振動を音(空気の振動)として聞くものである。小型で消費電力が少ないことから、電子ブザーなどの電子機器に多用されている。周波数特性はあまり良くなく、出力は小さい。

出展:Wikipedia

とあります。

簡単にいうと電圧の振動を空気の振動に変えるから音が鳴るというものです。
電圧の振動を変えることにより(電圧を変えることにより)、空気の振動数が変わり、高い音や低い音など、音の違いが生まれます。

今回使用する圧電スピーカーは赤と黒の2本の足があります。
黒はGND、赤はデジタルピンと接続します。

 

手順

まず、ハード側からやっていきます。
図のように圧電スピーカーとArduinoを接続します。

Arduino圧電スピーカー
GND黒線
D11赤線

これでハード側は終わりです。

次にプログラムを書いていきます。

Arduino IDEを開いて次のコードを書き込んでいきます。

プログラムの説明をしていきます。
まず、音階と周波数[Hz]の対応表
ドは261.626≒262[Hz]…という風に、ドレミファソラシドの音階と周波数を調べます。

それをDefine文で
#define DO 262
のように定義します。

今回はtone関数というものを使って音を鳴らしています。
tone関数は
tone(ピン番号,出力する周波数、出力時間)のように記述します。
周波数を順番に変えていくことにより、ドレミファソラシドの音を鳴らしています。

では、実際にマイコンボードに書き込んで聞いてみてください。

 

ちなみにtone関数は和音を出すことができないため、delay(BEATTIME)を記述しています。
delay(BEATTIME)を記述しないと意図しない音が出ると思います。試しにやってみてください。

 

と、ここで「ドレミファソラシドが全て出せるのなら何かメロディを流せるのでは?」と思い、1つだけ作ってみました。

コピー&ペーストしてマイコンボードに書き込んでみてください。
あの曲が聞こえると思います。

まとめ

今回は圧電スピーカーを使ってみました。
様々な利用用途があるとは思いませんが、手軽に扱えて、圧電スピーカーは安価なので一度やってみると面白いと思います。

ではまた!

-Arduino

Copyright© 物を作る者 , 2024 All Rights Reserved.