.. note::
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
**参加する理由は?**
- **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
- **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。
- **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。
- **特別割引**:最新製品の独占割引をお楽しみください。
- **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう!
1.2.1 アクティブブザー
======================
前書き
------------
このレッスンでは、PNPトランジスタでアクティブブザーを鳴らす方法を学習する。
部品
----------
.. image:: ../img/list_1.2.1.png
原理
---------
**ブザー**
統合された構造を持つ電子ブザーの一種として、DC電源によって電圧供給されるブザーは、コンピューター、プリンター、コピー機、警報器、電子玩具、自動車用電子装置、電話、タイマー、その他の電子製品または音声装置で広く使用されている。ブザーは、アクティブとパッシブに分類できる(次の図を参照)。ピンが上を向くようにブザーを回し、緑色の回路基板を備えたブザーはパッシブブザーで、黒いテープで囲まれたブザーはアクティブである。
アクティブブザーとパッシブブザーの違い:
.. image:: ../img/image101.png
:width: 400
:align: center
アクティブブザーとパッシブブザーの違いは次の通りである:アクティブブザーには振動源が内蔵されているため、通電すると音が鳴る。ただし、パッシブブザーにはそのような振動源がないため、DC信号が使用されてもビープ音は鳴らない。代わりに、周波数が2K〜5Kの方形波を使用して駆動する必要がある。アクティブブザーは、多くの場合、複数の発振回路が内蔵されているため、パッシブブザーよりも高価である。
以下はブザーの電気記号である。両極の2つのピンが搭載されている。表面の+は陽極を表し、もう1つは陰極を表す。
.. image:: ../img/image102.png
:width: 150
:align: center
ブザーのピンをチェックすることができ、長い方が陽極で、短い方が陰極である。接続時にそれらを混同しないでください。混同すると、ブザーが鳴らない。
回路図
-----------------
この実験では、アクティブブザー、PNPトランジスタ、および1k抵抗器をトランジスタのベースとGPIOの間に使用して、トランジスタを保護する。Raspberry Pi出力のGPIO17にプログラミングによって低レベル(0V)が供給されると、電流飽和のためトランジスタが導通し、ブザーが音を出す。しかし、Raspberry PiのIOに高レベルが供給されると、トランジスターが切断され、ブザーは音を出さない。
.. image:: ../img/image332.png
実験手順
-----------------------
ステップ1: 回路を作る。(ブザーの両極に注意してください:+ラベルが付いている方が正極で、もう一方が負極である。)
.. image:: ../img/image104.png
:width: 800
ステップ2: コードファイルを開く。
.. raw:: html
.. code-block::
cd ~/davinci-kit-for-raspberry-pi/c/1.2.1/
ステップ3: コードをコンパイルする。
.. raw:: html
.. code-block::
gcc 1.2.1_ActiveBuzzer.c -lwiringPi
ステップ4: EXEファイルを実行する。
.. raw:: html
.. code-block::
sudo ./a.out
コードが実行されると、ブザーが鳴く。
**コード**
.. code-block:: c
#include
#include
#define BeepPin 0
int main(void){
if(wiringPiSetup() == -1){ //when initialize wiring failed, print messageto screen
printf("setup wiringPi failed !");
return 1;
}
pinMode(BeepPin, OUTPUT); //set GPIO0 output
while(1){
//beep on
printf("Buzzer on\n");
digitalWrite(BeepPin, LOW);
delay(100);
printf("Buzzer off\n");
//beep off
digitalWrite(BeepPin, HIGH);
delay(100);
}
return 0;
}
**コードの説明**
.. code-block:: c
digitalWrite(BeepPin, LOW);
この実験ではアクティブブザーを使用しているため、直流に接続すると自動的に音が鳴く。このスケッチは、I/Oポートを低レベル(0V)に設定して、トランジスタを管理し、ブザーを鳴らすためのものである。
.. code-block:: c
digitalWrite(BeepPin, HIGH);
I/Oポートを高レベル(3.3V)に設定するため、トランジスターは通電されず、ブザーは鳴らない。