Tìm kiếm mã

Mã Arduino và Video cho Rơ-le Trạng thái Rắn để Điều khiển Bóng đèn AC hoặc Tải

Mã Arduino và Video cho Rơ-le Trạng thái Rắn để Điều khiển Bóng đèn AC hoặc Tải

Trong hướng dẫn này, chúng ta sẽ khám phá cách sử dụng rơ-le bán dẫn (SSR) để điều khiển tải AC hoặc DC, chẳng hạn như bóng đèn. Rơ-le bán dẫn cho phép chuyển mạch tải điện an toàn và hiệu quả bằng tín hiệu điện áp thấp từ Arduino. Đến cuối hướng dẫn này, bạn sẽ có một thiết lập hoạt động có thể bật và tắt đèn theo các khoảng thời gian xác định.

single channel solid state relay

Để thực hiện dự án này, chúng ta sẽ sử dụng SSR, cụ thể là mẫu G3MB-202P, có thể xử lý tải lên đến 2A. Rơ-le sẽ được điều khiển bằng một chân kỹ thuật số từ bo mạch Arduino, cho phép chúng ta gửi tín hiệu để bật hoặc tắt tải. Dự án này không chỉ thực tế mà còn là một cách tuyệt vời để làm quen với việc làm việc với rơ-le và Arduino.

Để có giải thích trực quan chi tiết, hãy xem video đi kèm (trong video tại 00:00).

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

Trong dự án này, thành phần chính là rơ-le bán dẫn G3MB-202P. Rơ-le này cho phép bạn điều khiển tải điện áp cao bằng tín hiệu điện áp thấp. Nó hoạt động bằng cách sử dụng bộ cách ly quang để chuyển mạch mạch tải, cung cấp sự cách ly điện giữa phía điều khiển và phía tải. Rơ-le có ba chân: DC+, DC- và kênh đầu vào, kết nối với Arduino.

Khi tín hiệu đầu vào ở mức thấp (0V), rơ-le kích hoạt và cho phép dòng điện chạy qua tải. Ngược lại, khi tín hiệu đầu vào ở mức cao (5V), rơ-le tắt, cắt dòng điện đến tải. Cơ chế kích hoạt mức thấp này rất quan trọng để quản lý an toàn các thiết bị điện áp cao mà không cần tiếp xúc điện trực tiếp.

Chi tiết từ Bảng dữ liệu

Nhà sản xuấtOmron
Số hiệu linh kiệnG3MB-202P
Điện áp Logic/IO5 V
Điện áp cấp nguồn5–24 V
Dòng điện đầu ra (mỗi kênh)2 A
Dòng điện đỉnh (mỗi kênh)4 A
Hướng dẫn tần số PWMLên đến 1 kHz
Ngưỡng logic đầu vàoThấp: 0–1,5 V, Cao: 3–30 V
Sụt áp / RDS(on) / bão hòaTối đa 1,5 V
Giới hạn nhiệt độ–30 đến 100 °C
Kiểu đóng góiXuyên lỗ
Ghi chú / biến thểCó sẵn ở nhiều mức điện áp đầu vào khác nhau

  • Đảm bảo rơ-le được định mức cho tải bạn định điều khiển.
  • Sử dụng tản nhiệt phù hợp nếu hoạt động gần định mức dòng điện tối đa.
  • Kiểm tra kỹ hệ thống dây điện để tránh các vấn đề đảo cực.
  • Sử dụng tụ điện tách rời trên các đường nguồn.
  • Cẩn thận với đầu vào nổi; đảm bảo tín hiệu điều khiển được nối đất đúng cách.
  • Xác nhận tần số PWM nằm trong thông số kỹ thuật của rơ-le cho các ứng dụng chuyển mạch.

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

Arduino wiring for single channel solid state relay
Arduino wiring for single channel solid state relay

Việc đấu dây rơ-le bán dẫn rất đơn giản. Kết nối cực dương của rơ-le (DC+) với chân 5V trên Arduino. Cực âm (DC-) nên được kết nối với đất (GND) của Arduino. Chân đầu vào, điều khiển rơ-le, kết nối với chân kỹ thuật số 8 trên Arduino. Chân này sẽ gửi tín hiệu thấp hoặc cao để kích hoạt hoặc hủy kích hoạt rơ-le.

Ở phía tải, kết nối một dây từ bóng đèn AC đến đầu ra của rơ-le và dây còn lại với nguồn AC. Đảm bảo sử dụng các đầu nối phù hợp và đảm bảo tất cả các kết nối được chắc chắn để ngăn ngừa các nguy cơ điện.

Ví dụ Mã & Giải thích

Dưới đây là tổng quan ngắn về mã Arduino để điều khiển rơ-le bán dẫn:

int relayPin = 8; // đặt chân 8 cho đầu ra rơ-le

void setup() {
    Serial.begin(9600); // khởi tạo truyền thông nối tiếp
    pinMode(relayPin, OUTPUT); // đặt chân rơ-le làm đầu ra
}

Trong đoạn trích này, chúng ta định nghĩa relayPin là 8, tương ứng với chân kỹ thuật số kết nối với rơ-le. Hàm setup() khởi tạo truyền thông nối tiếp và đặt chân rơ-le làm đầu ra.

void loop() {
    digitalWrite(relayPin, LOW); // bật rơ-le
    Serial.println("Relay ON"); // xuất ra màn hình nối tiếp
    delay(2000); // chờ 2 giây
}

Trong hàm loop(), chúng ta bật rơ-le bằng cách đặt relayPin ở mức LOW, kích hoạt rơ-le và cho phép dòng điện chạy đến tải. Một thông báo được in ra màn hình nối tiếp để xác nhận.

    digitalWrite(relayPin, HIGH); // tắt rơ-le
    Serial.println("Relay OFF"); // xuất ra màn hình nối tiếp
    delay(2000); // chờ 2 giây
}

Tiếp theo, chúng ta tắt rơ-le bằng cách đặt relayPin ở mức HIGH, ngăn dòng điện chạy đến tải. Một lần nữa, chúng ta in thông báo ra màn hình nối tiếp để chỉ ra trạng thái của rơ-le. Quá trình này lặp lại vô hạn, bật và tắt rơ-le mỗi hai giây.

Để có mã Arduino hoàn chỉnh, vui lòng xem mã đầy đủ được tải bên dưới bài viết.

Trình diễn / Điều mong đợi

Khi mã được tải lên Arduino, bạn sẽ thấy rơ-le bật và tắt, làm bóng đèn kết nối bật và tắt mỗi hai giây. Nếu rơ-le không hoạt động như mong đợi, hãy kiểm tra các kết nối dây và đảm bảo rơ-le nhận đúng tín hiệu điều khiển. Các vấn đề phổ biến bao gồm đảo cực ở phía tải hoặc kết nối sai trên Arduino.

Để xác nhận trực quan thêm về hoạt động của rơ-le, hãy tham khảo video (trong video tại 06:00) nơi bóng đèn được hiển thị bật và tắt khi rơ-le kích hoạt.

Mốc thời gian Video

  • 00:00 - Giới thiệu về dự án
  • 01:30 - Thiết lập phần cứng
  • 03:15 - Giải thích mã nguồn
  • 05:45 - Trình diễn trực tiếp
  • 07:00 - Kết luận

Hình ảnh

single channel solid state relay
single channel solid state relay
single channel solid state relay
single channel solid state relay
Arduino wiring for single channel solid state relay
Arduino wiring for single channel solid state relay
59-This is the Arduino code for a 5V solid-state relay.
Ngôn ngữ: C++
/*
 * This is the Arduino code for a Solid State Relay
 * to control turning ON or OFF an AC or DC load
 * Watch the video https://youtu.be/64NatLeGsaE
 *  * 
 * Written by Ahmad Shamshiri for Robojax Video
 * Date: January 13, 2018, in Ajax, Ontario, Canada
 * Permission granted to share this code given that this
 * note is kept with the code.
 * Disclaimer: this code is "AS IS" and for educational purposes only.
 * 
 */


 // Introduction to a 5v Solid State relay.
int relayPin = 8;// set pin 8 for relay output

// setup code for Robojax Solid State Relay
void setup() {
    // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  Serial.println("Robojax Solid State Relay");
  pinMode(relayPin, OUTPUT);

}

// loop code for Robojax Solid State Relay
void loop() {

  // Turn the relay switch ON (Robojax.com/learn/arduino)
  digitalWrite(relayPin, LOW);// set relay pin to low 
  Serial.println("Relay ON");
  delay(2000);

   // Turn the relay switch OFF (Robojax.com/learn/arduino)
  digitalWrite(relayPin, HIGH);// set relay pin to HIGH
  Serial.println("Relay OFF");
  delay(2000);
}

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

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

Tập tin📁

Tập tin Fritzing