Tìm kiếm mã

Sử dụng Công tắc Reed để Điều khiển Rơ-le và Tải AC/DC với Arduino

Sử dụng Công tắc Reed để Điều khiển Rơ-le và Tải AC/DC với Arduino

Trong hướng dẫn này, chúng ta sẽ khám phá cách sử dụng công tắc reed kết hợp với Arduino để điều khiển rơ-le có thể quản lý cả tải AC và DC. Công tắc reed hoạt động như một cảm biến từ, cho phép chúng ta kích hoạt rơ-le dựa trên khoảng cách của nam châm. Cấu hình này hoàn hảo cho các ứng dụng như báo động, đèn tự động, hoặc bất kỳ tình huống nào bạn muốn điều khiển thiết bị dựa trên sự hiện diện hoặc vắng mặt của từ trường. Kết quả sẽ là một mạch hoạt động hoàn chỉnh có thể bật hoặc tắt đèn hoặc báo động tùy thuộc vào trạng thái của công tắc reed.

Reed Switch Schematic
Reed Switch module

Khi xây dựng dự án này, chúng ta sẽ thảo luận về các thành phần chính liên quan, bao gồm công tắc reed, rơ-le và Arduino. Công tắc reed có ba chân: VCC (nguồn), GND (đất) và OUTPUT (tín hiệu). Khi nam châm đến gần, công tắc đóng lại, cho phép chân tín hiệu chuyển sang mức CAO, từ đó có thể kích hoạt rơ-le. Rơ-le hoạt động như một công tắc cho các tải điện áp cao hơn, phù hợp để điều khiển các thiết bị như đèn hoặc báo động.

Để có phần trình diễn trực quan và giải thích rõ hơn, hãy xem video liên quan tại (trong video tại 00:00).

Reed Switch module to view

Giải thích về Phần cứng

Các thành phần chính của dự án này bao gồm công tắc reed, mô-đun rơ-le và bo mạch Arduino. Công tắc reed là một cảm biến từ đóng các tiếp điểm khi nam châm ở gần, cho phép dòng điện chạy qua chân OUTPUT. Chân này gửi tín hiệu đến rơ-le, có thể điều khiển các thiết bị điện áp cao một cách an toàn.

Mô-đun rơ-le được thiết kế để điều khiển các tải lớn hơn. Nó có ba kết nối chính: Common (COM), Normally Open (NO) và Normally Closed (NC). Khi rơ-le được kích hoạt bởi Arduino, nó kết nối chân COM với chân NO, cho phép dòng điện chạy đến thiết bị được kết nối. Thiết lập này cho phép điều khiển linh hoạt các thiết bị điện khác nhau mà không cần kết nối trực tiếp Arduino với điện áp cao. Bộ khuếch đại chính dùng để khuếch đại tín hiệu công tắc reed là Bộ khuếch đại thuật toán LM393

Bảng dữ liệu cho mô-đun

Nhà sản xuấtKhông rõ
Điện áp Logic/IO3.3V - 5 V
Điện áp cấp nguồn5 V
Dòng điện đầu ra (mỗi kênh)Tối đa 10 A
Dòng điện đỉnh (mỗi kênh)Tối đa 16 A
Hướng dẫn tần số PWMKhông áp dụng
Ngưỡng logic đầu vàoTối thiểu 2.5 V (CAO)
Sụt áp / RDS(on) / bão hòa0.1 V điển hình
Giới hạn nhiệtTối đa 85 °C
Kiểu đóng góiGắn trên PCB

Hướng dẫn Đấu dây

Arduino wiring for Reed switch module
Arduino wiring for Reed switch module

Để đấu dây hệ thống, bắt đầu bằng cách kết nối công tắc reed. Kết nối chân VCC của công tắc reed với đầu ra 5V trên Arduino, và kết nối chân GND với một trong các chân nối đất trên Arduino. Chân OUTPUT của công tắc reed nên được kết nối với chân kỹ thuật số 2 trên Arduino. Điều này sẽ cho phép Arduino đọc trạng thái của công tắc reed.

Tiếp theo, đấu dây mô-đun rơ-le. Kết nối chân VCC của rơ-le với đầu ra 5V trên Arduino, và chân GND với đất. Chân đầu vào của rơ-le, điều khiển hoạt động của rơ-le, nên được kết nối với chân kỹ thuật số 10 trên Arduino. Cuối cùng, kết nối tải (như bóng đèn) với các đầu cuối Common và Normally Open của rơ-le, đảm bảo rằng tải phù hợp với thông số kỹ thuật của rơ-le.

Ví dụ Mã và Hướng dẫn Chi tiết

Đoạn mã sau khởi tạo các chân và thiết lập truyền thông nối tiếp để gỡ lỗi. Công tắc reed được kết nối với chân 2, trong khi rơ-le được điều khiển qua chân 10.


int LD = 200; // thời gian tính bằng mili giây để chờ trước khi thực hiện lần đọc tiếp theo.

void setup() {
    Serial.begin(9600);
    pinMode(10, OUTPUT); // kết nối với rơ-le
    pinMode(2, INPUT); // chân đầu vào công tắc reed số 2  
    Serial.println("Robojax Test: Công tắc Reed");
}

Trong hàm loop, trạng thái của công tắc reed được kiểm tra liên tục. Nếu công tắc đóng (cho biết sự hiện diện của nam châm), rơ-le được bật. Nếu công tắc mở, rơ-le được tắt sau thời gian trễ 5 giây, cho phép có khoảng thời gian chờ trước khi ngừng kích hoạt.


void loop() {
    if(digitalRead(2)){
      Serial.println("Công tắc BẬT "); 
      digitalWrite(10, LOW); // Bật rơ-le    
      delay(LD); 
    }else{
      delay(5000); // chờ 5 giây trước khi tắt báo động
      digitalWrite(10, HIGH); // Tắt rơ-le
    }
}

Mã này cho phép linh hoạt trong việc điều khiển rơ-le dựa trên trạng thái của công tắc reed. Bạn có thể sửa đổi thời gian và hành vi bằng cách thay đổi các giá trị trễ hoặc cách điều khiển rơ-le dựa trên đầu vào của công tắc.

Trình diễn / Điều gì sẽ xảy ra

Khi thiết lập hoàn tất, đưa nam châm đến gần công tắc reed sẽ kích hoạt rơ-le, bật đèn hoặc báo động được kết nối. Nếu nam châm được lấy ra, đèn sẽ vẫn sáng trong khoảng thời gian trễ đã chỉ định trước khi tắt, cung cấp khoảng thời gian đệm cho người dùng. Đảm bảo kiểm tra hệ thống để xác nhận rằng rơ-le hoạt động như mong đợi và phản hồi chính xác với công tắc reed.

Mốc thời gian Video

  • 00:00 - Giới thiệu về dự án
  • 02:15 - Giải thích về phần cứng
  • 05:30 - Trình diễn đấu dây
  • 08:45 - Hướng dẫn chi tiết mã
  • 12:00 - Kết quả mong đợi và mẹo khắc phục sự cố

Hình ảnh

Reed Switch module top view
Reed Switch module top view
Reed Switch Schematic
Reed Switch Schematic
reed_switch-4
reed_switch-4
Reed Switch module
Reed Switch module
Reed Switch module to view
Reed Switch module top view
Reed Switch module
Reed Switch module
Arduino wiring for Reed switch module
Arduino wiring for Reed switch module
22-Reed Magnetic Switch Arduino with Relay code
Ngôn ngữ: C++
++
//*
 * 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

Tài nguyên & tài liệu tham khảo

Chưa có tài nguyên nào.

Tập tin📁

Không có tệp nào khả dụng.