注釈
こんにちは、SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Communityへようこそ!Facebook上で、仲間と一緒にRaspberry Pi、Arduino、ESP32をさらに深く探求しましょう。
なぜ参加するのか?
専門的なサポート:購入後の問題や技術的な課題をコミュニティやチームの助けを借りて解決。
学びと共有:スキルを向上させるためのヒントやチュートリアルを交換。
限定プレビュー:新製品発表や予告編に早期アクセス。
特別割引:最新製品の特別割引を楽しむ。
フェスティブプロモーションとプレゼント:プレゼントやホリデープロモーションに参加。
👉 私たちと一緒に探索と創造を始める準備はできましたか?[ここ]をクリックして、今すぐ参加しましょう!
レッスン30: リレーモジュール
このレッスンでは、Raspberry Piを使用してリレーモジュールを制御する方法を学びます。リレーを1秒間隔でオンとオフにするシンプルなPythonスクリプトを書く方法を学びます。このプロジェクトは、外部デバイスを制御するためにGPIOピンを使用する実践的な入門編であり、電子回路でのリレーの働きについての基本的な理解を提供します。これは、Raspberry Piとハードウェア制御を始める初心者にとってわかりやすく有益な演習です。
必要なコンポーネント
このプロジェクトでは、以下のコンポーネントが必要です。
全てが揃ったキットを購入すると便利です。リンクはこちらです:
Name |
ITEMS IN THIS KIT |
LINK |
---|---|---|
Universal Maker Sensor Kit |
94 |
以下のリンクから個別に購入することもできます。
Component Introduction |
Purchase Link |
---|---|
Raspberry Pi 5 |
- |
- |
|
- |
|
配線
![../_images/Lesson_30_Relay_Pi_bb.png](../_images/Lesson_30_Relay_Pi_bb.png)
コード
from gpiozero import OutputDevice
from time import sleep
# Replace with your GPIO pin number
relay_pin = 17 # Example using GPIO17
# Initialize relay object
relay = OutputDevice(relay_pin)
try:
while True:
# Turn on the relay
relay.on()
sleep(1) # Relay remains on for 1 second
# Turn off the relay
relay.off()
sleep(1) # Relay remains off for 1 second
except KeyboardInterrupt:
# Capture Ctrl+C and safely close the program
relay.off()
print("Program interrupted by user")
コード解析
ライブラリのインポート
GPIO制御のために
gpiozero
ライブラリを、遅延のためにtime
ライブラリをインポートします。from gpiozero import OutputDevice from time import sleep
リレーの初期化
リレーに接続されたGPIOピンを定義し、そのピンで
OutputDevice
オブジェクトを初期化します。relay_pin = 17 # Example using GPIO17 relay = OutputDevice(relay_pin)
ループ内のリレー制御
while True:``ループはリレーを継続的にトグルします。 ``relay.on()
とrelay.off()
を使用してリレーを制御し、sleep(1)
は各状態の間に1秒の遅延を作成します。try: while True: relay.on() sleep(1) # Relay remains on for 1 second relay.off() sleep(1) # Relay remains off for 1 second
例外処理
except``ブロックは ``KeyboardInterrupt
(Ctrl+C)をキャッチします。これにより、リレーがオフになり、プログラムが安全に終了することが保証されます。except KeyboardInterrupt: relay.off() print("Program interrupted by user")