2.16 他の回路を制御する

日常生活で、スイッチを押して照明を点けたり消したりしますが、Pico Wを使って10分後に自動的に照明を消したい場合はどうでしょうか?

そのようなアイデアを実現するためには、リレーが役立ちます。

リレーは、一方の回路(通常は低電圧回路)で制御され、他方の回路(通常は高電圧回路)を制御する特別な種類のスイッチです。 これにより、家庭用電化製品をプログラムで制御可能なスマートデバイスに改造したり、インターネットに接続したりすることが現実的になります。

警告

電化製品の改造は大きな危険性がありますので、専門家の指導の下で行ってください。

今回は、ブレッドボードの電源モジュールで駆動される簡単な回路を例に、リレーを使用してどのように制御するかを説明します。

必要なコンポーネント

このプロジェクトで必要なコンポーネントは以下の通りです。

一式をまとめて購入する方が便利です。以下がリンクです:

名前

キットの内容

リンク

ケプラーキット

450以上

Kepler Kit

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

SN

コンポーネント

数量

リンク

1

Raspberry Pi Pico W

1

BUY

2

マイクロUSBケーブル

1

3

ブレッドボード

1

BUY

4

ジャンパーワイヤー

数本

BUY

5

トランジスタ

1(S8050)

BUY

6

ダイオード

1

7

リレー

1

BUY

配線

まず、リレーを制御するための低電圧回路を作ります。 リレーを駆動するには高電流が必要なため、トランジスタが必要です。今回はS8050を使用します。

sch_relay_1

wiring_relay_1

ここではダイオード(フリーホイールダイオード)が回路を保護する役割を果たしています。カソード(マイナス側)は電源に接続された銀色のリボンの端であり、アノード(プラス側)はトランジスタに接続されています。

電圧入力がHigh(5V)からLow(0V)に変わると、トランジスタは飽和状態(増幅、飽和、カットオフ)からカットオフ状態に変わり、コイルを通る電流が突然途切れます。

この時点でフリーホイールダイオードが存在しない場合、コイルは供給電圧よりも何倍も高い自己誘導起電力を両端に発生させ、この電圧とトランジスタの電源からの電圧が加わって、トランジスタを焼き切ってしまいます。

ダイオードを追加すると、コイルとダイオードは瞬時に新しい回路を形成し、コイルに蓄えられたエネルギーで放電し、回路上のトランジスタなどのデバイスが過度な電圧でダメージを受けるのを防ぎます。

この時点でプログラムは実行の準備ができており、実行後に「チクタク」という音が聞こえるでしょう。これはリレー内の接触器コイルが吸引して破断する音です。

次に、負荷回路の両端をそれぞれリレーのピン3とピン6に接続します。

..(前の記事で説明したブレッドボードの電源モジュールで駆動される簡単な回路を例に取ります。)

sch_relay_2

wiring_relay_2

この時点で、リレーは負荷回路のオンとオフを制御できるようになります。

コード

注釈

  • kepler-kit-main/micropython のパスの下にある 2.16_control_another_circuit.py ファイルを開くか、このコードをThonnyにコピーしてから、「Run Current Script」をクリックするか、単純にF5キーを押して実行してください。

  • 画面の右下隅にある「MicroPython(Raspberry Pi Pico)」インタープリタをクリックするのを忘れないでください。

  • 詳細なチュートリアルは、 コードを直接開いて実行する を参照してください。

import machine
import utime

relay = machine.Pin(15, machine.Pin.OUT)
while True:
    relay.value(1)
    utime.sleep(2)
    relay.value(0)
    utime.sleep(2)

コードを実行すると、リレーは制御される回路の動作状態を2秒ごとに切り替えます。 リレー回路と負荷回路の対応関係をさらに明確にするため、手動で一方の行をコメントアウトすることができます。

詳細を学ぶ

リレーのピン3は通常開いており、接触器コイルが動作するとオンになります。ピン4は通常閉じており、接触器コイルが通電するとオンになります。 ピン1はピン6に接続され、負荷回路の共通端子です。

負荷回路の一端をピン3からピン4に切り替えることで、まったく逆の動作状態を得ることができます。