Arduino UNO R4 Cảm Biến Cửa LED

Hướng dẫn này sẽ chỉ cho bạn cách điều khiển LED bằng Arduino UNO R4 và cảm biến cửa. Chúng ta sẽ khám phá hai cách sử dụng khác nhau:

Cách 1 - LED sáng khi cửa mở và tắt khi cửa đóng. Trạng thái LED sẽ đồng bộ với trạng thái cảm biến cửa. Cụ thể:

Cách 2 - Trạng thái LED thay đổi mỗi lần cửa mở. Chi tiết hơn:

Linh Kiện Cần Thiết

1×Arduino UNO R4 WiFi hoặc Arduino UNO R4 Minima
1×(Tùy chọn) DIYables STEM V4 IoT, tương thích với Arduino Uno R4 WiFi
1×Arduino UNO R4 Minima (Thay thế)
1×Cáp USB Type-C
1×Cảm biến cửa
1×LED Kit
1×LED (red)
1×LED Module
1×Điện trở 220 ohm
1×breadboard
1×Dây nối jumper
1×(Khuyến nghị) Screw Terminal Block Shield for Arduino UNO R4
1×(Khuyến nghị) Breadboard Shield for Arduino UNO R4
1×(Khuyến nghị) Enclosure for Arduino UNO R4
1×(Khuyến nghị) Power Splitter for Arduino UNO R4
1×(Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO

Or you can buy the following kits:

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

Về LED và Cảm Biến Cửa

Nếu bạn chưa quen thuộc với LED và cảm biến cửa (bao gồm pinout, hoạt động và lập trình), các hướng dẫn sau có thể giúp bạn:

Sơ Đồ Kết Nối

sơ đồ kết nối Arduino UNO R4 cảm biến cửa LED

This image is created using Fritzing. Click to enlarge image

Ứng Dụng 1 - Trạng thái LED đồng bộ với trạng thái cảm biến cửa

Code Arduino UNO R4

/* * Mã Arduino UNO R4 này được phát triển bởi newbiely.vn * Mã Arduino UNO R4 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-uno-r4/arduino-uno-r4-door-sensor-led */ #define DOOR_SENSOR_PIN 8 // The Arduino UNO R4 pin connected to door sensor's pin #define LED_PIN 2 // The Arduino UNO R4 pin connected to LED's pin int door_state; void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode pinMode(LED_PIN, OUTPUT); // set arduino pin to output mode } void loop() { door_state = digitalRead(DOOR_SENSOR_PIN); // read state if (door_state == HIGH) { Serial.println("The door is open");; digitalWrite(LED_PIN, HIGH); // turn on LED } else { Serial.println("The door is closed"); digitalWrite(LED_PIN, LOW); // turn off LED } }

Các Bước Thực Hiện

Thực hiện theo các hướng dẫn từng bước:

  • Nếu đây là lần đầu tiên bạn sử dụng Arduino Uno R4 WiFi/Minima, hãy tham khảo hướng dẫn về Arduino UNO R4 - Cài Đặt Phần Mềm.
  • Kết nối LED và cảm biến cửa với Arduino Uno R4 theo sơ đồ được cung cấp.
  • Kết nối board Arduino Uno R4 với máy tính của bạn bằng cáp USB.
  • Khởi động Arduino IDE trên máy tính của bạn.
  • Chọn board Arduino Uno R4 phù hợp (ví dụ: Arduino Uno R4 WiFi) và cổng COM.
  • Sao chép code ở trên và dán vào Arduino IDE
  • Nhấn nút Upload trên Arduino IDE để biên dịch và tải code lên Arduino UNO R4.
tải mã lên Arduino IDE
  • Mở và đóng cửa
  • Quan sát sự thay đổi trong trạng thái LED.

Bạn sẽ thấy rằng trạng thái LED đồng bộ với trạng thái cảm biến cửa.

Giải Thích Code

Hãy xem phần giải thích từng dòng có trong các dòng comment của source code!

Ứng Dụng 2 - Cảm Biến Cửa Chuyển Đổi LED

Code Arduino UNO R4 - Cảm Biến Cửa Chuyển Đổi LED

/* * Mã Arduino UNO R4 này được phát triển bởi newbiely.vn * Mã Arduino UNO R4 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-uno-r4/arduino-uno-r4-door-sensor-led */ #define DOOR_SENSOR_PIN 8 // The Arduino UNO R4 pin connected to door sensor's pin #define LED_PIN 2 // The Arduino UNO R4 pin connected to LED's pin int led_state = LOW; // the current state of LED int prev_door_state; // the previous state of door sensor int door_state; // 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(LED_PIN, OUTPUT); // set arduino pin to output mode door_state = digitalRead(DOOR_SENSOR_PIN); } void loop() { prev_door_state = door_state; // save the last state door_state = digitalRead(DOOR_SENSOR_PIN); // read new state if (prev_door_state == HIGH && door_state == LOW) { // state change: HIGH -> LOW Serial.println("The door closing is detectedd"); // toggle state of LED led_state = !led_state; // control LED arccoding to the toggled state digitalWrite(LED_PIN, led_state); } }

Giải Thích Code

Bạn có thể tìm thấy phần giải thích trong các dòng comment của code Arduino UNO R4 ở trên.

Trong code, biểu thức led_state = !led_state tương đương với đoạn code sau:

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

Các Bước Thực Hiện

  • Sao chép code và mở trong Arduino IDE.
  • Upload code lên Arduino UNO R4.
  • Mở và đóng cửa nhiều lần.
  • Quan sát sự thay đổi trong trạng thái LED.

Bạn sẽ thấy rằng trạng thái LED được chuyển đổi một lần mỗi khi cửa đóng.

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.

Bình Luận

Bài hướng dẫn liên quan