注釈

こんにちは、FacebookのSunFounder Raspberry Pi & Arduino & ESP32愛好者コミュニティへようこそ! Raspberry Pi、Arduino、ESP32について、他の愛好者と一緒に深掘りしていきましょう。

参加する理由は?

  • 専門家のサポート: 購入後の問題や技術的な課題を、コミュニティとチームのサポートで解決できます。

  • 学びと共有: 技術の向上に役立つヒントやチュートリアルを交換しましょう。

  • 限定プレビュー: 新製品の発表前に先行情報を手に入れましょう。

  • 特別割引: 最新製品の特別割引をお楽しみいただけます。

  • 季節限定プロモーションとプレゼント: プレゼントやホリデープロモーションに参加しよう。

👉 一緒に探求し、作成する準備はできましたか? [ここ] をクリックして、今すぐ参加しましょう!

3.1 ブザーを鳴らしてみよう!

このレッスンでは、Raspberry Pi Pico 2 Wを使って ブザー を鳴らす方法を学びます。ブザーはLEDのようなデジタル出力デバイスで、非常に簡単に制御できます。このプロジェクトでは、 アクティブブザー を使用します。このブザーは、信号を受け取ると音を発生させます。

アクティブブザーとは?

アクティブブザー は内部にオシレーターを備えており、使いやすくなっています。信号をブザーに送るだけで音を鳴らせるため、複雑な周波数制御は不要です。これに対して、 パッシブブザー は音を出すために外部信号が必要です。

img_buzzer

必要な部品

このプロジェクトでは、次の部品が必要です。

全ての部品をまとめて購入するのが便利です。こちらから購入できます:

名前

このキットに含まれる部品

購入リンク

Pico 2 Wスターターキット

450+

Pico 2 W Kit

以下のリンクから個別に購入することもできます。

SN

部品の紹介

数量

購入リンク

1

Pico 2 Wの概要

1

2

Micro USBケーブル

1

3

ブレッドボード

1

買う

4

ジャンパーワイヤー

複数

買う

5

トランジスタ

1(S8050)

買う

6

抵抗器

1(1KΩ)

買う

7

アクティブ ブザー

1

回路図

sch_buzzer

この回路では、トランジスタ( S8050 NPN)を介してブザーに電源が供給されます。トランジスタは電流を増幅し、Picoに直接接続した場合よりもブザーの音が大きくなります。

動作の流れは次の通りです: * GP15 が高い信号を出力してトランジスタを制御します。 * トランジスタが作動すると、電流がブザーを通過し、音を発生させます。

1kΩの抵抗 は、トランジスタを保護するために電流を制限する役割を果たします。

配線

必ず アクティブブザー を使用してください。正しいブザーかどうかは、裏面が密封されているか(パッシブブザーは基板が露出しています)で確認できます。

img_buzzer

wiring_beep

コードの記述

注釈

  • ファイル 3.1_beep.inopico-2w-kit-main/arduino/3.1_beep のパスにある場所で開くことができます。

  • または、このコードを Arduino IDE にコピーして使用してください。

  • アップロード ボタンをクリックする前に、ボード(Raspberry Pi Pico)と正しいポートを選択するのを忘れないでください。

const int buzzerPin = 15;  // トランジスタのベースに接続されたGPIOピン

void setup() {
  pinMode(buzzerPin, OUTPUT);
}

void loop() {
  digitalWrite(buzzerPin, HIGH);  // ブザーをオンにする
  delay(1000);                    // 1秒間待つ
  digitalWrite(buzzerPin, LOW);   // ブザーをオフにする
  delay(1000);                    // 1秒間待つ
}

コードをアップロードした後: ブザーは1秒間鳴り、その後1秒間静かになり、このパターンが繰り返されます。 もしブザーの音が聞こえない場合は、配線を確認して接続が正しいか確認してください。 アクティブブザーを使用していることを確認してください。

コードの理解

  1. ブザーピンの定義:

    buzzer PinにGPIO 15を割り当て、これがトランジスタを制御してブザーを動作させます。

    const int buzzerPin = 15;  // トランジスタのベースに接続されたGPIOピン
    
  2. ピンモードの設定:

    buzzerPinを出力ピンとして設定します。

    void setup() {
      pinMode(buzzerPin, OUTPUT);
    }
    
  3. ブザーの制御: loop() 関数はこの処理を無限に繰り返し、1秒ごとにブザーを鳴らします。

    • digitalWrite(buzzerPin, HIGH): buzzerPinHIGH に設定し、トランジスタをオンにして、電流がブザーを通過し、音を鳴らします。

    • delay(1000) : プログラムを1000ミリ秒(1秒)停止します。

    • digitalWrite(buzzerPin, LOW): buzzerPinLOW に設定し、トランジスタをオフにして、電流の流れを停止し、ブザーの音を止めます。

    void loop() {
      digitalWrite(buzzerPin, HIGH);  // ブザーをオンにする
      delay(1000);                    // 1秒間待つ
      digitalWrite(buzzerPin, LOW);   // ブザーをオフにする
      delay(1000);                    // 1秒間待つ
    }
    

さらなる探求

  • ビープ音の長さを変える:

    • delay() の値を変更して、ブザーがオンおよびオフになる時間を調整できます。

    • より短いまたは長い期間を試してみてください。

  • パターンの作成:

    • loop() 関数でタイミングを調整して、より複雑なパターンを作成できます。

    • 例えば、モールス信号でSOS信号を作成してみましょう。

  • パッシブブザーの使用:

    • パッシブブザーを使用し、 tone() 関数を使って異なる周波数を生成してみてください。

    • パッシブブザーの場合、配線やコードは異なるので注意してください。

結論

このレッスンでは、Raspberry Pi Picoとトランジスタを使ってアクティブブザーを鳴らす方法を学びました。GPIOピンでトランジスタを制御することにより、PicoのGPIOピンを過負荷にすることなく、ブザーを安全にオン・オフできます。この基本的な概念を拡張して、より複雑な音を作成したり、アラームや通知、インタラクティブなプロジェクトにブザーを使用したりすることができます。