Arduino UNO R4 RTC
Hướng dẫn này sẽ chỉ bạn cách sử dụng Arduino UNO R4 với RTC (Real-Time Clock - Đồng hồ thời gian thực). Chi tiết, chúng ta sẽ học:
- Cách kết nối RTC của Arduino UNO R4 với pin dự phòng
- Cách lập trình Arduino UNO R4 để lấy ngày và giờ (giây, phút, giờ, ngày, tháng, năm) từ RTC
- Cách lập trình Arduino UNO R4 để cập nhật ngày và giờ cho RTC từ Internet qua NTP (Network Time Protocol)

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 (Có thể thay thế) | ||
| 1 | × | Cáp USB Type-C | ||
| 1 | × | Pin AA 1.5V | ||
| 1 | × | Hộp pin 2 AA | ||
| 1 | × | (Tùy chọn) 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ề Real-Time Clock trên Arduino UNO R4
Cả phiên bản Arduino UNO R4 Minima và WiFi đều có Real-Time Clock (RTC) tích hợp sẵn trong vi điều khiển chính. RTC này cho phép các dự án Arduino của bạn theo dõi ngày và giờ ngay cả khi board bị tắt nguồn tạm thời. Bạn có thể truy cập và điều khiển RTC bằng thư viện RTC có sẵn trong Arduino IDE khi bạn cài đặt gói board cho Arduino UNO R4. Thư viện này cho phép bạn đặt ngày và giờ hiện tại, đọc ngày và giờ hiện tại, và đặt báo thức cho thời gian cụ thể.
Tuy nhiên, có một điểm quan trọng cần xem xét về nguồn điện dự phòng:
- Arduino UNO R4 Minima: Arduino UNO R4 Minima không có pin dự phòng chuyên dụng cho RTC. Điều này có nghĩa là nếu board mất nguồn hoàn toàn, RTC sẽ reset và bạn cần đặt lại thời gian khi cấp nguồn trở lại.
- Arduino UNO R4 WiFi: Arduino UNO R4 WiFi không bao gồm pin dự phòng cho RTC. Tuy nhiên, nó cung cấp giải pháp sử dụng pin dự phòng ngoài cho RTC. Bạn có thể kết nối pin ngoài để cấp nguồn cho RTC trên Arduino UNO R4 WiFi qua chân VRTC (Voltage for Real-Time Clock). Bằng cách cung cấp điện áp ngoài (từ 1.6V đến 3.6V) cho chân này, bạn có thể cung cấp nguồn dự phòng cho RTC. Điều này đảm bảo đồng hồ tiếp tục chạy ngay cả khi nguồn điện chính bị tắt, cho phép bạn giữ lại cài đặt thời gian.
Bạn có thể cung cấp nguồn dự phòng cho RTC bằng hai pin AA với hộp pin, như được hiển thị trong sơ đồ đấu nối sau:

This image is created using Fritzing. Click to enlarge image
※ Lưu ý:
Nguồn pin đó chỉ dành cho RTC. Bạn cần cấp nguồn cho Arduino UNO R4 qua nguồn điện riêng biệt.
Cách Lập Trình Cho RTC Trên Arduino UNO R4
- Thêm thư viện:
- Khởi tạo RTC:
- Kiểm tra xem RTC đã được cấu hình chưa, nếu chưa thì đặt ngày và giờ.
- Hiển thị ngày và giờ từ module đồng hồ
Code Arduino UNO R4 – Cách lấy ngày và giờ
Các Bước Nhanh
Thực hiện theo hướng dẫn từng bước sau:
- 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.
- Nếu bạn sử dụng Arduino UNO R4 WiFi, kết nối Arduino UNO R4 WiFi với pin dự phòng theo sơ đồ được cung cấp.
- Kết nối board Arduino UNO R4 với máy tính bằng cáp USB.
- Khởi chạy Arduino IDE trên máy tính.
- Chọn board Arduino UNO R4 phù hợp (ví dụ: Arduino UNO R4 WiFi) và cổng COM.
- Copy code và dán vào Arduino IDE.
- Sửa thời gian trong code để khớp với thời gian hiện tại của bạn
- Nhấn nút Upload trong Arduino IDE để gửi code lên Arduino UNO R4.
- Mở Serial Monitor.
- Kiểm tra kết quả trên Serial Monitor.
Mọi thứ trông có vẻ ổn, nhưng chờ đã! Có thể có vấn đề trong các tình huống sau:
- Bạn sử dụng Arduino UNO R4 WiFi không có pin dự phòng hoặc Arduino UNO R4 Minima.
- Arduino mất nguồn tạm thời và khởi động lại. Arduino sau đó đặt thời gian hiện tại thành thời gian được chỉ định trong code, nhưng thời gian thực đã trôi qua. Điều này dẫn đến thông tin thời gian không chính xác.
Giải pháp cho vấn đề này:
- Sử dụng nguồn điện ổn định cho Arduino.
- Sử dụng pin dự phòng ổn định (chỉ hoạt động với UNO R4 WiFi).
- Cập nhật thời gian RTC từ Internet qua Network Time Protocol (NTP) mỗi khi Arduino khởi động lại (cần kết nối Internet).
Hãy xem cách sử dụng NTP để cập nhật thời gian trên RTC của Arduino UNO R4:
Code Arduino UNO R4 – Cập nhật thời gian RTC qua NTP
Các Bước Nhanh
- Mở Library Manager bằng cách nhấn vào biểu tượng Library Manager ở bên trái Arduino IDE.
- Tìm kiếm "NTPClient" và tìm NTPClient của Fabrice Weinberg.
- Nhấn nút Install để thêm thư viện NTPClient.

- Copy code và dán vào Arduino IDE.
- Sửa SSID và mật khẩu WiFi trong code để khớp với thông tin mạng của bạn
- Nhấn nút Upload trong Arduino IDE để gửi code lên Arduino UNO R4.
- Mở Serial Monitor.
- Kiểm tra kết quả trên Serial Monitor.
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.