Arduino Mega 2560 LESSON:6 アクティブブザー

提供:yonewiki

Arduino Mega 2560に戻る。

概要

 アクティブブザーの実験をするLESSONです。


 アクティブブザーは音源を内蔵していて、それを鳴らすという構造のため、高価ですが、制御できるものがすくなく鳴らすか鳴らさないかという2択しかないです。次のレッスンのパッシブは逆に音源はないので、スピーカーに音の元である周波数のある信号をながせばその周波数で圧電素子が振動するため、音がなります。


 結線図はアクティブスピーカーと自体は存在せず、Tinkercadで示せませんでした。でも結線図はアクティブスピーカーでもパッシブスピーカーでも同じようなものなので、代わりにパッシブブザーで示します。


結線図


完成図は以下のようなモノです。


完成図


 コードは以下のようなものです。


//www.elegoo.com
//2023.05.06

int buzzer = 12;//the pin of the active buzzer
void setup()
{
  pinMode(buzzer, OUTPUT); //initialize the buzzer pin as an output
}
void loop()
{
  int sound_duration = 500;
  for (int i = 0; i < 20; i++)
  {
    //use the if function to gradually shorten the interval of the sound
    if (i < 5)
    {
      sound_duration = 500;
    } else if (i < 10)
    {
      sound_duration = 300;
    } else if (i < 20)
    {
      sound_duration = 100;
    }
    //activate the active buzzer
    digitalWrite(buzzer, HIGH);
    delay(sound_duration);//wait for sound_duration ms
    //deactivate the active buzzer
    digitalWrite(buzzer, LOW);
    delay(sound_duration);//wait for sound_duration ms
  }
  //activate the active buzzer
  digitalWrite(buzzer, HIGH);
  delay(5000);//keep playing sound for 5 seconds.
}


digitalWrite(buzzer, HIGH);


で音がなり


digitalWrite(buzzer, LOW);


で音が止まります。For文で0から20までカウントアップしながら


i=0 音が鳴る0.5秒→音が止まる0.5秒→

i=1 音が鳴る0.5秒→音が止まる0.5秒→

i=2 音が鳴る0.5秒→音が止まる0.5秒→

i=3 音が鳴る0.5秒→音が止まる0.5秒→

i=4 音が鳴る0.5秒→音が止まる0.5秒→


i=5 音が鳴る0.3秒→音が止まる0.3秒→

i=6 音が鳴る0.3秒→音が止まる0.3秒→

i=7 音が鳴る0.3秒→音が止まる0.3秒→

i=8 音が鳴る0.3秒→音が止まる0.3秒→

i=9 音が鳴る0.3秒→音が止まる0.3秒→


i=10 音が鳴る0.1秒→音が止まる0.1秒→

i=11 音が鳴る0.1秒→音が止まる0.1秒→

i=12 音が鳴る0.1秒→音が止まる0.1秒→

i=13 音が鳴る0.1秒→音が止まる0.1秒→

i=14 音が鳴る0.1秒→音が止まる0.1秒→

i=15 音が鳴る0.1秒→音が止まる0.1秒→

i=16 音が鳴る0.1秒→音が止まる0.1秒→

i=17 音が鳴る0.1秒→音が止まる0.1秒→

i=18 音が鳴る0.1秒→音が止まる0.1秒→

i=19 音が鳴る0.1秒→音が止まる0.1秒→


Loop終了前 音が鳴る5秒


最初に戻る


という繰り返しのコードになっています。


単純な回路だけどKiCADで一応、基盤作っておきました。


回路図

  • 「Buzzer]:Buzzer:Buzzer, polarized
  • 「Conn_01x02」:Conn_01x02:Generic connector, single row,01x02, script generated(kicad-library-utils/schlib/schlib/autogen/connector/)
  • 「PWR_FLAG」:PWR_FLAG:Special symbol for telling ERC where power comes from
  • 「GND」:GND:Power symbol a global with name "GND", ground


フットプリント


  • 「Buzzer」:Buzzer:Zuzzer_Beeper:Buzzer_12x9.5RM7.6
  • 「Conn_01x02」:Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical


■PCB図

PCB図


■3DReview図

3DReview

 

Arduino Mega 2560に戻る。