Arduino Cảm biến cửa và rơ-le bật/tắt

Trong Arduino - Cảm biến cửa - rơ-le, chúng ta đã học cách bật rơ-le khi cửa mở, và tắt rơ-le khi cửa đóng. Trong bài hướng dẫn này, chúng ta sẽ học cách chuyển trạng thái rơ-le mỗi khi cửa đóng.

Bằng cách kết nối rơ-le với bóng đèn, dải đèn LED, động cơ hoặc cơ cấu chấp hành... Chúng ta có thể dùng cảm biến cửa để bật/tắt bóng đèn, dải đèn LED, động cơ hoặc cơ cấu chấp hành...

Phần cứng cần chuẩn bị

1×Arduino Uno R3
1×USB 2.0 cable type A/B (for USB-A PC)
1×USB 2.0 cable type C/B (for USB-C PC)
1×cảm biến cửa
1×Relay
1×dây jumper
1×(Tùy chọn) Solenoid Lock
1×(Tùy chọn) 12V Power Adapter
1×(Tùy chọn) DC Power Jack
1×(Khuyến nghị) Screw Terminal Block Shield for Arduino Uno
1×(Khuyến nghị) Breadboard Shield for Arduino Uno
1×(Khuyến nghị) Enclosure for Arduino Uno
1×(Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về rơ-le và cảm biến cửa

Nếu bạn chưa biết về rơ-le và cảm biến cửa (sơ đồ chân, cách chúng hoạt động, cách lập trình ...), hãy tìm hiểu chúng trong các hướng dẫn dưới đây:

Sơ đồ đấu dây

sơ đồ đấu dây rơ-le cho cảm biến cửa Arduino

This image is created using Fritzing. Click to enlarge image

Mã Arduino - Cảm biến cửa bật/tắt rơ-le

/* * Mã Arduino này được phát triển bởi newbiely.vn * Mã Arduino này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/arduino/arduino-door-sensor-toggle-relay */ // constants won't change const int DOOR_SENSOR_PIN = 13; // Arduino pin connected to door sensor's pin const int RELAY_PIN = 3; // Arduino pin connected to relay's pin // variables will change: int relayState = LOW; // the current state of relay int lastDoorState; // the previous state of door sensor int currentDoorState; // the current state of door sensor void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode pinMode(RELAY_PIN, OUTPUT); // set arduino pin to output mode currentDoorState = digitalRead(DOOR_SENSOR_PIN); } void loop() { lastDoorState = currentDoorState; // save the last state currentDoorState = digitalRead(DOOR_SENSOR_PIN); // read new state if (lastDoorState == HIGH && currentDoorState == LOW) { // state change: HIGH -> LOW Serial.println("The door-closing event is detected"); // toggle state of relay relayState = !relayState; // control relay arccoding to the toggled state digitalWrite(RELAY_PIN, relayState); } }

Hướng dẫn từng bước

  • Kết nối Arduino với PC bằng cáp USB
  • Mở Arduino IDE, chọn board và cổng phù hợp
  • Sao chép mã ở trên và mở với Arduino IDE
  • Nhấp vào Tải lên nút trên Arduino IDE để tải mã lên Arduino
  • Di chuyển nam châm lại gần công tắc từ và sau đó di chuyển nó ra xa công tắc từ. Lặp lại nhiều lần
  • Quan sát sự thay đổi trạng thái của rơ-le

Giải thích mã nguồn

Bạn có thể tìm lời giải thích trong dòng chú thích của mã Arduino ở trên.

Trong mã, relayState = !relayState tương đương với đoạn mã sau:

if(relayState == LOW) relayState = HIGH; else relayState = LOW;

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.