Bộ đếm thời gian là một loại đồng hồ được sử dụng để đo khoảng thời gian. Có hai loại bộ đếm thời gian, một loại đếm ngược từ 0, để đo thời gian đã trôi qua, được gọi là Đồng hồ bấm giờ. Và, cái thứ hai đếm ngược từ một khoảng thời gian xác định do người dùng cung cấp, thường được gọi là Bộ đếm ngược.
Ở đây, trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách tạo Đồng hồ đếm ngược bằng Arduino. Ở đây chúng tôi không sử dụng bất kỳ mô-đun Đồng hồ thời gian thực (RTC) nào để xem giờ. Khoảng thời gian được cung cấp bởi người dùng với sự trợ giúp của Bàn phím và màn hình LCD 16x2. Và khi bộ đếm thời gian đạt đến 0, âm thanh cảnh báo sẽ được tạo ra với sự trợ giúp của Buzzer.
Vật liệu cần thiết
- Arduino UNO
- LCD 16 * 2
- Bàn phím ma trận 4 * 4
- Buzzer
- Nút bấm
- Chiết áp (10k)
- Điện trở (10k, 100 ohm)
- Kết nối dây
Sơ đồ mạch hẹn giờ đếm ngược Arduino
Arduino Uno được sử dụng ở đây làm bộ điều khiển chính. Bàn phím được sử dụng để cung cấp khoảng thời gian và màn hình LCD 16 * 2 được sử dụng để hiển thị đồng hồ đếm ngược. Nút bấm được sử dụng để bắt đầu thời gian. Kiểm tra tại đây cách giao diện Bàn phím 4x4 với Arduino và LCD 16x2 với Arduino.
Giải thích và mã hẹn giờ đếm ngược Arduino
Mã Bộ hẹn giờ Arduino hoàn chỉnh được đưa ra ở cuối Dự án này.
Trong đoạn mã dưới đây, chúng tôi đang khởi tạo các thư viện cho bàn phím và màn hình LCD và các biến được sử dụng trong mã.
#include
Bây giờ, trong đoạn mã dưới đây, chúng tôi đang khởi tạo số không. hàng và cột để xác định ma trận cho bàn phím.
const byte ROWS = 4; // Bốn hàng const byte COLS = 4; // Các phím char ba cột = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', ' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
Để kết nối bàn phím ma trận 4 * 4 với Arduino, chúng ta phải xác định các chân cho các hàng và cột. Vì vậy, trong đoạn mã dưới đây, chúng tôi đã xác định các chân cho Bàn phím cũng như LCD 16x2.
byte rowPins = {6, 7, 8, 9}; // Kết nối bàn phím ROW0, ROW1, ROW2 và ROW3 với các chân Arduino này byte colPins = {10, 11, 12, 13}; // Kết nối bàn phím COL0, COL1 và COL2 sang t LCD LiquidCrystal (A0, A1, 5, 4, 3, 2); // Tạo một đối tượng LC. Các thông số: (rs, enable, d4, d5, d6, d7)
Mã dưới đây được sử dụng để tạo bàn phím, Keypad kpd = Bàn phím (makeKeymap (phím), rowPins, colPins, ROWS, COLS);
Trong mã hàm void setFeedingTime () , sau khi nhấn nút ấn, chúng ta có thể nhập thời gian cho bộ đếm thời gian, sau đó sau khi nhập khoảng thời gian bộ đếm thời gian, chúng ta phải nhấn D để bắt đầu đếm ngược.
void setFeedingTime () {feed = true; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("Đặt thời gian cho ăn"); lcd.clear (); lcd.print ("HH: MM: SS"); lcd.setCursor (0,1); while (1) {key = kpd.getKey (); ký tự j; if (key! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (phím); r = phím-48; i ++; j ++; if (j == 2 - j == 5) {lcd.print (":"); j ++; } delay (500); } if (key == 'D') {key = 0; phá vỡ; }} lcd.clear (); }
Trong hàm void setup () , chúng tôi đã khởi tạo màn hình LCD và giao tiếp nối tiếp, đồng thời xác định các chân là INPUT và OUTPUT trong đoạn mã dưới đây.
void setup () {lcd.begin (16,2); Serial.begin (9600); pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A3, INPUT); pinMode (A4, OUTPUT); }
Hoạt động của Bộ đếm ngược Arduino này rất đơn giản nhưng mã hơi phức tạp. Mã được giải thích bằng các nhận xét trong mã.
Ban đầu, nó sẽ in “Bộ hẹn giờ Arduino” trên màn hình LCD cho đến khi bạn nhấn nút. Ngay sau khi bạn nhấn nút, nó sẽ yêu cầu nhập khoảng thời gian đếm ngược bằng cách gọi hàm “ setFeedingTime ”. Sau đó, bạn có thể nhập khoảng thời gian với sự trợ giúp của Bàn phím. Sau đó, bạn cần nhấn 'D' để lưu thời gian và bắt đầu đồng hồ đếm ngược. Ở đây trong hàm void loop () , chúng ta đã thực hiện một số tính toán để giảm thời gian từng giây và hiển thị các giá trị thích hợp của Giờ, Phút và Giây (HH: MM: SS) theo thời gian còn lại. Tất cả các mã được giải thích rõ ràng bằng các bình luận. Bạn có thể kiểm tra mã hoàn chỉnh và video minh họa bên dưới.
Khi bộ đếm thời gian về 0, bộ rung bắt đầu phát ra tiếng bíp và chỉ bíp trong 100 lần (theo mã). Để dừng bộ rung, hãy nhấn và giữ nút ấn. Bạn có thể sử dụng Nút ấn bất cứ lúc nào để dừng bộ đếm thời gian giữa các lần đếm.