Mục lục:

Đồng hồ nghỉ hưu / Đồng hồ đếm ngược / Dn: 4 bước (có hình ảnh)
Đồng hồ nghỉ hưu / Đồng hồ đếm ngược / Dn: 4 bước (có hình ảnh)

Video: Đồng hồ nghỉ hưu / Đồng hồ đếm ngược / Dn: 4 bước (có hình ảnh)

Video: Đồng hồ nghỉ hưu / Đồng hồ đếm ngược / Dn: 4 bước (có hình ảnh)
Video: Tạo đồng hồ đếm ngược trong bài giảng elearning 2024, Tháng bảy
Anonim
Đồng hồ nghỉ hưu / Đồng hồ đếm ngược / Dn
Đồng hồ nghỉ hưu / Đồng hồ đếm ngược / Dn

Tôi có một vài màn hình ma trận điểm LED 8x8 này trong ngăn kéo và đang suy nghĩ về việc phải làm gì với chúng. Lấy cảm hứng từ các tài liệu hướng dẫn khác, tôi có ý tưởng xây dựng một màn hình đếm ngược / lên để đếm ngược đến một ngày / giờ trong tương lai và nếu thời gian mục tiêu trôi qua, hãy đếm ngược từ đó. Tôi đã làm điều này bây giờ đồng hồ nghỉ hưu của tôi đang ở trên giá.

Ý tưởng đặt nó vào một cái chai là một sự tình cờ khi nghĩ về một cái vỏ. Những người khác đóng tàu vào một cái chai, tại sao không phải là một chiếc đồng hồ?

Tôi cũng muốn làm cho đồng hồ tuân theo thời gian tiết kiệm ánh sáng ban ngày và tất nhiên nhớ các cài đặt và thời gian khi được rút phích cắm. Tôi đang cấp nguồn cho đồng hồ qua USB, giúp nó có thể lập trình lại nếu bạn muốn làm điều gì đó khác biệt hoặc chỉ thêm các tính năng vào mã. Mã này khá đơn giản và cũng có thể sử dụng nhiều cách tối ưu hóa. Tôi đã không quan tâm tốt đến việc tiêu thụ RAM, tôi phải thừa nhận. Nếu tôi có thời gian và động lực, tôi sẽ quay lại với nó.

Quân nhu

1. Arduino Nano

2. RTC (Tôi đã sử dụng DS3231 phổ biến cũng có EEPROM)

3. Mô-đun ma trận điểm 12x 8x8. (Tôi đã có các mô-đun quad dễ xếp hàng hơn)

4. LDR để điều chỉnh độ sáng màn hình

5. Điện trở 10 kOhm

6. Tụ điện 5x 100 uF triệt tiêu xung đột từ màn hình

7. Để tăng độ tương phản của các mô-đun 8x8, tôi đã sử dụng "Window Film" màu tối. Màn hình hiển thị các đèn LED dưới dạng các chấm trắng nếu không sáng. Phim cách nhiệt biến nó thành một màu đen sáng bóng.

Bước 1: Kết nối các thành phần

Kết nối các thành phần
Kết nối các thành phần
Kết nối các thành phần
Kết nối các thành phần

Tôi đã sử dụng ba trong số các màn hình quad để lắp ráp màn hình. Để hiển thị ngày có dấu gạch chéo và thời gian có dấu hai chấm, chúng ta cần khoảng trống cho 8 ký tự. Sử dụng phông chữ 5x7 điển hình, chúng tôi cần sáu khối 8x8 mỗi hàng. Tôi cắt đôi một trong bốn khối và sắp xếp chúng thành hai hàng với sáu khối như được hiển thị trong sơ đồ breadboard.

Bước 2: Các bộ phận in 3D

Bộ phận in 3D
Bộ phận in 3D
Bộ phận in 3D
Bộ phận in 3D
Bộ phận in 3D
Bộ phận in 3D

Để giữ hai hàng của màn hình và đặt chúng vào trong chai, tôi đã in các vòng khoảng cách tròn cho khung hiển thị. Tôi đã thêm các tệp tôi đã sử dụng bên dưới. Để có thể in chúng mà không cần hỗ trợ, chúng được chia thành nhiều phần. Ảnh chụp màn hình hiển thị hai vòng được dán vào khung hiển thị. Nắp cổ chai có ba nút để chuyển đổi giữa các chế độ hiển thị và cài đặt thời gian hiện tại và thời gian mục tiêu. Nắp cổ chai tôi in TPU cho phép trượt cáp USB vào nắp mà không cần cắt các đầu nối và buộc nó xuống bằng một vài cuộn dây. Tôi quên đề cập rằng tôi đã sử dụng một chai rượu 1,5 L mà tôi đã cắt ở dưới cùng. Tất cả các bộ phận cần in đều vừa vặn trên khay máy in 20x20 cm (8x8 in).

Bước 3: Mã

Mã Arduino đang sử dụng một vài thư viện thường được sử dụng.

MD_MAX72xx

SPI

Dây điện

RTClib

Múi giờ

TimeLib

Có một số dòng trong tệp INO có thể cần thay đổi:

Dòng 38: #define HARDWARE_TYPE MD_MAX72XX:: FC16_HW <- phụ thuộc vào mô-đun 8x8 và hướng của nó

thay vì FC16_HW nó có thể là một trong:

- MD_MAX72XX:: PAROLA_HW

- MD_MAX72XX:: GENERIC_HW

- MD_MAX72XX:: ICSTATION_HW

- MD_MAX72XX:: FC16_HW

Mã đang sử dụng cài đặt cho giờ Trung tâm Hoa Kỳ và cần điều chỉnh cho các múi giờ khác:

Dòng 53/54:

TimeChangeRule myDST = {"CDT", Second, Sun, Mar, 2, -300}; // Giờ ban ngày UTC-5TimeChangeRule mySTD = {"CST", First, Sun, Nov, 2, -360}; // Giờ chuẩn UTC -6

Điều này rất dễ điều chỉnh. Tên CST / CDT chỉ là để tham khảo. Tôi không hiển thị ba chữ cái viết tắt, vì vậy nó không quan trọng. Các thông số tiếp theo đề cập đến việc chuyển đổi đang diễn ra vào ngày nào trong tháng. Việc điều chỉnh diễn ra trong vài phút, vì vậy các vị trí sử dụng điều chỉnh +/- 30 phút cũng sẽ hoạt động.

RTC đang chạy nội bộ trên UTC-Time cho phép thư viện múi giờ hoạt động như dự kiến. Bạn có thể thắc mắc tại sao mã lại tham chiếu đến chip DS1307 cũ hơn trái với chip đồng hồ mà tôi đã sử dụng, nhưng điều này không thành vấn đề. Thư viện đang hoạt động tốt với một trong hai chip. DS1307 có xu hướng trôi dạt hơn DS3132. DS3132 là đồng hồ được ưa thích. Đối với những người muốn thêm thời gian sử dụng Internet, ESP8266 sẽ thực hiện công việc khá dễ dàng. Điều này có thể làm cho RTC trở nên lỗi thời. Nếu bạn đang thực hiện những thay đổi này, hãy sử dụng Arduino EEPROM để lưu trữ thời gian đích, tôi đã sử dụng RTC EEPROM để làm như vậy.

Bước 4: Hoạt động và cài đặt

Hoạt động và Cài đặt
Hoạt động và Cài đặt
Hoạt động và Cài đặt
Hoạt động và Cài đặt
Hoạt động và Cài đặt
Hoạt động và Cài đặt

Có ba nút

1. Menu / cài đặt

2. Lên

3. Xuống

Nút menu cho phép quay vòng qua ba kiểu đánh máy hiển thị: Giờ hiện tại, Giờ mục tiêu, Giờ Delta. Giờ Delta hiển thị số ngày, HH / MM / SS giữa thời gian hiện tại và thời gian mục tiêu. Nó sẽ hiển thị t- và đếm ngược nếu mục tiêu là trong tương lai hoặc t + và đếm ngược nếu mục tiêu là trong quá khứ.

Để điều chỉnh thời gian hiện tại hoặc thời gian đích, hãy chọn hiển thị thời gian hiện tại hoặc thời gian đích. Để thay đổi thời gian, hãy giữ nút menu trong 2 giây và nhả ra để đưa bạn vào chế độ cài đặt. "/" Hoặc ":" lân cận sẽ chuyển thành "" để cho biết bạn đang điều chỉnh chữ số nào. Sử dụng các nút lên / xuống để điều chỉnh từng hh / mm / ss và mm / dd / yy. Tôi đã không thêm cài đặt để chuyển đổi giữa mm / dd / yy và dd / mm / yy, điều này cần thay đổi trong mã hoặc có thể ai đó sẵn sàng thêm tính năng này.

Bạn sẽ nhận thấy rằng nếu bạn bước phút trên 59 hoặc dưới 00, màn hình hiển thị giờ cũng sẽ điều chỉnh. điều này cũng đúng đối với giây, giờ và ngày thay đổi giá trị cao hơn tiếp theo nếu vượt dưới 0 hoặc cao hơn giá trị tối đa cho chữ số này. Tôi đã làm điều này để tránh lập trình các giới hạn khác nhau của các tháng riêng lẻ và nếu tháng Hai thì cần 29 ngày trong một năm nhuận. Điều chỉnh thời gian thực sự được thực hiện theo kỷ nguyên, giây kể từ tháng 1-1970.

Tôi đã thêm một video đơn giản để hiển thị số đếm. Tôi muốn biến những thứ này giống như một màn hình bánh xe quay. Nếu bạn muốn điều chỉnh thời lượng thay đổi, dòng 69 trong INO cung cấp cho bạn một số tùy chọn để tăng tốc hoặc làm chậm thay đổi. 120ms sẽ làm cho các chữ số cuộn đủ chậm vì nó sẽ là một bánh xe chạy liên tục.

Tôi hy vọng bạn thích hướng dẫn này.

Patrick Geschwindner

Đề xuất: