アクティブブザーをArduinoで動かす②スケッチで動かす

2022/03/14

Active Buzzer Arduino

t f B! P L

 アクティブブザーを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で入力制御を生かすならアクティブブザーで工夫を凝らすよりは、パッシブブザーの自由度に生かした方が良いかと思われます。


このブログを検索

ブログ アーカイブ

自己紹介

にほんブログ村

QooQ