Nguyên lý hoạt động của màn hình được đề xuất, được tạo ra và xây dựng bởi Instructables dưới biệt danh alstroemeria, như sau: các phân đoạn được nâng cao bởi các bóng tối tạo ra một bóng, khiến chúng có thể nhìn thấy. Các phân đoạn còn lại, nằm trong cùng một mặt phẳng với nền, hợp nhất với nó.
Rõ ràng là
tự làm Hóa ra là đắt tiền, bởi vì đối với cô, chủ nhân có được tới 28 người như vậy:
Và một mô-đun quản lý kết nối với
Arduino như thế này:
Mô-đun đồng hồ thời gian thực (RTC) dựa trên nền tảng này dường như là một chi phí rất nhỏ.
Có được tất cả các thành phần cần thiết, cho đến nay, chủ nhân đặt chúng sang một bên để làm việc trên các mẫu để tạo ra phần cơ học của màn hình. Anh ta nhận được bốn tập tin:
1,
2,
3,
4. Trình hướng dẫn hiển thị các tệp 1 và 3 hai lần trên máy vẽ cắt, và 2 và 4, mỗi lần một, tất cả theo tỷ lệ 1: 1, và có sáu phần, một số trong đó giống với thẻ đục lỗ theo một cách nào đó. Bạn cũng có thể in, cũng theo tỷ lệ 1: 1 và với số lượng tương tự, và cắt thủ công.
Drillac cắt các chân kim loại rỗng có chiều dài 20 mm và các ống có đường kính ngoài lớn hơn một chút so với đường kính ngoài của pin với chiều dài 10 mm:
Dán các lớp với băng keo hai mặt dày, thêm ống:
Nó cho biết thêm các đoạn di động được dán vào các chân đi qua các ống, ở mặt sau dán keo đẩy dây thép vào cùng các chân, và đây là nơi các chân rỗng:
Nó uốn cong đẩy, dán servo và kết nối với chúng:
Đóng các servo với bảng đục lỗ còn lại:
Mô-đun điều khiển servo kết nối theo sơ đồ được đưa ra ở đầu bài viết. Các ổ đĩa được kết nối với mô-đun theo thứ tự tương ứng với các chỉ định phân đoạn tiêu chuẩn:
Mô-đun RTC kết nối như sau: SDA - chân 4 Arduino, SCL - chân 5, cộng với nguồn và dây chung - song song với các dòng Arduino tương ứng. Đây là kết quả:
Trình hướng dẫn đặt thời gian trong mô-đun RTC với bản phác thảo này (bạn cần thư viện RTClib):
#incolee
#inc loại "RTClib.h"
RTC_DS1307 RTC;
void setup () {
Nối tiếp.begin (57600);
Dây.begin ();
RTC.begin ();
if (! RTC.isricky ()) {
Serial.println ("RTC KHÔNG chạy!");
RTC.adjust (Ngày giờ (__ DATE__, __TIME__));
}
}
Sau đó, nó điền vào bản phác thảo chính yêu cầu cùng một thư viện:
#inc loại
#inc loại "RTClib.h"
RTC_DS1307 RTC;
segA ngắn = 0; // Hiển thị chân 14
segB ngắn = 1; // Hiển thị chân 16
segC ngắn = 2; // Hiển thị chân 13
segD ngắn = 3; // Hiển thị chân 3
segE ngắn = 4; // Hiển thị chân 5
segF ngắn = 5; // Hiển thị chân 11
segG ngắn = 6; // Hiển thị chân 15
segA_OUT ngắn = 110;
segB_OUT ngắn = 110;
segC_OUT ngắn = 110;
segD_OUT ngắn = 110;
segE_OUT ngắn = 110;
segF_OUT ngắn = 110;
segG_OUT ngắn = 110;
segA_IN ngắn = 90;
segB_IN ngắn = 90;
segC_IN ngắn = 90;
segD_IN ngắn = 90;
segE_IN ngắn = 90;
segF_IN ngắn = 90;
segG_IN ngắn = 90;
int TIME = 2000;
DateTime datePast;
DateTime dateNow;
// giữ nhà
void setup () {
Nối tiếp.begin (9600);
Dây.begin ();
RTC.begin ();
RTC.adjust (Ngày giờ (__ DATE__, __TIME__));
datePast = RTC.now ();
}
// vòng lặp chính
void loop () {
dateNow = RTC.now ();
if (! (datePast.hour () == dateNow.hour () && datePast.minute () == dateNow.hour ()))
{
displayNumber (dateNow.hour () * 100 + dateNow.minute ());
datePast = dateNow;
}
}
// Cho một số, chúng tôi hiển thị 10:22
// Sau khi chạy qua 4 số, màn hình bị tắt
void displayNumber (int toDisplay) {
for (int chữ số = 4; chữ số> 0; chữ số--) {
lightNumber (toDisplay% 10, chữ số);
toDisplay / = 10;
}
// bắt đầu chuyển động
Serial.print ("T"); Serial.println (TIME);
}
void di chuyển (int servo, int vị trí) {
Số sê-ri ("#");
Số sê-ri (servo);
Số sê-ri ("P");
Nối tiếp.print (vị trí);
}
// Cho một số, bật các phân đoạn đó
// Nếu số == 10, sau đó tắt số
void lightNumber (int numberToDisplay, int Seg) {
int offset = (đoạn - 1) * 7;
chuyển đổi (numberToDisplay) {
trường hợp 0:
di chuyển (segA + offset, segA_OUT);
di chuyển (segB + offset, segB_OUT);
di chuyển (segC + offset, segC_OUT);
di chuyển (segD + offset, segD_OUT);
di chuyển (segE + offset, segE_OUT);
di chuyển (segF + offset, segF_OUT);
di chuyển (segG + offset, segG_IN);
phá vỡ;
trường hợp 1:
di chuyển (segA + offset, segA_IN);
di chuyển (segB + offset, segB_OUT);
di chuyển (segC + offset, segC_OUT);
di chuyển (segD + offset, segD_IN);
di chuyển (segE + offset, segE_IN);
di chuyển (segF + offset, segF_IN);
di chuyển (segG + offset, segG_IN);
phá vỡ;
trường hợp 2:
di chuyển (segA + offset, segA_OUT);
di chuyển (segB + offset, segB_OUT);
di chuyển (segC + offset, segC_IN);
di chuyển (segD + offset, segD_OUT);
di chuyển (segE + offset, segE_OUT);
di chuyển (segF + offset, segF_IN);
di chuyển (segG + offset, segG_OUT);
phá vỡ;
trường hợp 3:
di chuyển (segA + offset, segA_OUT);
di chuyển (segB + offset, segB_OUT);
di chuyển (segC + offset, segC_OUT);
di chuyển (segD + offset, segD_OUT);
di chuyển (segE + offset, segE_IN);
di chuyển (segF + offset, segF_IN);
di chuyển (segG + offset, segG_OUT);
phá vỡ;
trường hợp 4:
di chuyển (segA + offset, segA_IN);
di chuyển (segB + offset, segB_OUT);
di chuyển (segC + offset, segC_OUT);
di chuyển (segD + offset, segD_IN);
di chuyển (segE + offset, segE_IN);
di chuyển (segF + offset, segF_OUT);
di chuyển (segG + offset, segG_OUT);
phá vỡ;
trường hợp 5:
di chuyển (segA + offset, segA_OUT);
di chuyển (segB + offset, segB_IN);
di chuyển (segC + offset, segC_OUT);
di chuyển (segD + offset, segD_OUT);
di chuyển (segE + offset, segE_IN);
di chuyển (segF + offset, segF_OUT);
di chuyển (segG + offset, segG_OUT);
phá vỡ;
trường hợp 6:
di chuyển (segA + offset, segA_OUT);
di chuyển (segB + offset, segB_IN);
di chuyển (segC + offset, segC_OUT);
di chuyển (segD + offset, segD_OUT);
di chuyển (segE + offset, segE_OUT);
di chuyển (segF + offset, segF_OUT);
di chuyển (segG + offset, segG_OUT);
phá vỡ;
trường hợp 7:
di chuyển (segA + offset, segA_OUT);
di chuyển (segB + offset, segB_OUT);
di chuyển (segC + offset, segC_OUT);
di chuyển (segD + offset, segD_IN);
di chuyển (segE + offset, segE_IN);
di chuyển (segF + offset, segF_IN);
di chuyển (segG + offset, segG_IN);
phá vỡ;
trường hợp 8:
di chuyển (segA + offset, segA_OUT);
di chuyển (segB + offset, segB_OUT);
di chuyển (segC + offset, segC_OUT);
di chuyển (segD + offset, segD_OUT);
di chuyển (segE + offset, segE_OUT);
di chuyển (segF + offset, segF_OUT);
di chuyển (segG + offset, segG_OUT);
phá vỡ;
trường hợp 9:
di chuyển (segA + offset, segA_OUT);
di chuyển (segB + offset, segB_OUT);
di chuyển (segC + offset, segC_OUT);
di chuyển (segD + offset, segD_OUT);
di chuyển (segE + offset, segE_IN);
di chuyển (segF + offset, segF_OUT);
di chuyển (segG + offset, segG_OUT);
phá vỡ;
trường hợp 10:
di chuyển (segA + offset, segA_IN);
di chuyển (segB + offset, segB_IN);
di chuyển (segC + offset, segC_IN);
di chuyển (segD + offset, segD_IN);
di chuyển (segE + offset, segE_IN);
di chuyển (segF + offset, segF_IN);
di chuyển (segG + offset, segG_IN);
phá vỡ;
}
}
Mọi thứ hoạt động:
Vì vậy, màn hình cơ học của một thiết kế không tầm thường đã sẵn sàng.