This tutorial is part of: Điều khiển rơle bằng Arduino
Đây là các video được nhóm lại, tất cả đều liên quan đến môn chạy tiếp sức. Các liên kết đến các video khác nằm bên dưới bài viết này.
Dùng nút nhấn Arduino để chuyển relay và bóng đèn AC
Trong hướng dẫn này, chúng ta sẽ học cách điều khiển bóng đèn AC hoặc đèn LED bằng nút nhấn và rơ le. Nút nhấn sẽ bật/tắt đèn, giữ nguyên trạng thái ngay cả khi nhả nút. Thiết lập này không chỉ thực tế mà còn là cách tuyệt vời để làm quen với rơ le và tải AC.

Khi tiếp tục, chúng ta sẽ đề cập đến các linh kiện cần thiết, hướng dẫn đấu dây và mã Arduino giúp dự án này khả thi. Hãy xem video liên quan để có hướng dẫn trực quan và giải thích chi tiết (trong video tại 00:00).

Giải thích phần cứng
Đối với dự án này, chúng ta sẽ sử dụng mô-đun rơ le, bo mạch Arduino và nút nhấn. Mô-đun rơ le hoạt động như một công tắc có thể điều khiển tải AC điện áp cao, chẳng hạn như bóng đèn, trong khi được điều khiển bởi tín hiệu điện áp thấp từ Arduino. Mô-đun rơ le có ba đầu nối chính để kết nối tải: Common (COM), Normally Open (NO) và Normally Closed (NC).
Nút nhấn đóng vai trò là giao diện người dùng để chuyển đổi trạng thái của rơ le. Nó được kết nối với một trong các chân kỹ thuật số trên Arduino. Khi nhấn nút, nó gửi tín hiệu đến Arduino, sau đó kích hoạt hoặc hủy kích hoạt rơ le tương ứng. Tương tác đơn giản này cho phép chúng ta điều khiển đèn một cách dễ dàng.
Chi tiết thông số kỹ thuật của rơ le
| Nhà sản xuất | Songle |
|---|---|
| Số hiệu linh kiện | SRD-05VDC-SL-C |
| Điện áp cuộn dây | 5 VDC |
| Điện áp chuyển mạch | AC 250 V / DC 30 V |
| Dòng điện chuyển mạch | Tối đa 10 A |
| Điện trở tiếp xúc | ≤ 100 mΩ |
| Điện trở cách điện | ≥ 1000 MΩ |
| Nhiệt độ hoạt động | -40 đến +70 °C |
| Bao bì | Mô-đun rơ le tiêu chuẩn |
- Đảm bảo rơ le có định mức phù hợp với tải bạn đang chuyển mạch.
- Giữ mô-đun rơ le được cấp nguồn 5 VDC.
- Sử dụng lớp cách điện phù hợp cho các kết nối AC.
- Thận trọng khi làm việc với nguồn AC; đảm bảo ngắt mạch trước khi thay đổi.
- Kết nối nút nhấn với chân đầu vào được chỉ định trên Arduino.
- Sử dụng chế độ INPUT_PULLUP cho chân nút nhấn để tránh cần điện trở ngoài.
- Kiểm tra hoạt động của rơ le với điện áp thấp hơn trước khi kết nối tải AC.
- Kiểm tra các kết nối để tránh đoản mạch.
Hướng dẫn đấu dây

Để đấu dây mô-đun rơ le, bắt đầu bằng cách kết nối chân VCC của rơ le với chân 5V trên Arduino và chân GND của rơ le với chân GND trên Arduino. Chân IN trên rơ le nên được kết nối với chân kỹ thuật số 10 trên Arduino. Chân này sẽ gửi tín hiệu để kích hoạt rơ le.
Đối với nút nhấn, kết nối một đầu với chân kỹ thuật số 2 trên Arduino. Đầu còn lại nên được kết nối với GND. Thiết lập này sử dụng điện trở kéo lên nội bộ của Arduino, vì vậy hãy đảm bảo chân được đặt ở chế độ INPUT_PULLUP trong mã. Khi nhấn nút, nó sẽ đưa chân xuống mức LOW, gửi tín hiệu đến Arduino.
Đối với tải AC, kết nối một dây với đầu COM trên rơ le và dây còn lại với đầu NO. Cấu hình này sẽ cho phép tải AC bật khi rơ le được kích hoạt. Luôn đảm bảo các kết nối AC được chắc chắn và cách điện.
Ví dụ mã và hướng dẫn chi tiết
Mã sau đây khởi tạo các chân cần thiết và đặt rơ le ở trạng thái tắt ban đầu. Nhấn nút sẽ chuyển đổi trạng thái của rơ le và cập nhật trạng thái đèn tương ứng.
int pbuttonPin = 2; // kết nối đầu ra với nút nhấn
int relayPin = 10; // Kết nối với rơ le (LED)
void setup() {
Serial.begin(9600);
pinMode(pbuttonPin, INPUT_PULLUP);
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, HIGH); // giữ tải TẮT lúc ban đầu
}
Trong mã, biến pbuttonPin được đặt ở chân 2, dùng cho nút nhấn. relayPin được đặt ở chân 10, điều khiển rơ le. Hàm digitalWrite được sử dụng để đảm bảo rơ le bắt đầu ở trạng thái TẮT.
void loop() {
val = digitalRead(pbuttonPin); // đọc giá trị nút nhấn
if(val == HIGH && lightON == LOW) {
pushed = 1 - pushed; // chuyển đổi trạng thái nhấn
delay(100);
}
if(pushed == HIGH) {
digitalWrite(relayPin, LOW); // bật rơ le
} else {
digitalWrite(relayPin, HIGH); // tắt rơ le
}
}
Phần mã này liên tục kiểm tra trạng thái của nút nhấn. Khi nút được nhấn, nó chuyển đổi biến pushed. Tùy thuộc vào giá trị của pushed, rơ le được bật hoặc tắt, từ đó điều khiển đèn hiệu quả. Vòng lặp này chạy liên tục, đảm bảo trạng thái đèn được cập nhật theo thời gian thực.
Để biết chi tiết mã đầy đủ, vui lòng tham khảo mã được tải bên dưới bài viết.
Trình diễn / Điều mong đợi
Khi bạn nhấn nút nhấn, rơ le sẽ kích hoạt, bật bóng đèn AC được kết nối. Nhấn nút lần nữa sẽ tắt bóng đèn. Màn hình nối tiếp sẽ hiển thị các thông báo trạng thái, cho biết đèn đang BẬT hay TẮT. Nếu gặp sự cố, hãy đảm bảo đấu dây đúng và kiểm tra các đầu vào trôi nổi có thể gây ra hành vi bất thường (trong video tại 10:00).
Mốc thời gian video
- 00:00 - Giới thiệu
- 01:30 - Tổng quan phần cứng
- 03:15 - Hướng dẫn đấu dây
- 05:45 - Hướng dẫn mã
- 08:00 - Trình diễn
This tutorial is part of: Điều khiển rơle bằng Arduino
- Mã Arduino và Video cho Rơ-le 5V Hai Kênh
- Điều khiển rơ le 5V bằng Arduino để điều khiển tải AC hoặc DC như bóng đèn hoặc động cơ
- Cảm biến cảm ứng 4 kênh TTP224 để bật/tắt tải AC/DC bằng rơ-le
- Sử dụng mô-đun rơ-le 5V (Kích hoạt Thấp) với Arduino
- Sử dụng cặp nhiệt điện loại K MAX6675 với Rơ-le và Màn hình hiển thị
- 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 mô-đun cảm ứng TTP223B và rơ-le để điều khiển tải AC/DC với Arduino
/*
* This is the Arduino code for a push button to turn ON and OFF a relay and AC bulb.
It toggles the bulb ON and OFF.
* The output pin 10 is connected to the relay.
* Watch video instructions on YouTube: https://youtu.be/7CCSRs5bvH0
* Be careful working with AC; it is dangerous. Disconnect from AC power when working and wear protective gloves when touching AC components.
* Full explanation of this code and wiring diagram is available in
* my Arduino Course at Udemy.com here: http://robojax.com/L/?id=62
* Written by Ahmad Shamshiri on December 14, 2017 in Ajax, Ontario, Canada
* in Ajax, Ontario, Canada. www.robojax.com
*
* Get this code and other Arduino codes from Robojax.com.
Learn Arduino step by step in a structured course with all materials, wiring diagrams, and libraries
all in one place. Purchase my course on Udemy.com: http://robojax.com/L/?id=62
If you found this tutorial helpful, please support me so I can continue creating
content like this. You can support me on Patreon: http://robojax.com/L/?id=63
or make a donation using PayPal: http://robojax.com/L/?id=64
* * 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 pbuttonPin = 2;// connect output to push button
int relayPin = 10;// Connected to relay (LED)
int val = 0; // push value from pin 2
int lightON = 0;//light status
int pushed = 0;//push status
void setup() {
// Robojax.com code and video tutorial for push button ON and OFF
Serial.begin(9600);
pinMode(pbuttonPin, INPUT_PULLUP);
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, HIGH);// keep the load OFF at the begining. If you wanted to be ON, change the HIGH to LOW
}
void loop() {
// Robojax.com code and video tutorial for push button ON and OFF
val = digitalRead(pbuttonPin);// read the push button value
if(val == HIGH && lightON == LOW){
pushed = 1-pushed;
delay(100);
}
lightON = val;
if(pushed == HIGH){
Serial.println("Light ON");
digitalWrite(relayPin, LOW);
}else{
Serial.println("Light OFF");
digitalWrite(relayPin, HIGH);
}
// Robojax.com code and video tutorial for push button ON and OFF
delay(100);
}
Tài nguyên & tài liệu tham khảo
Tập tin📁
Không có tệp nào khả dụng.