注釈
こんにちは!FacebookのSunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Communityへようこそ!Raspberry Pi、Arduino、ESP32を他の愛好者と一緒に深く学びましょう。
参加する理由は?
専門的なサポート: 購入後の問題や技術的な課題をコミュニティやチームの助けを借りて解決できます。
学びと共有: ヒントやチュートリアルを交換し、スキルを向上させましょう。
限定プレビュー: 新製品の発表や先行公開をいち早くチェックできます。
特別割引: 新しい製品に対して独占的な割引を楽しめます。
祭典のプロモーションやプレゼント: プレゼントや祝日プロモーションに参加しましょう。
👉 一緒に探求し、創造を楽しむ準備はできましたか?[ここ]をクリックして、今日から参加しましょう!
2.16 リレーで別の回路を制御する
このレッスンでは、 リレー とRaspberry Pi Pico 2 Wを使用して別の回路を制御する方法を学びます。リレーは、低電圧回路(例えばPico)で制御されて、高電圧回路を操作するスイッチのように動作します。例えば、リレーを使用してランプやその他のデバイスをオンにしたり、オフにしたりすることができ、家電製品の自動化を実現できます。
警告
家電製品の改造には大きな危険が伴いますので、軽率に試すことは避け、専門家の指導の下で行ってください。
ここでは、ブレッドボード電源モジュールで動作するシンプルな回路を使用して、リレーを使った制御方法を示します。
必要なコンポーネント
このプロジェクトでは、以下のコンポーネントが必要です。
全セットを購入するのが便利なので、こちらのリンクをチェックしてください:
名前 |
このキットのアイテム |
購入リンク |
|---|---|---|
Pico 2 Wスターターキット |
450+ |
以下のリンクから、コンポーネントを個別に購入することもできます。
SN |
コンポーネント紹介 |
数量 |
購入リンク |
|---|---|---|---|
1 |
1 |
||
2 |
Micro USBケーブル |
1 |
|
3 |
1 |
||
4 |
数個 |
||
5 |
1(S8050) |
||
6 |
1 |
||
7 |
1 |
回路図

リレーの動作:
Picoが 高信号 (3.3V)をGP15に出力すると、トランジスタがリレーのコイルを通電させます。
トランジスタが電流をリレーに流し、内部のスイッチを作動させます。
リレーがスイッチを切り替えると「クリック」音がし、負荷回路を制御していることが分かります。
フライバックダイオード:
ダイオードはリレーコイルに逆接続され、リレーがオフになるときに発生する電圧スパイクからトランジスタを保護します。
配線図

コード
注釈
pico-2w-kit-main/arduino/2.16_relay内の2.16_relay.inoファイルを開きます。または、このコードを Arduino IDE にコピーします。
アップロードボタンをクリックする前に、ボード(Raspberry Pi Pico)と適切なポートを選択するのを忘れないでください。
const int relayPin = 15; // トランジスタのベースに接続されたGPIOピン
void setup() {
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, LOW); // 起動時にリレーをオフにしておく
}
void loop() {
// リレーをオンにする
digitalWrite(relayPin, HIGH);
Serial.println("Relay ON");
delay(2000); // 2秒待機
// リレーをオフにする
digitalWrite(relayPin, LOW);
Serial.println("Relay OFF");
delay(2000); // 2秒待機
}
コードをアップロード後、リレーがオンとオフに切り替わるたびに「クリック」という音が2秒ごとに聞こえるはずです。
コードの理解
リレーピンの定義:
relayPinをGPIO 15に割り当て、トランジスタを制御し、リレーを操作します。const int relayPin = 15; // トランジスタのベースに接続されたGPIOピン
ピンモードの設定:
relayPinを出力モードに設定し、リレーをオフの状態で初期化します。void setup() { pinMode(relayPin, OUTPUT); digitalWrite(relayPin, LOW); // 起動時にリレーをオフにしておく }
リレーの制御:
relayPinをHIGHに設定し、トランジスタをオンにしてリレーのコイルに通電させます。2秒待機します。
relayPinをLOWに設定し、トランジスタをオフにしてリレーのコイルへの通電を停止させます。さらに2秒待機します。
このサイクルを無限に繰り返します。
// リレーをオンにする digitalWrite(relayPin, HIGH); Serial.println("Relay ON"); delay(2000); // 2秒待機 // リレーをオフにする digitalWrite(relayPin, LOW); Serial.println("Relay OFF"); delay(2000); // 2秒待機
さらなる実験
タイマーを設定する: コードを変更して、リレーを10分間オンにしてから自動的にオフにするようにします。
家庭用機器の制御: 適切な指導を受けた上で、リレーを使って高電圧デバイス(例えば照明やファン)をオン・オフする自動化タスクを行うことができます。
回路は次のようになります: 外部5V電源(ブレッドボード電源モジュール経由)を使ってLEDを駆動し、リレーがどのように高電圧デバイス(家庭用機器)を制御するかを示します。回路の変更方法は次の通りです:

リレーを制御するコード:
const int relayPin = 15; // トランジスタのベースに接続されたGPIOピン void setup() { pinMode(relayPin, OUTPUT); digitalWrite(relayPin, LOW); // 起動時にリレーをオフにしておく } void loop() { // リレーをオンにする digitalWrite(relayPin, HIGH); Serial.println("Relay ON"); delay(2000); // 2秒待機 // リレーをオフにする digitalWrite(relayPin, LOW); Serial.println("Relay OFF"); delay(2000); // 2秒待機 }
リレーが作動すると(GP15が高信号を出力)、リレーの常に開いている端子(NO)と共通端子(C)が接続され、外部5V電源がLEDを通って流れます。LEDが点灯し、リレーが外部機器を制御する様子をシミュレートできます。
リレーが非作動状態になると(GP15が低信号を出力)、NO端子がC端子から切り離され、外部電源が遮断され、LEDが消えます。
実際の家電製品を制御する際の安全対策
この例では、LEDと5V電源を使用してリレー制御を示しました。もし高電圧デバイス(家庭用機器)を制御する場合は、以下に注意してください:
適切な電圧定格: 使用するリレーは、機器の適切な電圧と電流に対応したものを使用してください。
絶縁: 安全のため、低電圧制御回路(Picoなど)と高電圧機器回路の間には適切な絶縁を施してください。
ヒューズ保護: 短絡や過負荷から保護するために、ヒューズや回路ブレーカーを追加することを検討してください。
専門家の指導: 高電圧回路を取り扱う場合は、安全な運用のために必ず専門家の指導を受けてください。
このプロジェクトは、Raspberry Pi Pico 2 Wを使って家電製品(ランプ、ファン、その他のデバイス)をタイマーやセンサーに基づいて制御するためのホームオートメーションの基礎となります。
NC端子の使用
コントロール回路をCOMとNC端子の間に接続した場合:
リレーが作動しないとき、回路は閉じ(ON)状態になります。
リレーが作動すると、回路は開き(OFF)状態になります。
例: 外部デバイスの制御
警告: 適切な知識と安全対策なしで高電圧デバイスを制御しないでください。
小型DCモーターや他のデバイスを制御したい場合:
LEDの代わりに制御したいデバイスを接続します。
デバイスの電圧と電流の要件がリレーと互換性があることを確認してください。
デバイスに適切な電源を供給します。
デバイスをリレーのCOMとNO(またはNC)端子の間に直列に接続します。
結論
このレッスンでは、リレーとRaspberry Pi Picoを使用して別の回路を制御する方法を学びました。トランジスタを使ってリレーコイルを切り替えることで、PicoのGPIOピンを過負荷にすることなく、より高い電流を流す回路を安全に制御できるようになりました。リレーを使いこなすことで、さまざまなデバイスや家電をプロジェクトで制御できる可能性が広がります。
