注釈
こんにちは!SunFounder Raspberry Pi & Arduino & ESP32 愛好者コミュニティ(Facebook)へようこそ! Raspberry Pi、Arduino、ESP32 の知識を深め、仲間とともにものづくりを楽しみましょう。
なぜ参加するのか?
専門的なサポート:購入後の問題や技術的な課題を、コミュニティメンバーやチームがサポート。
学びと共有:ヒントやチュートリアルを交換し、スキルを向上。
最新情報の先行公開:新製品の発表やプレビューをいち早くチェック。
特別割引:最新製品を会員限定の特別価格で購入可能。
イベント & プレゼント企画:プレゼントキャンペーンや季節ごとのプロモーションに参加可能。
👉 一緒にものづくりを楽しみませんか?[こちら] をクリックして、今すぐ参加!
3.1 ブザーを鳴らそう!
このレッスンでは、Raspberry Pi Pico 2 を使用して ブザー を鳴らす方法を学びます。 ブザーは LED と同様にデジタル出力デバイスであり、制御が非常に簡単です。 今回は、 アクティブブザー を使用します。このブザーは信号を受け取るだけで音を発するため、複雑な周波数制御が不要です。
アクティブブザーとは?
アクティブブザー は内部に発振回路を持っており、信号を送るだけで音を鳴らせます。 一方で パッシブブザー は、外部からの信号(周波数制御)が必要となります。
必要なもの
このプロジェクトでは、以下のコンポーネントが必要です。
すべて揃ったキットを購入すると便利です。リンクはこちら:
名称 |
キットに含まれるアイテム |
リンク |
|---|---|---|
Newton Lab Kit |
450点以上 |
個別に購入する場合は、以下のリンクからどうぞ。
SN |
コンポーネント |
数量 |
リンク |
|---|---|---|---|
1 |
1 |
||
2 |
Micro USB ケーブル |
1 |
|
3 |
1 |
||
4 |
数本 |
||
5 |
1 (S8050) |
||
6 |
1 (1KΩ) |
||
7 |
アクティブ ブザー |
1 |
回路図

この回路では、ブザーは S8050 NPN トランジスタを介して駆動されます。 トランジスタは電流を増幅するため、Pico に直接接続するよりも大きな音を出すことができます。
動作の仕組み:
GP15 が HIGH を出力すると、トランジスタが ON になり、ブザーに電流が流れて音が鳴る。
1kΩ 抵抗 はトランジスタの保護のために使用。
配線図
必ず アクティブブザー を使用してください。 アクティブブザーは底面が密閉されているのに対し、パッシブブザーは基板が露出しています。
コードの記述
注釈
3.1_beep.inoをnewton-lab-kit/arduino/3.1_beepから開くことができます。または、このコードを Arduino IDE にコピーしてください。
Raspberry Pi Pico 2 ボードを選択し、適切なポートを設定して「Upload」をクリックしてください。
const int buzzerPin = 15; // トランジスタのベースに接続する GPIO ピン
void setup() {
pinMode(buzzerPin, OUTPUT);
}
void loop() {
digitalWrite(buzzerPin, HIGH); // ブザーを ON
delay(1000); // 1秒間待機
digitalWrite(buzzerPin, LOW); // ブザーを OFF
delay(1000); // 1秒間待機
}
コードをアップロードすると:
ブザーが 1 秒間鳴り、その後 1 秒間無音 を繰り返します。
ブザーが鳴らない場合は、配線を確認し、アクティブブザー を使用していることを確認してください。
コードの解説
ブザーピンの定義
GPIO 15 を buzzerPin として定義し、トランジスタを介してブザーを制御します。
const int buzzerPin = 15; // GPIO 15 をブザー制御ピンとして設定
ピンモードの設定
buzzerPin を出力モードに設定。
void setup() { pinMode(buzzerPin, OUTPUT); }
ブザーの制御
loop()関数が繰り返し実行され、ブザーを 1 秒ごとに ON/OFF します。digitalWrite(buzzerPin, HIGH)→ トランジスタを ON にし、ブザーが鳴るdelay(1000)→ 1 秒間待機digitalWrite(buzzerPin, LOW)→ トランジスタを OFF にし、ブザーが止まる
void loop() { digitalWrite(buzzerPin, HIGH); // ブザーを ON delay(1000); // 1秒間待機 digitalWrite(buzzerPin, LOW); // ブザーを OFF delay(1000); // 1秒間待機 }
さらなる応用
ビープ音の長さを変える
delay()の値を変更することで、ブザーの ON/OFF の時間を調整可能。短くしたり長くしたりして、さまざまな音のパターンを試してみましょう。
パターンを作成する
loop()関数内のタイミングを調整し、より複雑な音のパターンを作成。例えば、モールス信号の SOS (・・・---・・・) を再現することもできます。
パッシブブザーを使用する
パッシブブザーを使用し、
tone()関数で異なる周波数の音を生成可能。ただし、パッシブブザーの場合は配線とコードの記述方法が異なる点に注意してください。
まとめ
このレッスンでは、 Raspberry Pi Pico とトランジスタを使用してアクティブブザーを鳴らす方法 を学びました。 GPIO ピンでトランジスタを制御することで、安全にブザーを ON/OFF でき、Pico の GPIO ピンに過負荷をかけることなく動作させることが可能です。 この基本的な仕組みを応用すれば、より複雑なサウンドを作成したり、アラームや通知音、インタラクティブなプロジェクトに活用できます。

