Mục lục:

Đa hẹn giờ W / Điều khiển bên ngoài: 13 bước
Đa hẹn giờ W / Điều khiển bên ngoài: 13 bước

Video: Đa hẹn giờ W / Điều khiển bên ngoài: 13 bước

Video: Đa hẹn giờ W / Điều khiển bên ngoài: 13 bước
Video: Trước Khi Em Tồn Tại (Piano Version) - Thắng | Việt Anh Cover (MV Lyric) 2024, Tháng mười một
Anonim
Multi-Timer W / Điều khiển bên ngoài
Multi-Timer W / Điều khiển bên ngoài

Dự án có thể giảng dạy này là một bản xây dựng của một Bộ hẹn giờ đa chức năng

Bộ đếm thời gian này có khả năng hoạt động như:

  1. Báo thức cho mục đích chung với thời gian có thể lựa chọn từ 1 giây đến +90 giờ. Có một bộ đếm ngược với âm thanh báo động và / hoặc điều khiển thiết bị bên ngoài cho đến khi kết thúc, sau đó là một chỉ báo đếm ngược về thời gian kể từ khi báo động.
  2. Bộ hẹn giờ ngủ trưa với 7 thời gian có thể lựa chọn, đếm ngược và báo thức khi hoàn thành.
  3. Một bộ đếm thời gian thiền với 4 thời gian có thể lựa chọn, có đếm ngược và một tiếng kêu ngắn khi hoàn thành, đếm ngược với một tiếng kêu khác vào 5 phút sau đó.

Dự án này có thể được xây dựng như mô tả ở đây hoặc sửa đổi cho phù hợp. Trước đây, tôi đã xây dựng một bộ hẹn giờ với chức năng này và sử dụng nó trong Thiết bị hướng dẫn đầu tiên của tôi để điều khiển hộp tiếp xúc với tia UV.

Tôi nghĩ rằng tôi có thể xuất bản chương trình ban đầu và thiết kế bảng. Tuy nhiên, vì một số lý do tôi không thể tìm thấy mã. Tôi cũng muốn cải tiến phần cứng để làm cho các mạch điều khiển linh hoạt hơn và giảm hao pin. Kết quả là việc thiết kế lại bảng mạch chính và viết lại mã tạo cơ hội để thảo luận về cách tiếp cận lập trình và thiết kế phần cứng.

Bất cứ khi nào tôi tạo một bảng mạch, tôi thường thấy rằng có sai sót trong thiết kế hoặc vị trí của các thành phần, Bảng mạch mà tôi xây dựng cũng là một trong hai lỗi. Thêm vào đó, tôi chỉ muốn tham gia vào tất cả các khía cạnh của một dự án từ đầu đến cuối. Đây là một số lý do khiến tôi tự sản xuất bảng mạch thay vì gửi các tập tin Gerber ra nước ngoài để sản xuất. Có lẽ tôi chỉ già và mắc kẹt trong con đường của tôi. Dự án này phản ánh sự thiên vị này. Vì tôi tự làm bảng mạch, thiết kế và tệp Gerber của tôi không đáp ứng các tiêu chuẩn sản xuất nên tôi đã không đưa vào các tệp này. Những ai không muốn khắc và hoàn thiện bảng, vui lòng chuẩn bị thiết kế của riêng họ và đăng các tệp Gerber trong phần nhận xét. Vui lòng sản xuất và kiểm tra bảng của bạn trước khi đăng.

Bước 1: Tổng quan về các yếu tố phần cứng

Thiết bị được cung cấp năng lượng bởi 4 pin AAA và được điều khiển bởi Arduino Pro Mini 5V.

Một còi / loa nhỏ cung cấp âm thanh báo động.

Một rơ le 5v thu nhỏ cung cấp điện áp điều khiển cho các thiết bị bên ngoài. Tính linh hoạt được cung cấp trong nguồn của đầu ra điện áp điều khiển này.

Một bộ mã hóa quay với nút nhấn cung cấp lựa chọn menu.

Màn hình OLED và công tắc khởi động / dừng tạm thời hoàn thiện giao diện người dùng.

Phần cứng điện tử bổ sung bao gồm một công tắc nguồn SPDT và một giắc cắm điện thoại thu nhỏ để kết nối với các thiết bị bên ngoài.

Ngoài ra, các tệp để hỗ trợ bạn trong dự án này được cung cấp:

Tệp STL cho trường hợp dự án in 3D.

Hình ảnh mặt nạ đồng và hàn để khắc và hoàn thiện bảng mạch điều khiển và bộ mã hóa quay.

Sơ đồ và hình ảnh bảng như một tài liệu tham khảo cho những người muốn sửa đổi thiết kế của tôi.

Bạn có thể muốn xem lại Tài liệu hướng dẫn của tôi về cách tạo bảng mạch hai mặt như một ví dụ về cách sản xuất bảng mạch.

Bước 2: Tổng quan về phần mềm

Cùng với các tệp nguồn Arduino, một số thông tin bổ sung có thể hữu ích..

Thư viện điều khiển phần cứng được sử dụng khi có sẵn (tắt nút, điều khiển OLED, đọc mã hóa quay).

Chương trình thực hiện một máy trạng thái hữu hạn đơn giản (FSM) để điều khiển việc thực thi mã như một câu lệnh chuyển đổi trong hàm lặp..

Một lớp Menu được định nghĩa để cho phép lựa chọn các tùy chọn hiển thị trên OLED và lựa chọn bằng bộ mã hóa quay.

Đầu vào được thực hiện bằng cách thăm dò trực tiếp (điều khiển không gián đoạn) vì nó không phải là thời gian quan trọng và làm cho mã rõ ràng hơn.

In các câu lệnh thành Serial được sử dụng để hỗ trợ việc theo dõi việc thực thi mã và gỡ lỗi

Các loại phần tử cấu trúc chương trình khác nhau bao gồm:

  • Nhiều tab mã để tách biệt một số chức năng và biến điều khiển phần cứng.
  • Chuyển các câu lệnh để đặt giá trị trạng thái (FSM) và các biến điều khiển.
  • Định nghĩa cấu trúc
  • Các phép liệt kê để cho phép gán các giá trị trạng thái dưới dạng văn bản.
  • # xác định định nghĩa tiền xử lý cho giá trị chuẩn và chân phần cứng.

Bước 3: Danh sách bộ phận

Tạo vỏ bọc
Tạo vỏ bọc

Tôi không chắc nên đặt bước này ở đâu vì nó có thể được thực hiện ở hầu hết mọi thời điểm. Tôi đã sử dụng một hộp bao vây in 3D. Bạn có thể không có quyền truy cập vào máy in 3D hoặc thích một loại bao vây khác như hộp nhôm, nhựa Cắt bằng Laser, Gỗ chạm khắc bằng tay hoặc loại khác mà bạn sử dụng cho các dự án điện tử của mình. Tôi đã bao gồm các tệp STL cho trên cùng, dưới cùng, núm bộ mã hóa xoay và khung bezel OLED. Sử dụng các tệp này và bộ cắt theo lựa chọn của bạn để tạo tệp gcode cho máy in của bạn.

Tôi in ra tất cả các bộ phận bằng cách sử dụng dây tóc PLA, một màu cho phần trên và dưới của vỏ bọc, một màu tương phản khác cho núm và khung bezel (được dán vào phần trên.) Tôi sẽ không chỉ định tất cả các cài đặt máy cắt của mình nhưng, hãy sử dụng Tri -Kích thước chèn ít nhất 35% để cho phép khai thác các vít góc và cài đặt "không hỗ trợ" để đọc được chữ được cắt. Tôi đã in hộp bằng chiều cao lớp "bình thường" của máy in.

Bước 9: Thiết kế và viết mã

Bước này là tùy chọn nhưng được đề xuất để hiểu rõ hơn.

Phần lớn nỗ lực tính theo giờ là việc viết mã. Bạn có thể bỏ qua bước này nếu bạn sử dụng chương trình đính kèm là -is. Tuy nhiên, bạn nên dành thời gian xem lại mã để hiểu rõ hơn hoặc sửa đổi để đáp ứng nhu cầu của mình.

Những nhận xét sau đây có thể hữu ích trong việc hiểu quá trình này.

  • Nhận xét- Bình luận rộng rãi khi bạn tiếp tục - Tôi thường viết các nhận xét trước khi tôi viết mã.
  • Chia & chinh phục - sử dụng các chức năng, lớp và mô-đun (tab.) Sử dụng biên dịch thường xuyên (Xác minh) để kiểm tra cú pháp. Gỡ lỗi - Sử dụng câu lệnh in để xác minh luồng và kiểm tra các giá trị cũng như giao diện phần cứng. Đừng ngại giải quyết các vấn đề khi bạn tiếp tục, không ai viết mã không có lỗi!
  • Hằng số - #define hướng dẫn trình biên dịch trước gán tên cho số pin. Định nghĩa biến Const với chú thích làm giảm hoặc loại bỏ các số "Phép thuật". Việc sử dụng các hằng số nằm ở đầu chương trình hoặc hàm cho phép thay đổi các tham số mà không cần viết lại mã
  • Thư viện xác định trước - Sử dụng Thư viện xác định trước giúp giảm gánh nặng lập trình và thời gian gỡ lỗi.
  • Khối thiết kế - Được tạo bằng cách sử dụng các hàm, Cô lập mã trong các tab riêng biệt (chương trình liên kết & tệp.hfiles), bảng liệt kê, lớp và cấu trúc. Tập trung sự chú ý của bạn vào từng cái để hiểu cách chúng hoạt động liên quan đến phần còn lại của mã.
  • (Các) Máy trạng thái - Đây là một mẫu lập trình hoạt động hiệu quả với Arduinos hoặc bất kỳ chương trình nào được sử dụng để điều khiển đầu ra hoặc đầu vào phản ứng. Một số hương vị của máy trạng thái tồn tại. Mã này sử dụng một máy trạng thái dựa trên câu lệnh switch trong hàm vòng lặp. Biểu mẫu này rất dễ hiểu và dễ gỡ lỗi.
  • Màn hình & Menu - Đầu ra OLED nhỏ hơn nhưng cung cấp đủ phản hồi cho người dùng bình thường và hỗ trợ lựa chọn tùy chọn. Nó tích hợp tốt với máy trạng thái (hầu hết tất cả các trạng thái đều có màn hình OLED liên kết). Lớp Menu rất hữu ích trong việc tách mã để hiển thị và chọn các tùy chọn menu

Vui lòng đọc chương trình nhiều lần. Nó hữu ích để thực hiện một chức năng hoặc phần tại một thời điểm. Tôi thường không hiểu mã mà tôi đã viết trừ khi tôi đã đọc nó ít nhất hai lần!

Bước 10: Cài đặt chương trình

Sao chép tệp đính kèm vào máy tính của bạn sau đó giải nén nó vào thư mục Sketches của bạn

Kết nối Arduino với máy tính của bạn và tải xuống mã chương trình theo cách bình thường. Mở màn hình nối tiếp Arduino IDE để xác minh rằng chương trình đang chạy và hỗ trợ gỡ lỗi.

Bước 11: Lắp ráp bộ hẹn giờ

Lắp ráp bộ hẹn giờ
Lắp ráp bộ hẹn giờ
Lắp ráp bộ hẹn giờ
Lắp ráp bộ hẹn giờ
Lắp ráp bộ hẹn giờ
Lắp ráp bộ hẹn giờ
Lắp ráp bộ hẹn giờ
Lắp ráp bộ hẹn giờ

Sau khi các phần trên và dưới của vỏ được in và làm sạch, các thành phần có thể được gắn vào bằng cách sử dụng vít nhựa tự khai thác nhỏ. Đầu tiên, ngăn chứa pin được gắn vào mặt sau. Phần còn lại của các bộ phận được gắn vào đỉnh bao vây theo thứ tự sau:

  1. OLED và cáp
  2. Công tắc Start / Stop & đấu dây
  3. Bộ mã hóa quay và cáp
  4. Loa / Buzzer & hệ thống dây điện
  5. Giắc điều khiển bên ngoài và hệ thống dây điện
  6. Công tắc trượt Bật / Tắt và hệ thống dây điện (kiểm tra kỹ hướng để bật theo hướng bạn muốn

Nếu bạn đang hàn cáp trực tiếp vào bảng mạch của mình, hãy thực hiện việc này sau khi tất cả các bộ phận được gắn vào vỏ để giảm đứt dây. Bạn phải đợi cho đến khi cáp được nối với bo mạch chính trước khi vặn bo mạch đó vào mặt sau.

Nếu bạn đang sử dụng đầu cắm pin và đầu nối Dupont, trước tiên hãy gắn bo mạch chính vào mặt sau bằng vít, sau đó cắm các thành phần vào. Hãy cẩn thận khi bạn kết nối pin với bo mạch chính và quan sát đúng cực. Bạn cũng nên thiết lập jumper điều khiển rơ le hoặc hệ thống dây điện vào lúc này.

Đáy của vỏ kết nối với đỉnh bằng cách sử dụng 4-40 vít máy đầu tròn, mỗi vít ở mỗi góc. Bốn lỗ trên cùng phải được khai thác bằng vòi 4/40 hoặc nếu bạn sử dụng 4-40 hạt chèn có ren, bạn sẽ cần phải khoan các lỗ để chấp nhận chúng. 4 lỗ để lắp bảng mạch chính ở phía dưới cũng cần được khoan. Cắm bo mạch này vào giá gắn pin gắn liền và đánh dấu vị trí của các lỗ. Khoan thích hợp cho các vít lắp của bạn.

Bước 12: Kiểm tra tích hợp

Thử nghiệm hội nhập
Thử nghiệm hội nhập
Thử nghiệm hội nhập
Thử nghiệm hội nhập
Thử nghiệm hội nhập
Thử nghiệm hội nhập

Kiểm tra cuối cùng (tích hợp) được thực hiện bằng cách thử tất cả các tùy chọn menu và xác minh chúng hoạt động với phần cứng như được thiết kế. Đối với mã tôi đã cung cấp, điều đó sẽ đủ. Nếu bạn đã viết mã của riêng mình hoặc sửa đổi mã của bạn, thử nghiệm của bạn sẽ cần phải mở rộng hơn. Tôi không tin rằng tất cả các lựa chọn thời gian cần phải được thực hiện nhưng bạn cần thử tất cả các tùy chọn báo thức tiêu chuẩn và xác nhận báo thức Ngủ trưa và Thiền hoạt động như thiết kế.

Bước 13: Kết luận

Chúc mừng bạn đã thành công, tôi hy vọng, dự án. Tôi chắc chắn rằng bạn đã gặp phải vấn đề trong quá trình mà bạn cần giải quyết. Tôi cũng chắc chắn rằng một số hướng dẫn của tôi có thể đầy đủ hơn hoặc rõ ràng hơn. Vui lòng cho tôi biết thông qua phần nhận xét kết quả của bạn và cung cấp đề xuất về cách những hướng dẫn này có thể được cải thiện.

Cảm ơn bạn đã dành thời gian xem và / hoặc xây dựng dự án này.

Đề xuất: