「Arduino Mega 2560 LESSON:6 アクティブブザー」の版間の差分
(→概要) |
編集の要約なし |
||
| (同じ利用者による、間の3版が非表示) | |||
| 83行目: | 83行目: | ||
== '''概要''' == | == '''概要''' == | ||
アクティブブザーの実験をするLESSONです。 | アクティブブザーの実験をするLESSONです。 | ||
アクティブブザーは音源を内蔵していて、それを鳴らすという構造のため、高価ですが、制御できるものがすくなく鳴らすか鳴らさないかという2択しかないです。次のレッスンのパッシブは逆に音源はないので、スピーカーに音の元である周波数のある信号をながせばその周波数で圧電素子が振動するため、音がなります。 | アクティブブザーは音源を内蔵していて、それを鳴らすという構造のため、高価ですが、制御できるものがすくなく鳴らすか鳴らさないかという2択しかないです。次のレッスンのパッシブは逆に音源はないので、スピーカーに音の元である周波数のある信号をながせばその周波数で圧電素子が振動するため、音がなります。 | ||
| 201行目: | 202行目: | ||
最初に戻る | 最初に戻る | ||
という繰り返しのコードになっています。 | |||
単純な回路だけど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時点における最新版
概要
アクティブブザーの実験をする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図
■3DReview図