前回はFreenove 8 RGB LEDモジュールを七色にグルグル光らせました。
今回は『ボタンを押したらブザーが鳴る』を作ります。
ブザーについて
ブザーには、「アクティブ型」と「パッシブ型」の 2 種類があります。
アクティブ型ブザー: 発振器が内部に組み込まれており、電源を供給するだけで音が鳴ります。
パッシブ型ブザー: 外部から発振信号 (一般的に周波数の異なるPWM信号) を与えることで音を鳴らすことができます。
アクティブブザー は扱いやすいものの、単一の周波数でしか音を鳴らすことができません。
パッシブブザー は音を鳴らすために外部回路が必要ですが、異なる周波数の音を鳴らすように制御することができます。パッシブザーには共振周波数が存在し、この例では2kHz となっています。つまり、2kHzの信号を与えたときにパッシブブザーから最も大きな音が出力されます。
これらのブザーを利用して、まずアクティブブザーでドアベルを、次にパッシブブザーでアラーム音を作ってみましょう。
アクティブブザーとパッシブザーの見分け方
1.ラベルの有無: アクティブブザーの表面には、通常、発音孔を覆うラベルがついています。ただし、これは確実な判断方法ではありません。
2.内部構造の複雑さ: アクティブブザーは、回路や水晶発振子などの部品を内蔵しているため、パッシブブザーと比べて製造が複雑です。アクティブブザーはこれらの部品が防水コーティング (またはハウジング) で保護され、裏側からピンのみが露出されているのが一般的です。一方、パッシブブザーの裏側には保護コーティングは施されていません。ピンの穴を通して見ると、パッシブブザー内部には、回路基板やコイル、永久磁石 (モデルによって異なる) が確認できることがあります。
【注意】
実際の製品では、必ずしも上記の特徴だけで判断できない場合があります。
製品仕様が分かる資料を確認するのが最も確実な方法です。
見分けに迷った場合は、販売店やメーカーに問い合わせることをおすすめします。
トランジスタについて
ESP32-S3のGPIO出力は、ブザーを直接駆動するには電流が足りません。そこで、電流を増幅するためにNPN型のトランジスタを使います。
トランジスタ (正式名称: 半導体トランジスタ) は、電流を制御する半導体素子です。トランジスタは、微弱な信号を増幅したり、スイッチとして機能したりすることができます。ベース (b)、コレクタ (c)、エミッタ (e) の3つの電極 (ピン) を持ちます。
- 増幅作用: “be”間に電流が流れると、”ce”間には何倍もの電流 (トランジスタの増幅率) が流れます。この状態を「増幅領域」といいます。
- スイッチング作用: “be”間の電流がある値を超えると、”ce”間の電流はそれ以上増加しなくなります。この状態を「飽和領域」といいます。
トランジスタには、PNP型とNPN型の2種類があります。
freenoveのキットでは、PNPトランジスタは8550、NPNトランジスタは8050という型番でマークされています。
トランジスタの特性を活かした電子回路
トランジスタの特性から、デジタル回路ではスイッチとしてよく使われます。マイクロコントローラは出力が微弱な電流しか流せないため、トランジスタを使って電流を増幅し、大電流が必要な部品を駆動します。
NPNトランジスタによるブザーの駆動 NPNトランジスタでブザーを駆動する場合、以下のような方法がよく用いられます。
- GPIO が HIGH を出力すると、電流が R1 を流れてトランジスタが導通状態になり、ブザーが鳴ります。
- GPIO が LOW を出力すると、R1 に電流が流れず、トランジスタが非導通状態になり、ブザーは鳴りません。
PNPトランジスタによるブザーの駆動 PNPトランジスタでブザーを駆動する場合、以下のような方法がよく用いられます。
- GPIO が LOW を出力すると、電流が R1 を流れてトランジスタが導通状態になり、ブザーが鳴ります。
- GPIO が HIGH を出力すると、R1 に電流が流れず、トランジスタが非導通状態になり、ブザーは鳴りません。
ここで説明したトランジスタは、徐々にMOSFET(モスフェット)に置き換わってきています。MOSFETのほうがスイッチング動作が早いという特性や大電流が流せるという特性があり、総じて高性能です。昔はMOSFETの値段が高かったですが、今は殆ど値段が変わらなくなりました。そのため、現在ではトランジスタがあまり製造されなくなってきています。MOSFETもトランジスタの一種であることから、旧来型のトランジスタの事をバイポーラトランジスタと表現することもあります。
回路図
接続図
注意: この回路では、ブザーの電源は5Vです。ボタンに接続されたプルアップ抵抗は3.3V電源につながれています。ブザーは3.3Vでも動作しますが、この場合は音量が小さくなります。
プルアップ抵抗とは、入力が宙ぶらりんになったとき、回路を安定させるために使われる抵抗のことです。
コード
/**********************************************************************
Filename : Doorbell
Description : Control active buzzer by button.
Auther : www.freenove.com
Modification: 2022/10/20
**********************************************************************/
#define PIN_BUZZER 14
#define PIN_BUTTON 21
void setup() {
pinMode(PIN_BUZZER, OUTPUT);
pinMode(PIN_BUTTON, INPUT);
}
void loop() {
if (digitalRead(PIN_BUTTON) == LOW) {
digitalWrite(PIN_BUZZER,HIGH);
}else{
digitalWrite(PIN_BUZZER,LOW);
}
}
もはやコードの解説は不要だと思います。ボタンが押されたらブザー用のピンをHIGHにしているだけですね。
次回はパッシブブザーに置き換えて音のトーンをコントロールしてみましょう。
コメント