このチュートリアルはの一部です: Arduinoを使ったリレー制御
リレー関連の動画グループです。他の動画へのリンクはこの記事の下にあります。
リードスイッチを使用してArduinoでリレーとAC/DC負荷を制御する
このチュートリアルでは、リードスイッチをArduinoと組み合わせて使用し、ACおよびDCの負荷の両方を制御できるリレーを操作する方法を説明します。リードスイッチは磁気センサとして機能し、磁石の近接に応じてリレーを作動させることができます。この構成は、アラームや自動点灯など、磁場の有無に基づいて機器を制御したい用途に最適です。結果として、リードスイッチの状態に応じてライトやアラームをオン/オフできる、完全に動作する回路が得られます。


このプロジェクトを構築するにあたり、リードスイッチ、リレー、Arduino を含む主要なコンポーネントについて説明します。リードスイッチには3本のピンがあり、VCC(電源)、GND(グランド)、OUTPUT(信号)です。磁石が近づくとスイッチが閉じ、信号ピンがHIGHになり、それによってリレーを動作させることができます。リレーはより高電圧の負荷を切り替えるスイッチとして機能するため、ランプやアラームのような機器の制御に適しています。
視覚的なデモンストレーションとさらなる説明のために、関連するビデオの00:00を必ずご確認ください。

ハードウェアの解説
このプロジェクトの主な構成要素はリードスイッチ、リレーモジュール、Arduinoボードです。リードスイッチは磁石が近づくと接点が閉じ、OUTPUTピンを通じて電流が流れる磁気センサーです。このピンはリレーに信号を送り、リレーは高電圧機器を安全に制御できます。
リレーモジュールは大きな負荷を制御するために設計されています。主な接続端子は三つあり、Common(COM)、Normally Open(NO)、Normally Closed(NC)です。Arduinoによってリレーが作動すると、COM端子がNO端子に接続され、接続された機器に電流が流れるようになります。この構成により、Arduinoを高電圧に直接接続することなく、さまざまな電気機器を柔軟に制御できます。リードスイッチ信号を増幅するための主な増幅器はLM393オペアンプです。
モジュールのデータシート
| 製造元 | 不明 |
|---|---|
| ロジック/入出力電圧 | 3.3V〜5V |
| 電源電圧 | 5 V |
| 出力電流(チャンネルごと) | 最大10A |
| ピーク電流(チャンネルあたり) | 最大16 A |
| PWM周波数に関するガイダンス | 該当なし |
| 入力論理閾値 | 2.5 V以上(HIGH) |
| 電圧降下 / Rドレイン・ソース(オン)/ 彩度 | 0.1 V(典型値) |
| 熱制限 | 最大85°C |
| パッケージ | PCBマウント |
配線手順

システムの配線を行うには、まずリードスイッチを接続します。リードスイッチのVCCピンをArduinoの5V出力に接続し、GNDピンをArduinoのグランド(GND)ピンのいずれかに接続します。リードスイッチのOUTPUTピンはデジタルピンに接続してください2Arduino上で。これによりArduinoはリードスイッチの状態を読み取ることができます。
次に、リレーモジュールを配線します。リレーのVCCピンをArduinoの5V出力に、GNDピンをグラウンドに接続してください。リレーの入力ピンはリレーの動作を制御するもので、デジタルピンに接続する必要があります。10Arduino上で。最後に、負荷(例えば電球)をリレーの共通(Common)端子と常時開(Normally Open)端子に接続し、負荷がリレーの仕様に適合していることを確認してください。
コード例とウォークスルー
以下のコードスニペットはピンを初期化し、デバッグ用のシリアル通信を設定します。リードスイッチはピンに接続されています2、リレーはピン経由で制御される10。
int LD = 200; // time in milliseconds to wait before making another reading.
void setup() {
Serial.begin(9600);
pinMode(10, OUTPUT); // connected to relay
pinMode(2, INPUT); // reed switch input pin 2
Serial.println("Robojax Test: Reed switch");
}
ループ関数内ではリードスイッチの状態が継続的に監視されます。スイッチが閉じている場合(磁石が存在することを示す)、リレーはオンになります。スイッチが開いている場合は、無効化する前に猶予期間を設けるために5秒の遅延の後にリレーがオフになります。
void loop() {
if(digitalRead(2)){
Serial.println("Switch ON ");
digitalWrite(10, LOW); // Turn the relay ON
delay(LD);
}else{
delay(5000); // wait 5 seconds before turning the alarm off
digitalWrite(10, HIGH); // Turn the relay OFF
}
}
このコードは、リードスイッチの状態に応じてリレーを柔軟に制御できるようにします。遅延値やスイッチ入力に基づくリレーの制御方法を変更することで、タイミングや動作を調整できます。
デモンストレーション/何を期待できるか
セットアップが完了すると、リードスイッチに磁石を近づけることでリレーが作動し、接続された照明やアラームが点灯または作動します。磁石を外すと、照明は指定した遅延時間の間点灯したままになり、その後消灯してユーザーに猶予時間を与えます。リレーが期待どおりに動作し、リードスイッチに正しく反応することを確認するために、システムを必ずテストしてください。
動画のタイムスタンプ
- 00:00- プロジェクトの紹介
- 02:15- ハードウェアの説明
- 05:30- 配線の実演
- 08:45- コードウォークスルー
- 12:00- 期待される結果とトラブルシューティングのヒント
++
//*
* This is the Arduino code for a reed switch to
* turn a relay ON, which the relay
* can turn a light or alarm ON.
* The reed switch is connected to pin 2.
* The relay is connected to pin 10.
* Watch the video for this code: https://www.youtube.com/watch?v=2RBFKqoauaI
*
* Written by Ahmad Shamshiri for Robojax.com Video
* Date: December 5, 2017, in Ajax, Ontario, Canada
* Permission granted to share this code, given that this
* note is kept with the code.
* Please keep this note with the code.
* This code is available on Robojax.com
*
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
* This code has been downloaded from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
int LD = 200; // time in milliseconds to wait before making another reading.
void setup() {
Serial.begin(9600);
// output pins
pinMode(10, OUTPUT);// connected to relay
// input pins
pinMode(2, INPUT);// reed switch input pin 2
Serial.println("Robojax Test: Reed switch");
}
void loop() {
// read the REED switch
if(digitalRead(2)){
Serial.println("Switch ON ");
digitalWrite(10, LOW); // Turn the relay ON
delay(LD);
}else{
delay(5000);// wait 5 seconds before turning the alarm off
// remove this line if you don't want any delay
digitalWrite(10, HIGH);// Turn the relay OFF
}
}// loop
リソースと参考文献
まだリソースはありません。
ファイル📁
ファイルは利用できません。