"16. Thiết kế Hệ thống đồng hồ báo giờ
- Hiển thị thông tin đề tài/thành viên nhóm và các thông báo khác trên LCD
- Sử dụng module thời gian thực để hiển thị thời gian thực ( 1 múi giờ )
- Chức năng hẹn giờ
- Chức năng bấm giờ (như đồng hồ thể thao)
- Sử dụng nút bấm để lựa chọn / thay đổi các chức năng" <CODE CHÍNH NẰM TRONG FILE "final_code" DEMO PROTEUS CHÍNH NẰM TRONG "final_demo"
Dự án Hệ thống Đồng hồ – Báo thức – Bấm giờ là một ứng dụng lập trình nhúng trên Arduino, sử dụng LCD 16x2, RTC DS1307, các nút nhấn vật lý và buzzer để xây dựng một thiết bị đa chức năng hiển thị thời gian.
Hệ thống cho phép:
- Hiển thị thời gian & ngày tháng thực
- Cài đặt và kích hoạt báo thức
- Bấm giờ (Stopwatch) với chức năng Start / Stop / Reset
- Hiển thị thông tin thành viên
- Điều khiển hoàn toàn bằng nút nhấn
Phù hợp cho:
- Đồ án Lập trình nhúng
- Thực hành Arduino – Embedded Systems
- Tham khảo thiết kế Finite State Machine (FSM) đơn giản
-
Làm quen với:
- Arduino & lập trình C/C++
- Giao tiếp I2C (RTC DS1307)
- Điều khiển LCD 16x2
-
Xử lý:
- Nút nhấn (debounce logic)
- Đa chế độ hoạt động (Mode)
-
Áp dụng tư duy state-based programming
- Arduino Uno
- LCD 16x2 (chế độ 4-bit)
- RTC DS1307
- Buzzer
- Nút nhấn (MODE, OK, UP)
- Điện trở, breadboard, dây nối
-
Arduino IDE
-
Thư viện:
Wire.hLiquidCrystal.hRTClib.h
| LCD | Arduino |
|---|---|
| RS | D2 |
| E | D3 |
| D4 | D4 |
| D5 | D5 |
| D6 | D6 |
| D7 | D7 |
| Thiết bị | Arduino |
|---|---|
| MODE Button | D12 |
| OK Button | D8 |
| UP Button | D10 |
| Buzzer | D13 |
Các nút sử dụng INPUT_PULLUP
| Mode | Chức năng |
|---|---|
CLOCK_MODE |
Hiển thị giờ – phút – giây & ngày tháng |
DISPLAY_MEMBER_MODE |
Hiển thị thông tin thành viên |
ALARM_MODE |
Cài đặt & bật/tắt báo thức |
STOPWATCH_MODE |
Bấm giờ (Start / Stop / Reset) |
Chuyển mode bằng nút MODE
-
Cài đặt giờ & phút
-
Bật / tắt báo thức
-
Khi đến giờ:
- LCD nhấp nháy
- Buzzer kêu liên tục
-
Nhấn MODE để tắt báo thức
-
OK: Start / Stop
-
UP: Reset (chỉ khi đang dừng)
-
Hiển thị:
- Phút : Giây : Mili-giây (100ms)
-
Ký hiệu:
>đang chạy#đang dừng
git clone https://github.com/htccnam/embedded_programming.gitHoặc tải Download ZIP từ GitHub.
- Mở Arduino IDE
- Mở file
.inotrong thư mục dự án
Vào:
Sketch → Include Library → Manage Libraries
Tìm và cài:
- RTClib
- LiquidCrystal
- Chọn Board: Arduino Uno
- Chọn Port
- Nhấn Upload
setup()– Khởi tạo LCD, RTC, chân I/Oloop()– Vòng lặp chính- Xử lý theo Mode
- Mỗi mode có hàm hiển thị riêng
- Sử dụng
enumđể quản lý trạng thái
-
Thời gian RTC được đồng bộ theo thời điểm biên dịch
-
Có thể mở rộng:
- Thêm EEPROM lưu báo thức
- Thêm chỉnh giờ bằng nút
- Thêm cảm biến nhiệt độ
- Thêm menu đa cấp
This project is licensed under the MIT License – free to use for learning and educational purposes.