Tải bản đầy đủ (.pdf) (10 trang)

Hướng dẫn cho môđun chuyển tiếp với Arduino

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (579.32 KB, 10 trang )

Hướng dẫn cho mô-đun chuyển tiếp với Arduino
Bài viết này hướng dẫn cách điều khiển điện áp nguồn với Arduino bằng mô-đun rơle.
Chúng tôi giới thiệu ngắn gọn về mô-đun chuyển tiếp và xây dựng một ví dụ dự án đơn
giản với Arduino. Ví dụ chúng tơi sẽ xây dựng cho thấy cách điều khiển mô-đun rơle
bằng Arduino và cảm biến chuyển động PIR.

Đến cuối hướng dẫn này, bạn sẽ có thể điều khiển bất kỳ thiết bị điện tử nào bằng
Arduino của mình bằng mơ-đun chuyển tiếp.

Giới thiệu mơ-đun chuyển tiếp
Rơle là một công tắc hoạt động bằng điện có thể bật hoặc tắt, cho phép dịng điện đi qua
hoặc khơng và có thể được điều khiển bằng điện áp thấp, giống như 5V được cung cấp
bởi các chân Arduino.
Điều khiển mô-đun chuyển tiếp bằng Arduino cũng đơn giản như kiểm soát bất kỳ đầu ra
nào khác như chúng ta sẽ thấy sau này.

1/10


Mơ-đun rơle này có hai kênh (những hình khối màu xanh lam đó). Có những mơ hình
khác với một, bốn và tám kênh. Mô-đun này phải được cấp nguồn với 5V, phù hợp để sử
dụng với Arduino. Có các mơ-đun rơle khác được cấp nguồn bằng 3.3V, lý tưởng cho
ESP32, ESP8266 và các vi điều khiển khác.
Nhận mô-đun chuyển tiếp:

Sơ đồ chân rơle
Hình dưới đây cho thấy sơ đồ chân mơ-đun rơle.

Sáu chân ở phía bên trái của mơ-đun rơle kết nối điện áp cao và các chân ở phía bên
phải kết nối thành phần yêu cầu điện áp thấp — các chân Arduino.


Kết nối điện áp lưới
Phía điện áp cao có hai đầu nối, mỗi đầu nối có ba ổ cắm: chung (COM), thường đóng
(NC) và thường mở (NO).

2/10


COM: chân chung
NC (Thường đóng): cấu hình thường đóng được sử dụng khi bạn muốn rơle được
đóng theo mặc định, có nghĩa là dịng điện đang chạy trừ khi bạn gửi tín hiệu từ
Arduino đến mơ-đun rơle để mở mạch và dừng dịng điện.
NO (Thường mở): cấu hình thường mở hoạt động theo cách khác: rơle ln mở,
do đó mạch bị hỏng trừ khi bạn gửi tín hiệu từ Arduino để đóng mạch.
Nếu bạn chỉ muốn thỉnh thoảng thắp đèn, tốt hơn là sử dụng cấu hình mạch hở bình
thường.

Ghim dây điện
Phía điện áp thấp có một bộ bốn chân và một bộ ba chân.

3/10


Bộ ở bên phải bao gồm VCC và GND để cấp nguồn cho mô-đun và đầu vào 1 (IN1) và
đầu vào 2 (IN2) để điều khiển rơle dưới cùng và trên cùng, tương ứng.
Bộ chân thứ hai bao gồm các chân GND, VCC và JD-VCC. Chân JD-VCC cấp nguồn
cho nam châm điện của rơle.
Lưu ý: lưu ý rằng mơ-đun có nắp jumper kết nối các chân VCC và JD-VCC; cái được
hiển thị ở đây có màu xanh lam, nhưng của bạn có thể có màu khác. Nắp jumper cho
phép bạn chọn xem mạch có được kết nối vật lý với mạch Arduino hay khơng và bạn có
thể chọn bật nó hay không. Khi bật nắp nhảy, các chân VCC và JD-VCC được kết nối.

Điều đó có nghĩa là nam châm điện rơle được cấp nguồn trực tiếp từ chân nguồn của
Arduino, vì vậy mơ-đun rơle và mạch Arduino khơng bị cách ly vật lý với nhau (đây là cấu
hình chúng tơi sẽ sử dụng). Nếu khơng có nắp nhảy, bạn cần cung cấp một nguồn năng
lượng độc lập để cấp nguồn cho nam châm điện của rơle thông qua chân JD-VCC. Cấu
hình đó cách ly vật lý các rơle khỏi Arduino với bộ ghép quang tích hợp của mơ-đun.
Các kết nối giữa mô-đun chuyển tiếp và Arduino thực sự đơn giản:
GND: đi xuống đất
IN1: điều khiển rơle đầu tiên (nó sẽ được kết nối với chân kỹ thuật số Arduino)
IN2: điều khiển rơle thứ hai (nó nên được kết nối với chân kỹ thuật số Arduino nếu
bạn đang sử dụng rơle thứ hai này. Nếu không, bạn không cần kết nối nó)
VCC: đi đến 5V

Ví dụ: Điều khiển đèn bằng mô-đun rơle và cảm biến chuyển động
PIR
4/10


Trong ví dụ này, chúng tơi tạo ra một đèn nhạy cảm chuyển động. Một đèn sáng lên trong
10 giây mỗi khi phát hiện chuyển động.
Chuyển động sẽ được phát hiện bằng cảm biến chuyển động PIR. Nếu bạn không quen
thuộc với cảm biến chuyển động PIR, bạn có thể đọc bài sau:
Arduino với cảm biến chuyển động PIR
Để điều khiển đèn với điện áp lưới, chúng tôi sẽ sử dụng mơ-đun rơle trong cấu hình mở
bình thường.

Cảnh báo an tồn
Trước khi tiếp tục dự án này, tơi muốn cho bạn biết rằng bạn đang xử lý điện áp nguồn.
Vui lịng đọc kỹ cảnh báo an tồn bên dưới.
Cảnh báo: khi bạn đang thực hiện các dự án được kết nối với điện áp nguồn, bạn thực
sự cần biết mình đang làm gì, nếu khơng bạn có thể tự gây sốc. Đây là một chủ đề

nghiêm túc và chúng tôi muốn bạn được an tồn. Nếu bạn khơng chắc chắn 100%
những gì bạn đang làm, hãy tự giúp mình và đừng chạm vào bất cứ thứ gì. Hỏi ai đó biết!

Các bộ phận cần thiết
Dưới đây là các phần cần thiết cho ví dụ này:
Mơ-đun rơle
Arduino UNO - đọc Bộ dụng cụ khởi động Arduino tốt nhất
Cảm biến chuyển động PIR
Bộ dây đèn (xem trên eBay)
5/10



Sao chép mã sau vào Arduino IDE của bạn và tải nó lên bảng Arduino của bạn.
Cảnh báo: bạn khơng nên tải lên mã mới trong khi Arduino của bạn được kết nối với
rơle.

6/10


/*********

Rui Santos

Complete project details at
*********/






// Relay pin is controlled with D8. The active wire is connected to Normally
Closed and common

int relay = 8;

volatile byte relayState = LOW;

// PIR Motion Sensor is connected to D2.

int PIRInterrupt = 2;

// Timer Variables

long lastDebounceTime = 0;

long debounceDelay = 10000;

void setup() {

// Pin for relay module set as output

pinMode(relay, OUTPUT);

digitalWrite(relay, HIGH);

// PIR motion sensor set as an input

pinMode(PIRInterrupt, INPUT);


// Triggers detectMotion function on rising mode to turn the relay on, if the
condition is met

attachInterrupt(digitalPinToInterrupt(PIRInterrupt), detectMotion, RISING);

// Serial communication for debugging purposes

Serial.begin(9600);

}

void loop() {

// If 10 seconds have passed, the relay is turned off

if((millis() - lastDebounceTime) > debounceDelay && relayState == HIGH){

digitalWrite(relay, HIGH);

relayState = LOW;

Serial.println("OFF");

}

delay(50);

}

void detectMotion() {


Serial.println("Motion");

if(relayState == LOW){

digitalWrite(relay, LOW);

}

relayState = HIGH;

Serial.println("ON");

lastDebounceTime = millis();

}


Xem mã thô
Cách mã hoạt động

7/10


Đầu tiên, chúng ta tạo các biến để giữ chân mà chân IN1 rơle được kết nối và để lưu
trạng thái rơle:
int relay = 8;

volatile byte relayState = LOW;


Cảm biến chuyển động PIR được kết nối với chân 2:
int PIRInterrupt = 2;

Chúng ta cần tạo một số biến phụ trợ để xử lý bộ hẹn giờ với cảm biến chuyển động PIR.
Biến DebounceTime cuối cùng lưu thời gian chuyển động cuối cùng được phát hiện.
DebounceDelay tiết kiệm bao nhiêu thời gian đèn nên duy trì sau khi chuyển động được
phát hiện (ở đây chúng tôi đang đặt 10 giây = 10000 mili giây)
long lastDebounceTime = 0;

long debounceDelay = 10000;

Trong setup(), chúng ta đặt relay làm OUTPUT và tắt nó theo mặc định:
pinMode(relay, OUTPUT);

digitalWrite(relay, HIGH);

Bởi vì chúng tơi đang sử dụng cấu hình mở bình thường, khơng có tiếp xúc giữa các ổ
cắm COM và NO trừ khi bạn kích hoạt rơle. Rơle được kích hoạt khi đầu vào xuống dưới
khoảng 2 V. Điều đó có nghĩa là nếu bạn gửi tín hiệu THẤP từ Arduino, rơle sẽ bật và
nếu bạn gửi tín hiệu CAO, rơle sẽ tắt; Nó hoạt động với logic đảo ngược.
Đặt cảm biến chuyển động PIR làm ngắt:
pinMode(PIRInterrupt, INPUT);

// Triggers detectMotion function on rising mode to turn the relay on, if the
condition is met

attachInterrupt(digitalPinToInterrupt(PIRInterrupt), detectMotion, RISING);

Bất cứ khi nào cảm biến chuyển động PIR được kích hoạt, nó gọi hàm detectMotion()
được khai báo ở cuối mã để bật rơle:

void detectMotion() {

Serial.println("Motion");

if(relayState == LOW){

digitalWrite(relay, LOW);

}

relayState = HIGH;

Serial.println("ON");

lastDebounceTime = millis();

}

Trong vịng lặp (), chúng tơi kiểm tra xem 10 giây đã trôi qua kể từ khi rơle được bật
chưa. Nếu điều kiện đó là đúng, chúng ta có thể tắt rơle.

8/10


if((millis() - lastDebounceTime) > debounceDelay && relayState == HIGH){

digitalWrite(relay, HIGH);

relayState = LOW;


Serial.println("OFF");

}


Lắp ráp tất cả các bộ phận như thể hiện trong sơ đồ.
Cảnh báo: không chạm vào bất kỳ dây nào được kết nối với điện áp nguồn. Ngoài ra,
hãy chắc chắn rằng bạn đã siết chặt tất cả các ốc vít của mơ-đun rơle.

Đèn được kết nối với rơle bằng cấu hình mở bình thường. Arduino điều khiển rơle thông
qua chân 8 (chân 8 được kết nối với chân IN1 rơle). Cuối cùng, cảm biến chuyển động
PIR được kết nối với chân 2.

Cuộc biểu tình
Sau khi tải lên mã và nối dây mạch, bạn có thể kiểm tra thiết lập của mình.
Khi phát hiện chuyển động, đèn của bạn sáng lên. Nếu khơng có chuyển động trong 10
giây, đèn sẽ tắt.

9/10


Tổng kết
Điều khiển mô-đun chuyển tiếp bằng Arduino cũng đơn giản như điều khiển đầu ra - bạn
chỉ cần gửi tín hiệu CAO hoặc THẤP bằng chân kỹ thuật số Arduino. Với mơ-đun rơle,
bạn có thể điều khiển hầu hết mọi thiết bị điện tử AC (không chỉ đèn).

10/10




×