注釈

こんにちは、SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Communityへようこそ!Facebook上で、仲間と一緒にRaspberry Pi、Arduino、ESP32をさらに深く探求しましょう。

なぜ参加するのか?

  • 専門的なサポート:購入後の問題や技術的な課題をコミュニティやチームの助けを借りて解決。

  • 学びと共有:スキルを向上させるためのヒントやチュートリアルを交換。

  • 限定プレビュー:新製品発表や予告編に早期アクセス。

  • 特別割引:最新製品の特別割引を楽しむ。

  • フェスティブプロモーションとプレゼント:プレゼントやホリデープロモーションに参加。

👉 私たちと一緒に探索と創造を始める準備はできましたか?[ここ]をクリックして、今すぐ参加しましょう!

レッスン30: リレーモジュール

このレッスンでは、Raspberry Pi Pico W を使用してリレーモジュールを制御する方法を学びます。リレーを Pi に接続する基本的な回路をセットアップし、リレーを1秒間隔でオンとオフに切り替えるMicroPythonスクリプトを書きます。このプロジェクトは、リレーのような外部デバイスを制御することを紹介し、Raspberry Pi Pico W のGPIOピンを使用した実際の出力操作を示します。ホームオートメーションや他の高出力デバイスの管理に興味がある人にとって、このレッスンはマイクロコントローラーが外部ハードウェアとどのように相互作用し、制御できるかについての基本的な洞察を提供します。

必要なコンポーネント

このプロジェクトでは、次のコンポーネントが必要です。

全キットを購入するのが便利です。リンクはこちら:

Name

ITEMS IN THIS KIT

LINK

Universal Maker Sensor Kit

94

Universal Maker Sensor Kit

以下のリンクから個別に購入することもできます。

Component Introduction

Purchase Link

Raspberry Pi Pico W

-

5Vリレーモジュール

-

RGB LEDモジュール

-

ブレッドボード

購入

配線

../_images/Lesson_30_Relay_Module_pico_bb.png

コード

from machine import Pin
import time

# Replace this number with the GPIO pin number your relay is connected to
relay_pin = Pin(16, Pin.OUT)

def relay_on():
    relay_pin.value(1)  # Set relay to ON state

def relay_off():
    relay_pin.value(0)  # Set relay to OFF state

try:
    while True:
        relay_on()
        print("on....")
        time.sleep(1)  # Wait for 1 second
        relay_off()
        print("off....")
        time.sleep(1)  # Wait for 1 second
except:
    relay_off()  # Ensure the relay is turned off in case of an exception
    print("Program interrupted, relay turned off.")

コード解析

  1. ライブラリのインポート

    GPIOピンを操作し、時間関連の機能を扱うために machine ライブラリと time ライブラリをインポートします。

    from machine import Pin
    import time
    
  2. リレーピンの初期化

    リレーを制御するためにGPIOピンを出力ピンとして設定します。 relay_pin 変数はリレーに接続されたGPIOピンを表します。

    relay_pin = Pin(16, Pin.OUT)
    
  3. リレー制御関数の定義

    リレーをオンにする relay_on 関数と、リレーをオフにする relay_off 関数を定義します。これらの関数はGPIOピンの値を高(1)または低(0)に変更します。

    def relay_on():
        relay_pin.value(1)  # Set relay to ON state
    
    def relay_off():
        relay_pin.value(0)  # Set relay to OFF state
    
  4. メインループと例外処理

    while True を使用して連続ループを作成します。このループ内で、リレーは1秒ごとにオンとオフが切り替わります。中断(キーボードによる中断など)が発生した場合、安全のためにリレーがオフにされ、メッセージが表示されます。

    try:
        while True:
            relay_on()
            print("on....")
            time.sleep(1)  # Wait for 1 second
            relay_off()
            print("off....")
            time.sleep(1)  # Wait for 1 second
    except:
        relay_off()  # Ensure the relay is turned off in case of an exception
        print("Program interrupted, relay turned off.")