Bài 13: Điều khiển động cơ quạt bằng nút nhấn sử dụng Arduino

Trong nội dung bài viết hôm nay mình sẽ hướng dẫn các bạn cách dùng rơ le để đóng cắt động cơ.
Qua bài viết các bạn có thể hiểu thêm về cấu tạo và nguyên lý hoạt động của Rơ le.
Chúng ta đi ngay vào bài viết nhé.
Cấu tạo Rơ le
Để có thể nắm được cấu tạo và hoạt động của rơ le các bạn đọc bài viết bên dưới nhé.

Sơ đồ nguyên lý

Các linh kiện cần thiết cho dự án
Tên linh kiện | Số lượng |
Arduino Uno R3 | 1 |
Dây cắm | 9 |
Breadboard | 1 |
Nút nhấn | 1 |
LED 5mm | 1 |
Trở 220R | 2 |
Relay | 1 |
Motor | 1 |
Fan | 1 |
Code
int buttonPin = 2; int relayPin = 3; int relayState = HIGH; int buttonState; int lastButtonState = LOW; long lastDebounceTime = 0; long debounceDelay = 50; void setup() { pinMode(buttonPin, INPUT); pinMode(relayPin, OUTPUT); digitalWrite(relayPin, relayState); } void loop() { int reading = digitalRead(buttonPin); if (reading != lastButtonState) { lastDebounceTime = millis(); } if ((millis() - lastDebounceTime) > debounceDelay) { if (reading != buttonState) { buttonState = reading; if (buttonState == HIGH) { relayState = !relayState; } } } // set the relay: digitalWrite(relayPin, relayState); lastButtonState = reading; }
Giải thích code
if (reading != lastButtonState) { lastDebounceTime = millis(); } if ((millis() - lastDebounceTime) > debounceDelay) { if (reading != buttonState) { ..... } }
Khi tín hiệu được trả về, chương trình sẽ không thực thi ngay lập tức mà sẽ kiểm tra tín hiệu của nút nhấn đã đúng chưa trong trường hợp đã nhấn sẽ cho chương trình hoạt động.
Lý do sao lại có đoạn kiểm tra này. Vì độ nảy của nút nhấn sẽ gây ra tín hiệu không chính xác trong quá trình hoạt động, vậy để khắc phục điều này thay cho phần cứng nên cần có một đoạn chương trình kiểm tra trong một khoảng thời gian để đảm bảo tín hiệu là đúng.
Lời kết
Tham gia cộng đồng Arduino KIT Để nhận được nhiều kiến thức bổ ích, các bạn Đăng ký để nhận thông báo khi có bài viết mới nhé. Tham gia Cộng đồng Arduino KIT để cùng nhau thảo luận và chia sẽ kiến thức về lập trình Arduino. Nếu các bạn thấy bài viết bổ ích nhớ Like và Share cho mọi người cùng học nhé. |
Chúc các bạn thành công.
Trân trọng.
Bài viết liên quan
- Bài 12: Thay đổi màu sắc LED RGB bằng biến trở sử dụng Arduino
- Bài 11: Điều khiển động cơ Servo bằng biến trở sử dụng Arduino
- Bài 10: Điều khiển động cơ RC Servo sử dụng Arduino
- Bài 9: Cảm biến ánh sáng (Quang trở) cách chia điện áp trong môi trường Arduino
- Bài 8: Cảm biến góc nghiêng sử dụng ngắt (INTERRUPT) trong môi trường Arduino
- Bài 7: Cảnh báo nhiệt độ (LM35) bằng còi báo sử dụng Arduino Uno
- Bài 6: Tạo âm thanh (Còi) bằng Arduino
- Bài 5: Thay đổi màu sắc Led RGB sử dụng Arduino
- Bài 4: PWM | Thay đổi ánh sáng của LED trên Arduino
- Bài 3: Sử dụng Arduino làm hệ thống đèn giao thông
- Bài 2: Chớp tắt LED trên Arduino Uno (Phần 2)
- Bài 1: Chớp tắt LED trên Arduino Uno