【Raspberry Pi Pico入門 – 14】圧電ブザーを鳴らしてみる

2023年12月3日Raspberry Pi Pico入門,基本編Arduino,Raspberry Pi Pico

概要

今回は圧電ブザーを鳴らしてみます。圧電ブザーとは音を鳴らすための回路が内蔵されており、リード線に電圧をかけるだけで予め決められた音がなる素子です。何かあった時の警告音など、とりあえず音を鳴らしたいときに便利です。
圧電ブザーはGPIOの電力では動かせないので、トランジスタを使って電流のON/OFFを切り替えてみます。

実行環境

IDE:Arduino IDE 2.2.1
MCU:Raspberry Pi Pico

トランジスタ:S8050
他にもいろいろなものをトランジスタで動かしてみたい!という方は複数の型式が入ったセットがおすすめです。

NPNトランジスタ S8050
トランジスタセット

回路

以下のように配線します。トランジスタはNPN型を使います。(スターターキットにはS8050と印字されたものが入っています)
配線の時にトランジスタの向きに注意してください。

コーディング

新しくスケッチを作成し、以下の内容をコピペしてください。

const int BUZZER_PIN = 16;

void setup() {
  pinMode(BUZZER_PIN, OUTPUT);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(BUZZER_PIN,HIGH);
  digitalWrite(LED_BUILTIN,HIGH);
  delay(1000);
  digitalWrite(BUZZER_PIN,LOW);
  digitalWrite(LED_BUILTIN,LOW);
  delay(1000);
}

動作確認

Raspberry Pi Pico上のLEDが点灯した時に圧電ブザーが鳴れば成功です。

解説

トランジスタとは

今回使ったトランジスタは正式には「バイポーラトランジスタ」と呼ばれている素子になります。元々は普通にトランジスタと呼ばれていたのですが、のちに色んな種類のトランジスタが発明されたので、一番古くからあるタイプのものにバイポーラトランジスタという名前が付けられたようです。一般的にトランジスタと言えばバイポーラトランジスタを指すことが多いです。

トランジスタは「電力を増幅するもの」と説明されることが多いですが、これだけでは何のことか理解するのは難しいと思います。
電気の流れを水に例えると、トランジスタは蛇口をイメージすると理解しやすいかもしれません。Raspberry Pi PicoのGPIOは4mA程度の電流しか流すことが出来ないので、圧電ブザーを鳴らそうとすると電流が大きすぎてマイコンが焼けてしまいます。そのため、Raspberry Pi Picoは圧電ブザーを直接動かすのではなく、圧電ブザーに繋がっている蛇口を操作することで問題なく動かすことが出来ます。
大元の大電流は電源から来ているので、外から見ると小さい電流が大きい電流に変換されたように見えます。

トランジスタのイメージ

トランジスタの端子の名前

トランジスタにはNPN型とPNP型の2種類があります。回路記号と端子の名前は下図のようになっています。

NPNトランジスタの使い方

今回はNPN型の使い方を解説します。トランジスタは蛇口のようなものと説明しましたが、「どれだけ蛇口を捻るか」は実際の回路では「ベースにどれだけの電流を流すか」に相当します。

今回の回路は下図のようになっています。
ベースに流れる電流はGP16の電圧とR1の抵抗値で決まります。今回の場合はGPIOが3.3V・抵抗値が1kΩなので、オームの法則からベースに流れる電流は3.3mAになります。このときにコレクタからエミッタに流れる電流は、S8050の場合は40~400倍になります。(倍率は型式・使用条件・個体差でかなり変わります)
実際は3.3Vピンとコレクタの間に圧電ブザーが入っているので、電流は圧電ブザーの消費電流分だけ流れます。

ちなみにNPNトランジスタは、今回のように圧電ブザーのマイナス極側でしか使えません。このあたりの仕組みやPNPトランジスタとの違いは次回の解説で詳しく取り上げます。

なぜプルダウン抵抗が必要なのか

今回の回路にはベース電流を制御するR1だけでなく、SIGNALにプルダウン抵抗R2が付いています。これはSIGNALがHighにもLowにも繋がっていない場合、周囲の電波等でSIGNALの電圧が揺れてしまわないようにするためです。トランジスタはベースにちょっとした電流が流れただけでコレクタに大電流が流れてしまうので、そのような誤作動を防止するために付けています。

ベース電流を小さくしたいときは下図のような回路にしてもOKです。(むしろこちらの方が一般的です)
この場合、ベース抵抗は11kΩになるので、ベース電流は0.3mAになります。

回路シミュレーション

ここまで解説した内容を実際に触って確認できるよう、シミュレーションを用意しました。
↓このリンク先にシミュレーション用の回路を作りました。抵抗値を変えるとベース電流が変わり、トランジスタに流れる電流が変わります。

回路シミュレーション