Giúp người học:
Hình dạng và các chân của một rơ le điện trong thực tế:
Trên rơ le 1 cặp tiếp điểm có 3 kí hiệu là: NO, NC và COM.
+) COM: chân chung.
+) NC: Chân thường đóng.
+) NO: Chân thường mở.
Bình thường, khi hai chân của cuộn dây chưa được cấp điện, chân COM sẽ chạm với chân NC (thường đóng). Khi cuộn dây được cấp điện, chân COM sẽ chuyển hướng chạm với chân NO (thường mở) của rơ le.
Từ các tính chất trên ta có thể điều khiển đóng cắt dòng điện qua các tiếp điểm thường đóng hoặc thường mở, dựa vào trạng thái được cấp điện hoặc chưa cấp điện vào cuộn dây rơ le.
Ứng dụng cơ bản của rơ le một cặp tiếp điểm:
Sử dụng nút nhấn để bật / tắt bóng đèn qua 1 cặp tiếp điểm (những chấm vàng biểu thị cho dòng điện đi qua).
Hiểu đơn giản thì chức năng chính của rơ le như 1 công tắc điện, đóng / cắt được các thiết bị công suất nhỏ và lớn. Nó được tích hợp trên mạch C88 với các khối rơ le và kèm theo led báo trạng thái (Led sáng khi rơ le được bật và Led tắt khi rơ le tắt) chỉ cần sử dụng các câu lệnh là có thể điều khiển dễ dàng được thay vì ta tác động bằng tay để điều khiển.
2.1.2. Địa chỉ phần cứng đầu ra rơ le mạch C88
Lưu ý thêm:
2.1.3. Một số câu lệnh sử dụng trong bài
/* Lưu ý cho người mới tiếp cận với lập trình: ngôn ngữ lập trình cho mạch C88 là C/C++ nên chúng ta cần lưu ý phân biệt chữ hoa chữ thường và các dấu chấm, dấu phẩy, dấu chấm phẩy... */
a. Hàm #define
Cấu trúc: #define [đặt tên hằng số] [giá trị của hằng số]
Ý nghĩa: Cho phép bạn đặt tên cho một hằng số nguyên hoặc hằng số thực.
Ứng dụng: Gán tên cho chân mong muốn.
Ví dụ: Khai báo tên P0 địa chỉ chân số 5
b. Hàm setup()
Cấu trúc: void setup() { // viết chương trình }
Ý nghĩa: Chương trình trong setup chỉ chạy 1 lần (khi khởi động hoặc reset mạch).
Ứng dụng: Khai báo, cấu hình các chân…
Ví dụ: Cấu hình chiều vào / ra cho đầu ra rơ le R0 (D4)
c. Hàm loop ()
Cấu trúc: void loop () { // viết chương trình }
Ý nghĩa: Chương trình đã viết nó sẽ chạy và lặp lại liên tục.
Ứng dụng: Chứa dữ liệu, chương trình đã viết.
Ví dụ: Viết chương trình bật đầu ra rơ le R0 (D4)
d. Hàm pinMode()
Cấu trúc: pinMode (chân, cấu hình);
Trong đó:
+) chân: Địa chỉ chân mà bạn muốn thiết lặp.
+) cấu hình: INPUT (Chiều vào) hoặc OUTPUT (Chiều ra).
Ý nghĩa: Cấu hình, thiết lập chân là đầu vào INPUT hoặc đầu ra OUTPUT.
Ứng dụng:
+) Đầu vào có thể là nút nhấn, công tắc, cảm biến…
+) Đầu ra có thể là led, bóng đèn, các thiết bị cần điều khiển…
Ví dụ: Cấu hình đầu ra rơ le R1 (D3) có chiều ra
e. Hàm digitalWrite ()
Cấu trúc: digitalWrite (chân, mức xuất tín hiệu);
Trong đó:
+) chân: Địa chỉ chân mà bạn muốn thiết lập.
+) mức xuất tín hiệu: có 2 mức là HIGH (5V) hoặc LOW (0V).
Ý nghĩa: Xuất tín hiệu ra các chân để điều khiển, có 2 giá trị là HIGH hoặc LOW.
Ứng dụng: Xuất tín hiệu điều khiển bật / tắt quạt, đèn…
Ví dụ:
Lưu ý:
Khi xuất tín hiệu mức HIGH (tương ứng với 5V) rơ le được bật và ngược lại khi xuất tín hiệu mức LOW (tương ứng với 0V) rơ le tắt.
f. Hàm delay()
Cấu trúc: delay(ms);
Trong đó: ms là thời gian (Sử dụng ở đây là mili giây).
Ý nghĩa: Dừng chương trình trong 1 khoảng thời gian (1000 mili giây = 1 giây).
Ứng dụng: Tạo trễ.
Ví dụ: Tạo trễ 5 giây
Bài 1.
Thiết kế, viết chương trình điều khiển 6 rơ le đóng tuần tự. Thời gian trễ để chuyển trạng thái là 500ms.
a. Sơ đồ lắp ráp
Cấp nguồn điện 7VDC đến 24VDC vào Vin.
b. Mã lệnh
//định nghĩa địa chỉ các chân với 1 cái tên
#define R0 4
#define R1 3
#define R2 2
#define R3 17
#define R4 16
#define R5 15
void setup() {
// cấu hình, thiết lập các chân là chiều ra, OUTPUT.
pinMode(R0, OUTPUT);
pinMode(R1, OUTPUT);
pinMode(R2, OUTPUT);
pinMode(R3, OUTPUT);
pinMode(R4, OUTPUT);
pinMode(R5, OUTPUT);
// tại hàm setup() các lệnh chỉ chạy qua duy nhất một lần.
digitalWrite(R0, HIGH); // xuất tín hiệu mức HIGH rơ le hoạt động, led sáng
delay(500); // tạo trễ 500ms tương ứng với 0,5s.
digitalWrite(R1, HIGH); // xuất tín hiệu mức HIGH rơ le hoạt động, led sáng
delay(500); // tạo trễ 500ms tương ứng với 0,5s.
digitalWrite(R2, HIGH); // xuất tín hiệu mức HIGH rơ le hoạt động, led sáng
delay(500); // tạo trễ 500ms tương ứng với 0,5s.
digitalWrite(R3, HIGH); // xuất tín hiệu mức HIGH rơ le hoạt động, led sáng
delay(500); // tạo trễ 500ms tương ứng với 0,5s.
digitalWrite(R4, HIGH); // xuất tín hiệu mức HIGH rơ le hoạt động, led sáng
delay(500); // tạo trễ 500ms tương ứng với 0,5s.
digitalWrite(R5, HIGH); // xuất tín hiệu mức HIGH rơ le hoạt động, led sáng
}
void loop() { // vòng lặp }
c. Giải thích chương trình (Ý nghĩa đoạn lệnh)
+) Chương trình thực thi bật tuần tự rơ le R0 đến rơ le R5 sử dụng lệnh:
digitalWrite(địa chỉ chân, HIGH);
+) Mỗi lần chuyển trạng thái tạo trễ 500ms sử dụng câu lệnh:
delay(500);
+) Chương trình được chạy một lần.
d. Kết quả (Mạch hoạt động thế nào)
Link video: https://youtu.be/bauf-sLV7KA
Bài 2.
Thiết kế, chế tạo hệ thống điều khiển 6 rơ le đóng / cắt tuần tự, tuần hoàn. Thời gian trễ để chuyển trạng thái là 500ms.
a. Sơ đồ lắp ráp
Cấp nguồn điện 7VDC đến 24VDC vào Vin.
b. Mã lệnh
//định nghĩa địa chỉ các chân với 1 cái tên
#define R0 4
#define R1 3
#define R2 2
#define R3 17
#define R4 16
#define R5 15
int a=0; // tạo 1 biến a
byte chan[6]={4,3,2,17,16,15}; // mảng byte có 6 số tương ứng 6 chân địa chỉ.
void setup() {
// cấu hình, thiết lập các chân là chiều ra, OUTPUT.
pinMode(R0, OUTPUT);
pinMode(R1, OUTPUT);
pinMode(R2, OUTPUT);
pinMode(R3, OUTPUT);
pinMode(R4, OUTPUT);
pinMode(R5, OUTPUT);
}
void loop() {
for(a = 0; a < 6; a++) // sử dụng hàm for cho chương trình ngắn gọn, đơn giản
{
digitalWrite(chan[a],HIGH); // xuất tín hiệu mức HIGH rơ le hoạt động, led sáng
delay(500); // tạo trễ 500ms
digitalWrite(chan[a],LOW); // xuất tín hiệu mức LOW rơ le không hoạt động, led tắt
delay(500); // tạo trễ 500ms
}
}
c. Giải thích chương trình (Ý nghĩa đoạn lệnh)
+) Ta sử dụng hàm for để làm điều kiện bật tắt rơ le, mỗi lần chuyển trạng thái được tạo trễ 500ms quá trình trên được thực hiện tuần tự từ rơ le R0 đến rơ le R5.
+) Chương trình được chạy lặp đi lặp lại.
d. Kết quả (Mạch hoạt động thế nào)
Link video: https://youtu.be/lDySTBr7C94
Thiết kế, chế tạo hệ thống điều khiển chữ “CHÚC MỨNG NĂM MỚI 2021”
a. Chuẩn bị
+) 1 mạch C88.
+) 5 bộ đèn nháy (có thể tham khảo loại dưới đây).
+) Bìa cát tông hoặc tấm bìa bằng vật liệu khác (Kích thước tùy theo các bạn muốn).
+) Máy khoan hoặc các vật dụng để khoét được lỗ.
b. Sơ đồ lắp ráp
- Thực hiện:
+) Vẽ chữ lên trên mặt tấm bìa.
+) Tiến hành khoét hoặc khoan lỗ trên đường chữ đã vẽ (kích cỡ vừa đủ để nhét bóng đèn vào).
+) Mỗi bộ đèn nháy ta sẽ dùng cho 1 chữ, cắm các đầu led vào các lỗ đã đục.
+) Mỗi 1 chữ sẽ có 2 dây nguồn, ta sẽ sử dụng nó để kết nối với các đầu ra rơ le trên mạch C88.
+) Phần đấu nối mạch điều khiển
c. Mã lệnh
#define R0 4 // Rơ le R0 điều khiển chữ “Chúc”
#define R1 3 // Rơ le R1 điều khiển chữ “Mừng”
#define R2 2 // Rơ le R2 điều khiển chữ “Năm”
#define R3 17 // Rơ le R3 điều khiển chữ “Mới”
#define R4 16 // Rơ le R4 điều khiển số “2021”
int a = 0; // tạo biến a = 0
int b = 0; // tạo biến b = 0
int c = 0; // tạo biến c = 0
byte chan[5] = {4, 3, 2, 17, 16}; //mảng byte có 6 số tương ứng 6 chân địa chỉ.
void chedo1() { // tạo 1 hàm con
// bật tất cả chữ rồi tắt
for (int d = 0; d < 3; d++) { // tạo vòng lặp chạy 3 lần
digitalWrite(R0, HIGH);
digitalWrite(R1, HIGH);
digitalWrite(R2, HIGH);
digitalWrite(R3, HIGH);
digitalWrite(R4, HIGH);
delay(2000);
digitalWrite(R0, LOW);
digitalWrite(R1, LOW);
digitalWrite(R2, LOW);
digitalWrite(R3, LOW);
digitalWrite(R4, LOW);
delay(1000);
}
void chedo2() { // tạo 1 hàm con
// thực hiện bật / tắt tuần tự từng chữ
for (a = 0; a < 5; a++)
{
digitalWrite(chan[a], HIGH);
delay(1000);
digitalWrite(chan[a], LOW);
delay(1000);
}
}
void chedo3() { // tạo 1 hàm con
// thực hiện bật tuần tự từng chữ
for (b = 0; b < 5; b++)
{
digitalWrite(chan[b], HIGH);
delay(1000);
}
}
void chedo4() { // tạo 1 hàm con
//Thực hiện tắt tuần tự
for (c = 0; c < 5; c++)
{
digitalWrite(chan[c], LOW);
delay(1000);
}
}
}
void setup() {
// cấu hình, thiết lập các chân là chiều ra, OUTPUT.
pinMode(R0, OUTPUT);
pinMode(R1, OUTPUT);
pinMode(R2, OUTPUT);
pinMode(R3, OUTPUT);
pinMode(R4, OUTPUT);
}
void loop() {
// khai báo các hàm đã tạo
chedo1();
delay(1000); // trễ 1 giây
chedo2();
delay(500); // trễ 0,5 giây
chedo3();
delay(500); // trễ 0,5 giây
chedo4();
delay(500); // trễ 0,5 giây
}
Kết luận: Đây là chương trình gợi ý các chế độ điều khiển nháy, bạn có thể dựa vào đó để tạo ra các hiệu ứng theo ý mình thích.
d. Kết quả (Mạch hoạt động thế nào)
Link video: https://youtu.be/cFTI2ufsDrg
Qua bài viết này chúng ta đã hiểu được rơ le dùng để làm gì, cũng như cách sử dụng mạch C88 để lập trình nó. Để ứng dụng làm các sản phẩm hay và hữu ích cho bản thân.