アクティブブザーをArduinoで動かします。
目次:
今回の目的
前回はアクティブブザーを単体で鳴らしました
前回の記事→アクティブブザーをArduinoで動かす①物を見る
ELEGOOのチュートリアル「Active buzzer」(アクティブブザー)を、今回はスケッチで動かします。
※チュートリアルの文章(PDF日本語版含む)もスケッチもELEGOOのサイトから無料でダウンロードできました。
Download ⇒「Arduino Kits & ~」⇒「UNO R3 Starter Kits」⇒ 「ELEGOO UNO R3 The Most Complete Starter Kit」 からダウンロードリンクに辿り着けます。
リンク
スケッチ
チュートリアルのスケッチを読み解きます。
リード端子間に電圧(5Vとします)をかければブザーは鳴り、電圧をかけなければブザーは鳴りません(後で少々意味が変わりますが)。
このブザーへの電圧出力は「digitalWrite」関数で実現できます。
digitalWrite(pin, value)
pin:出力ピンの番号
value:HIGH または LOW
スケッチです。オリジナルを少し変えてます。
<略>
boid loop()
{
while(1) //以下を延々と繰り返す
unsigned char i; //1バイト(0~255)の変数「i」定義
{
for(i=0;i<200;i++) //以下200回(i=0~199)繰り返し
{
digitalWrite(buzzer,HIGH); //ブザー鳴らす
delay(1); //1msそのまま
digitalWrite(buzzer,LOW); //ブザー止める
delay(1); //1msそのまま
}
for(i=0;i<100;i++)
//以下100回(i=0~99)繰り返し
{
digitalWrite(buzzer,HIGH); //ブザー鳴らす
delay(2); //2msそのまま
digitalWrite(buzzer,LOW); //ブザー止める
delay(2); //2msそのまま
}
}
最初の200回ループ:1ms毎ブザーON/OFF
1ms毎に1msのOFF期間を設けております。
これにより、DC5V印加し続けた時の「ピー」に比べ、ブザー音がやや濁ったような「ビー」(定性的表現)に聴こえます。
次の100回ループ:2ms毎ブザーON/OFF
2ms毎に2msのOFF期間を設けております。
これにより、ブザー音が1ms感覚にさらに濁り「ブー」に聴こえます。
while文によって「ビー」→「ブー」→「ビー」→「ブー」→「ビー」→・・・と繰り返され、単純にDC5Vをかけ続けた時に比べブザー音らしく(聴覚で気づきやすい)なりました。
さらにループ回数を減らして「ビー」↔「ブー」をひっきりなしに切り替えることでも音の聴こえは変わります。
器材接続
Arduino出力端子をブザーに直結です。
図1 接続
所感
せっかくArduinoにつないだからと音を工夫してみましたが、アクティブブザーの長所は直流電圧をかけるだけで音が出るところだと思います。
Arduinoで入力制御を生かすならアクティブブザーで工夫を凝らすよりは、パッシブブザーの自由度に生かした方が良いかと思われます。
0 件のコメント:
コメントを投稿