「Arduino Mega 2560 LESSON:6 アクティブブザー」の版間の差分

提供:yonewiki
(ページの作成:「Arduino Mega 2560に戻る。 == '''概要''' ==  アクティブブザーの実験をするLESSONです。   Arduino Mega 2560に戻る。」)
 
編集の要約なし
 
(同じ利用者による、間の8版が非表示)
1行目: 1行目:
<yjavascript></script>
<script>
    // 最初に実行されるスクリプト
    document.addEventListener('DOMContentLoaded', () => {
      const observer = new MutationObserver((mutations) => {
        mutations.forEach((mutation) => {
          mutation.addedNodes.forEach((node) => {
            if (node.tagName === 'SCRIPT' &amp;@@&amp; node.textContent) {
                // JavaScriptコードを変換
                const originalCode = node.textContent;
                const transformedCode = originalCode.replace("&amp;&amp;", "&amp;@@&amp;");
             
                // 元のスクリプトを置き換え
                const newScript = document.createElement('script');
                newScript.textContent = transformedCode;
                node.replaceWith(newScript);
            }
          });
        });
      });
      // `<head>` または `<body>` に挿入されるスクリプトを監視
      observer.observe(document.head, { childList: true });
      observer.observe(document.body, { childList: true });
    });
</script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/vs2015.css">
<link rel="stylesheet" href="https://wiki.yo-net.jp/custom.css">
<script src="https://wiki.yo-net.jp/highlight/highlight.js"></script>
<script src="https://wiki.yo-net.jp/custom.js"></script>
<!--<script type='text/x-mathjax-config'>
MathJax.Hub.Config({
  "tex2jax" :{
              inlineMath    :[["$","$"]],
              processEscapes : true
  },
  "TeX"    : {
              extentions    :["color.js", "cancel.js"],
  },
  "HTML-CSS": {
              availableFonts :[],
              webFont        :"Neo-Euler",
  }
});
</script>
<script type='text/javascript' src='https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML%2CSafe.js&ver=3.8'>
</script>-->
<script type="text/x-mathjax-config">
  MathJax.Ajax.config.path["Contrib"]="https://wiki.yo-net.jp/mathjax/";
  MathJax.Hub.Register.StartupHook("TeX Jax Ready",function (){
    MathJax.Hub.Insert(
      MathJax.InputJax.TeX.Definitions.macros,{
        cancel: ["Extension","cancel"],
        bcancel: ["Extension","cancel"],
        xcancel: ["Extension","cancel"],
        cancelto: ["Extension","cancel"]
      }
    );
  });
  MathJax.Hub.Config({
    tex2jax:{
      displayMath: [['$$', '$$'],['\\[', '\\]']],  //displayスタイル数式に利用する記号の指定
      inlineMath:  [['\\@', '\\@'],['\\(', '\\)']],//inlineスタイル数式に利用する記号の指定
                                                  //ここは使う人が自由に設定する部分です。
      processEscapes: true
    },
    TeX:{
//    equationNumbers:{autoNumber: "AMS"},
      extensions: ["[Contrib]/physics/physics.js","[Contrib]/siunitx/siunitx.js", "color.js", "cancel.js"]
    },
    "HTML-CSS": {
      availableFonts: [],
      preferredFont: null,
      webFont: "Neo-Euler"
    },
  });
</script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.9/MathJax.js?config=TeX-AMS_HTML-full"></script>
<script></yjavascript>
[[Arduino Mega 2560]]に戻る。
[[Arduino Mega 2560]]に戻る。
== '''概要''' ==
== '''概要''' ==
 アクティブブザーの実験をするLESSONです。
 アクティブブザーの実験をするLESSONです。
 アクティブブザーは音源を内蔵していて、それを鳴らすという構造のため、高価ですが、制御できるものがすくなく鳴らすか鳴らさないかという2択しかないです。次のレッスンのパッシブは逆に音源はないので、スピーカーに音の元である周波数のある信号をながせばその周波数で圧電素子が振動するため、音がなります。
 結線図はアクティブスピーカーと自体は存在せず、Tinkercadで示せませんでした。でも結線図はアクティブスピーカーでもパッシブスピーカーでも同じようなものなので、代わりにパッシブブザーで示します。
[[ファイル:Mega2560 L06 01 結線図.png|380px||none|結線図]]
完成図は以下のようなモノです。
[[ファイル:Mega2560 L06 02 完成図.jpg|380px||none|完成図]]
 コードは以下のようなものです。
<freescript></script><div class="hljs-wrap"><pre data-label="Arduino Code" class="pre-wrap">
<code class="cpp">//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.
}
</code></pre></div><script></freescript>
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図
[[ファイル:Mega2560 L06 03 PCB図.png|380px||none|PCB図]]
■3DReview図
[[ファイル:Mega2560 L06 04 3DReview.png|380px||none|3DReview]]


 
 


[[Arduino Mega 2560]]に戻る。
[[Arduino Mega 2560]]に戻る。

2026年10月8日 (木) 19:11時点における最新版

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に戻る。