TOPに戻る

gpiozeroライブラリ入門⑤import Buzzer

 前回、「gpiozeroライブラリ入門④import RGBLED」で調べたように、GPIOポートが最初にHighだと、ブザーをつなぐとプログラムが動く前から音が鳴ります。

 今回のBuzzerは自励式です。電圧が端子にかかると一定の周波数の音が鳴ります。次回のTonalBuzzerは他励式です。どちらも接続するケーブルは2本です。

 アマゾンで入手しました。

●「mxuteuk 3個dc 3-24V有線電子ブザー警報サウンダスピーカービープ音連続音HF-4216-I」のおもなスペック

  • 動作電圧 3~24V
  • 動作電流 12V時15mA、実測3.3V時2mA

接続

 赤色をGPIO21へ、黒色のリード線をGNDにつなぎました。

クラスBuzzer

 このインターフェースは、単純なON/OFFコマンドのみで、さまざまなトーンを再生することはできません。

クラスgpiozero.Buzzer(pin, *, active_high=True, initial_value=False, pin_factory=None)

パラメータ:

 pin (int or str) – ブザーが接続されているGPIOピン。 有効なピン番号は、ピン番号を参照。 これがNoneの場合、GPIODeviceErrorが発生する。
 active_high (bool) – True(デフォルト)の場合、ブザーは上記の回路で正常に動作する。 Falseの場合、カソードをGPIOピンに配線し、アノードを3V3ピンに配線する。
 initial_value (bool or None) – False(デフォルト)の場合、ブザーは最初は無音になる。 Noneの場合、ブザーは、出力用に構成されたときにピンが検出された状態のままになる(警告:これはONになる可能性がある)。 Trueの場合、ブザーは最初にONになる。
 pin_factory (Factory or None) – – APIの解説を読む。

beep(on_time=1, off_time=1, n=None, background=True)

 デバイスの電源を繰り返しON/OFFする。

パラメータ:

 on_time (float) – ONの秒数。 デフォルトは1秒。
 off_time (float) – OFFの秒数。 デフォルトは1秒。
 n (int or None) – 点滅する回数。 なし(デフォルト)は永遠を意味する。
 background (bool) – True(デフォルト)の場合、バックグラウンド・スレッドを開始して点滅を続け、すぐに戻る。 Falseの場合、点滅が終了したときにのみ戻る(警告:デフォルト値のnは、このメソッドが戻らない結果になる)。

off()

 デバイスをOFFにする。

on()

 デバイスの電源をONにする。

toggle()

 デバイスの状態を逆にする。 ONになっている場合はOFFにする。 OFFの場合はONにする。

is_active

 デバイスが現在アクティブな場合はTrueを返し、それ以外の場合はFalseを返す。 このプロパティは通常、値から派生する。 値とは異なり、これは常にブール値。

pin

 デバイスが接続されているピン。 デバイスが閉じられている場合、これはNoneになる(close()メソッドを参照)。 GPIOピンを処理するときは、pin.numberを照会して、デバイスが接続されているGPIOピン(BCM番号付け)を見つける。

value

 デバイスが現在アクティブな場合は1を返し、それ以外の場合は0を返す。 このプロパティを設定すると、デバイスの状態が変更される。

プログラム-ブザーのON/OFF

 ブザーを鳴らします。1秒鳴って1秒休みます。

from gpiozero import Buzzer
from time import sleep

bz = Buzzer(21)
bz.beep()
sleep(3)
print(bz.is_active)

 3秒経ってis_activeを実行した結果はFalseでした。ブザーは継続して鳴っています。

プログラム-リレーのON/OFF

 LEDと同じく、BuzzerはGPIOのON/OFFしているだけです。次のようにリレーをつないでもON/OFFはできます。Buzzerの別名にRelayを使いました。リレーの駆動は、こちらの記事を参照ください。

from gpiozero import Buzzer as Relay
from time import sleep

RL = Relay(21)
RL.on()
sleep(3)
RL.off()

gpiozero Copyright 2015-2020 Ben Nuttall 

連載 gpiozeroライブラリ入門

- OutputDevice -

(1) LED その1 (2) LED その2 (3) PWMLED (4) RGBLED

(5) Buzzer (6) TonalBuzzer

(7) Motor その1 BD65496 (8) その2 TB67H420FTG (9) その3 TB6612 (10) その4 MC33926 (11) PhaseEnableMotor DRV8835

(12) Servo (13) AngularServo

- SPI Device -

(14) 10ビットA-DコンバータMCP3001/MCP3002/MCP3004/MCP3008

(15) 12ビットA-DコンバータMCP3201/MCP3202/MCP3204/MCP3208

(16) 13ビットA-DコンバータMCP3301/MCP3302/MCP3304