Mục lục:
Video: Wort-Uhr: 5 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:30
Xin chào cùng nhau!
Đây sẽ là hướng dẫn đầu tiên của tôi và nếu bạn có bất kỳ ý tưởng nào về cách cải thiện nó hoặc làm cho nó dễ hiểu hơn, vui lòng liên hệ với tôi!
À, lúc đầu, loại "đồng hồ" này không phải là ý tưởng của tôi! Tôi đã thấy rất nhiều sự cố trên internet và chúng có thể được đặt hàng chỉ với một vài đô la trong các cửa hàng web khác nhau. Nhưng tôi không muốn mua một cái, tôi muốn làm một cái của riêng mình để học và hiểu nó hoạt động như thế nào.
Một lời gửi đến các thành viên "không phải người Đức" … Xin lỗi vì đây chỉ là "German Wort Uhr". Nó có thể dễ dàng chuyển đổi sang tiếng Anh hoặc bất kỳ ngôn ngữ nào khác, nhưng vì tôi là người Đức nên tôi đã tạo nó bằng ngôn ngữ của mình. Nếu bạn cần hỗ trợ về ngôn ngữ của mình, hãy liên hệ với tôi và tôi sẽ cố gắng giúp bạn.
Vậy hãy bắt đầu…
Bước 1: Sơ đồ
Sơ đồ là thẳng về phía trước và nếu hình ảnh là xấu để đọc, thì cũng có một tệp PDF.
Hãy bắt đầu ở góc dưới cùng bên trái. Có một bộ nguồn đơn giản sử dụng LM7805 để tạo ra đầu ra 5V ổn định cho PIC, thanh ghi dịch chuyển (74HC164) và chip thời gian thực DS3231. Tất cả các đèn LED cũng được cung cấp từ bộ phận này. D22 ở đầu bên phải chỉ để chỉ nguồn điện và có thể dễ dàng tách rời nếu không muốn.
Bạn có thể sử dụng bất kỳ nguồn điện DC nào cho đồng hồ dưới 40V, nhưng sau đó bạn nên chọn giá trị thích hợp cho C7. Nó phải có định mức điện áp ít nhất gấp đôi điện áp đầu vào và hãy nhớ rằng bạn đang tạo ra nhiệt trong LM7805, vì vậy bạn nên cố gắng giữ điện áp đầu vào càng thấp càng tốt vì mọi thứ khác chỉ là lãng phí năng lượng. Phù hợp nhất là một cái gì đó giữa 9V một 12V DC.
Đừng bận tâm về cực của nguồn điện của bạn… MOSFET kênh p (Q1) hoạt động như một bộ bảo vệ phân cực giả và đồng hồ sẽ không hoạt động và không bị bất kỳ hư hỏng nào. Bạn có thể kiểm tra điều này trên đèn LED "nguồn" D22 nếu được gắn.
Ở phía bên phải của giản đồ là các thanh ghi dịch chuyển ra song song nối tiếp. Tôi quyết định sử dụng chúng vì tôi không muốn sử dụng một PIC khổng lồ với rất nhiều I / O-Ports. Tôi muốn sử dụng một cái nhỏ hơn và tôi vẫn còn một số 16F1829 ở nhà nên sự lựa chọn đã rõ ràng. Dữ liệu (IN_1, IN_2 và IN_3) được cung cấp bởi PIC (xem phần mã bên dưới) và REGISTER_CLK cũng có. Để đơn giản trong mã và bố trí PCB của tôi, tôi đã sử dụng hai trong số 74HC164 cho giờ và cuối cùng cho "logic".
Ở góc trên bên trái là PIC và tất cả các bộ phận cần thiết. Tôi đã sử dụng đồng hồ bên trong nên không cần sử dụng hệ điều hành. Chỉ có ba điện trở cho SCL, SDA và MCLR. Đối với thực tế là tôi đã sử dụng 32kHz như một dấu hiệu của "giây chính xác", không cần một tần số khá ổn định và chính xác cho PIC.
Ở giữa có DS3231 với tối thiểu các bộ phận bên ngoài. Trên thực tế, tôi chỉ sử dụng đầu vào SDA và SCL để giao tiếp qua I²C và đầu ra 32kHZ làm tham chiếu xung nhịp bên ngoài cho Timer1 của PIC16F1829. Đối với đầu ra này, biểu dữ liệu cho biết đó là một điện trở kéo lên bên ngoài cần thiết. Các kết quả đầu ra khác mà tôi không sử dụng trong dự án này và chúng không được kết nối với nhau.
Cũng ở giữa, các đèn LED… Như bạn có thể đọc trong sơ đồ, tôi đã sử dụng đèn LED màu xanh lam (loại có vỏ trong) và giá trị điện trở 1k Ohms. Nếu bạn có ý định tự làm dự án này, bạn nên chọn giá trị của các điện trở này theo màu sắc và loại đèn LED bạn chọn. Cũng nên ghi nhớ nơi bạn muốn đồng hồ được thiết lập. Một người của tôi đang đứng trong phòng ngủ của tôi, do đó tôi không muốn đèn LED quá sáng và đã chọn một giá trị lớn hơn cho các điện trở. Thực hiện một số thử trên bảng mạch có đèn LED và các giá trị điện trở trước khi gắn chúng vào PCB.
Bước 2: Bố cục
Sau khi hoàn thành sơ đồ đã đến lúc định tuyến PCB. Đối với điều đó, tôi đã sử dụng KiCAD (cho cả sơ đồ). Không có nhiều điều để nói, chỉ cần định tuyến các dòng.
Đối với thực tế là tôi đã tự mình in vỏ của đồng hồ, điều khá quan trọng là vị trí của các đèn LED trên lớp trên cùng. Tôi chỉ đặt đèn LED và điện trở ở lớp trên cùng, bởi vì tôi đã đặt hàng PCB của mình được gắn một phần (tất cả các bộ phận SMD) và bởi vì công ty mà tôi chọn loại đó chỉ đặt các bộ phận ở một mặt chứ không phải hai mặt.
Bạn có thể thấy cách đặt trong hai bức tranh 3 chiều mà tôi đã tạo ra từ KiCAD.
Nếu bạn quan tâm… Có thể xuất PCB KiCAD sang Eagle và sau đó việc xây dựng vỏ máy khá dễ dàng, vì bạn có tài liệu tham khảo từ PCB.
Bước 3: "Logic" của "Wort-Uhr"
Phần quan trọng nhất của dự án này là mã cho PIC…
Lúc đầu, tìm ra "logic" của thời gian nói trong tiếng Đức và dịch nó sang mã.
Rất tiếc, không thể tải trực tiếp tệp Excel lên, nhưng tôi hy vọng bản xuất PDF đủ đọc cho bạn. Nếu không, vui lòng liên hệ với tôi và tôi sẽ gửi cho bạn tệp Excel gốc. Trong bản PDF, bạn có thể thấy cách tôi thiết lập logic cho đồng hồ của mình. Bạn có thể thấy cách tôi đi qua các bước thời gian khác nhau và cách viết chính tả. Tính toán bên trong mã (chủ yếu là các câu lệnh if-else) có thể được lấy từ thông tin ở phía bên phải của bảng. Một phần cho phút và một phần cho giờ.
Như bạn có thể thấy, đây không phải là điều kỳ diệu và có thể dễ dàng được mã hóa bằng C. Điểm "khó nhất" bên trong logic là cách xử lý giờ như bạn có thể thấy trong tệp chỉ hiển thị vào đầu một giờ, giờ thực tế mới được hiển thị.. Trong tiếng Đức (có thể đây chỉ là một thứ cụ thể của vùng Bavaria), "giờ tiếp theo" được sử dụng khá sớm.
Để mã hóa, tôi đã sử dụng MPLABX làm IDE mà tôi lựa chọn.
Bước 4: Đoạn mã
Tôi sẽ không đăng mã của mình ở đây, nhưng nếu bạn có ý định viết mã của riêng mình, tôi sẽ cung cấp cho bạn một số gợi ý về những gì tôi đã "vấp phải" trong quá trình phát triển…
Đầu tiên, "đăng ký" - điền:
Nếu bạn chuyển dữ liệu mới đến các thanh ghi quá thường xuyên và trong chu kỳ quá ngắn, tôi đã thực hiện tốn kém, rằng các đèn LED bắt đầu nhấp nháy. Vì vậy, tôi đã thực hiện một số "cờ chặn", rằng chỉ còn vài phút nữa, một "phép tính" thời gian nói mới được thực hiện và cập nhật đăng ký được thực hiện.
Mã để điền vào sổ đăng ký là trong hình trên. Như bạn thấy, tôi điền song song cả 3 thanh ghi nên tôi cần 3 chân của PIC cho dữ liệu và 1 chân cho CLK. 74HC164 tiếp nhận dữ liệu mới trong quá trình chuyển đổi ở dòng CLK từ 0 sang 1.
Phần còn lại của mã chủ yếu là nội dung phụ thuộc PIC, "thời gian nói" -logic và xử lý giao tiếp và các nút. Giao tiếp chủ yếu được cung cấp bởi Microchip MPLABX vì tôi đã sử dụng mô-đun MSSP.
Một ý tưởng hay là đọc biểu dữ liệu của DS3231 vì dữ liệu được lưu trữ bên trong dưới dạng BCD nên bạn có thể phải "chuyển đổi" dữ liệu này trong mã của mình. Theo như những gì tôi có liên quan, tôi là một người "vừa học vừa làm" và OF COURSE đã không đọc bảng dữ liệu… Làm tôi tốn rất nhiều thời gian và dây thần kinh.
Như bạn có thể nhận thấy, có hai cách để "giữ đúng thời gian" với việc triển khai này.
- Bạn có thể đọc thời gian thực của DS3231
- Bạn có thể "đếm giây" trong chính PIC và chỉ cần đồng bộ hóa thời gian với DS3231 theo thời gian
Đó là tùy thuộc vào bạn và cả hai cách đều mang tính thực tiễn và hướng về phía trước. Tôi đã sử dụng tùy chọn đầu tiên và chỉ đồng bộ hóa thời gian khi điều chỉnh thời gian thông qua các nút (ghi thời gian vào DS3231) hoặc 24 giờ một lần (thời gian đọc từ DS3231), vì tôi muốn tự mình triển khai logic hơn. Tôi cũng quay đồng hồ vào ban đêm (23:00 đến 05:00) để điều đó dễ dàng hơn một chút theo ý kiến của tôi.
Bước 5: Nhà ở
Cuối cùng nhưng không kém phần quan trọng, đó là thời gian để xem xét một cách ngắn gọn về nhà ở.
Như tôi đã đề cập ở trên, tôi đã tự làm vỏ bọc (sử dụng Eagle) và in chúng bằng Máy in 3D của mình, vì vậy tôi cố gắng tiếp tục xem xét vị trí của các đèn LED khác nhau.
Đính kèm, bạn có thể tìm thấy các tệp STL nếu bạn muốn sử dụng chúng.
Hy vọng hướng dẫn này sẽ giúp bạn khi xây dựng "Wort-Uhr" của riêng bạn. Nếu vẫn còn "câu hỏi mở" đừng ngần ngại liên hệ với tôi. Cách tốt nhất là bình luận bên dưới, vì bạn có thể không phải là người duy nhất có một câu hỏi cụ thể.
Đề xuất:
Động cơ bước Điều khiển động cơ bước Không cần vi điều khiển !: 6 bước
Động cơ bước Điều khiển động cơ bước Không cần vi điều khiển !: Trong phần Hướng dẫn nhanh này, chúng tôi sẽ tạo một bộ điều khiển động cơ bước đơn giản bằng cách sử dụng động cơ bước. Dự án này không yêu cầu mạch phức tạp hoặc vi điều khiển. Vì vậy, không cần thêm ado, chúng ta hãy bắt đầu
Động cơ bước được điều khiển Động cơ bước không có vi điều khiển (V2): 9 bước (có hình ảnh)
Động cơ bước được điều khiển bằng động cơ bước Không cần vi điều khiển (V2): Trong một trong những Hướng dẫn trước đây của tôi, tôi đã chỉ cho bạn cách điều khiển động cơ bước bằng cách sử dụng động cơ bước mà không cần vi điều khiển. Đó là một dự án nhanh chóng và thú vị nhưng nó đi kèm với hai vấn đề sẽ được giải quyết trong Có thể hướng dẫn này. Vì vậy, hóm hỉnh
Đầu máy mô hình điều khiển động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Đầu máy mô hình điều khiển động cơ bước | Động cơ bước làm bộ mã hóa quay: Trong một trong những phần Hướng dẫn trước, chúng ta đã học cách sử dụng động cơ bước làm bộ mã hóa quay. Trong dự án này, bây giờ chúng ta sẽ sử dụng bộ mã hóa quay động cơ bước đó để điều khiển đầu máy mô hình bằng vi điều khiển Arduino. Vì vậy, không có fu
Âm thanh bay bổng với Arduino Uno Từng bước (8 bước): 8 bước
Acoustic Levitation With Arduino Uno Step-by-by-by (8 bước): bộ chuyển đổi âm thanh siêu âm L298N Dc cấp nguồn cho bộ chuyển đổi âm thanh nữ với chân cắm một chiều nam Arduino UNOBreadboard Cách hoạt động: Đầu tiên, bạn tải mã lên Arduino Uno (nó là một vi điều khiển được trang bị kỹ thuật số và các cổng tương tự để chuyển đổi mã (C ++)
Động cơ bước Điều khiển động cơ bước Động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Động cơ bước Điều khiển động cơ bước Động cơ bước | Động cơ bước như một bộ mã hóa quay: Có một vài động cơ bước nằm xung quanh và muốn làm điều gì đó? Trong Có thể hướng dẫn này, hãy sử dụng động cơ bước làm bộ mã hóa quay để điều khiển vị trí của động cơ bước khác bằng vi điều khiển Arduino. Vì vậy, không cần phải quảng cáo thêm, chúng ta hãy