Mục lục:

Tự làm đồng hồ báo thức nhị phân Arduino: 14 bước (có hình ảnh)
Tự làm đồng hồ báo thức nhị phân Arduino: 14 bước (có hình ảnh)

Video: Tự làm đồng hồ báo thức nhị phân Arduino: 14 bước (có hình ảnh)

Video: Tự làm đồng hồ báo thức nhị phân Arduino: 14 bước (có hình ảnh)
Video: Tự học Arduino bài 0: Gới thiệu về Arduino 2024, Tháng mười một
Anonim
Tự làm đồng hồ báo thức nhị phân Arduino
Tự làm đồng hồ báo thức nhị phân Arduino
Tự làm đồng hồ báo thức nhị phân Arduino
Tự làm đồng hồ báo thức nhị phân Arduino
Tự làm đồng hồ báo thức nhị phân Arduino
Tự làm đồng hồ báo thức nhị phân Arduino

Đó là đồng hồ nhị phân cổ điển một lần nữa! Nhưng lần này với nhiều chức năng bổ sung hơn! Trong phần hướng dẫn này, tôi sẽ chỉ cho bạn cách tạo đồng hồ báo thức nhị phân với Arduino có thể hiển thị cho bạn không chỉ thời gian mà còn cả ngày, tháng, thậm chí với các chức năng hẹn giờ và báo thức cũng có thể được sử dụng làm đèn ngủ! Không cần thêm quảng cáo, chúng ta hãy bắt đầu!

Lưu ý: Dự án này không sử dụng mô-đun RTC, vì vậy độ chính xác phụ thuộc vào bo mạch bạn đã sử dụng. Tôi đã bao gồm một cơ chế sửa chữa sẽ sửa lỗi thời gian trôi trong một khoảng thời gian nhất định nhưng bạn sẽ cần phải thử nghiệm xung quanh để tìm ra giá trị chính xác cho khoảng thời gian đó (Thông tin thêm về điều này bên dưới) và ngay cả với cơ chế sửa chữa, nó vẫn sẽ trôi trong thời gian dài (khi so sánh với không có). Nếu bất kỳ ai quan tâm, vui lòng triển khai việc sử dụng mô-đun RTC trong dự án này

Quân nhu

Đèn LED 5mm (bất kỳ màu nào, tôi đã sử dụng 13 đèn LED trắng với một đèn LED RGB làm chỉ báo) --- 14 chiếc

Arduino Nano (những cái khác có thể hoạt động) --- 1 máy tính

Công tắc vi mô --- 1 cái

Mảnh nhôm nhỏ

Bảng gắn (để bao vây, nhưng hãy tự thiết kế của riêng bạn)

Mảnh giấy trắng (hoặc bất kỳ màu nào khác)

Một số phim nhựa (loại được dùng làm bìa sách)

Bó dây

Buzzer --- 1pc

Bóng bán dẫn NPN --- 1pc

Điện trở 6k8 --- 14 cái, 500R --- 1 cái, 20R (10Rx2) --- 1 cái, 4k7 --- 1pc

Nguồn cung cấp cho dự án (tôi đã sử dụng pin li-on)

Dải đèn LED 5050 và công tắc trượt (tùy chọn)

Bước 1: Kết nối mạch

Kết nối mạch!
Kết nối mạch!

Tôi sẽ chia bước này thành:

1) Phần bộ rung

2) Bảng đèn LED

3) Công tắc (nút nhấn)

4) Dải đèn LED

5) Cảm biến điện dung

6) Nguồn cung cấp

7) Kết nối tất cả chúng với Arduino

Hầu hết thời gian, đây chỉ là một bước "theo sơ đồ". Vì vậy, hãy xem sơ đồ ở trên hoặc thậm chí tải xuống và in nó!

Bước 2: Chuẩn bị phần Buzzer

Chuẩn bị phần Buzzer
Chuẩn bị phần Buzzer
Chuẩn bị phần Buzzer
Chuẩn bị phần Buzzer
Chuẩn bị phần Buzzer
Chuẩn bị phần Buzzer

Nếu bạn đã sử dụng buzzer với Arduino trước đây, bạn sẽ biết rằng nếu chúng tôi kết nối trực tiếp với Arduino, nó sẽ không đủ lớn. Vì vậy, chúng ta cần một bộ khuếch đại. Để xây dựng bộ khuếch đại, chúng ta cần một bóng bán dẫn NPN (về cơ bản bất kỳ NPN nào cũng hoạt động, tôi đã sử dụng S9013 vì tôi lấy nó từ dự án cũ) và một số điện trở để hạn chế dòng điện. Để bắt đầu, trước tiên hãy xác định bộ thu, bộ phát và đế của bóng bán dẫn. Một chút googling biểu dữ liệu sẽ hoạt động cho việc này. Sau đó, hàn bộ thu của bóng bán dẫn vào cực âm của buzzer. Tại cực dương của buzzer, chúng tôi chỉ hàn một đoạn dây vào nó để có thể hàn nó vào Arduino của chúng tôi sau này. Sau đó, hàn điện trở 500R (hoặc bất kỳ giá trị tương tự nào của điện trở) vào đế của bóng bán dẫn và từ điện trở, hàn một đoạn dây khác để sử dụng trong tương lai. Cuối cùng, hàn hai điện trở 10R nối tiếp vào bộ phát của bóng bán dẫn và kết nối một dây khác từ các điện trở.

Thực sự, hãy tham khảo sơ đồ.

p / s: Tôi vẫn chưa thực sự biết cách chọn điện trở cho transistor tại thời điểm viết bài này. Giá trị tôi đã sử dụng được chọn theo kinh nghiệm.

Bước 3: Chuẩn bị bảng LED

Chuẩn bị bảng LED
Chuẩn bị bảng LED
Chuẩn bị bảng LED
Chuẩn bị bảng LED
Chuẩn bị bảng LED
Chuẩn bị bảng LED

Cắm các đèn LED và điện trở vào bảng tạo mẫu phù hợp và hàn. Đó là nó. Thực hiện theo các giản đồ. Trong trường hợp bạn quan tâm đến khoảng cách tôi đã sử dụng, 3 lỗ cách nhau cho mỗi cột và hai lỗ cách nhau cho mỗi hàng (tham khảo hình ảnh). Và đèn LED chỉ báo? Tôi cắm nó một cách ngẫu nhiên.

Sau khi hàn các đèn LED và điện trở vào bảng, hãy kết nối tất cả các cực dương của đèn LED với nhau. Sau đó, hàn từng dây một vào từng điện trở tại các cực âm của đèn LED để chúng ta có thể hàn chúng với Arduino sau này.

LƯU Ý: Bạn có thể nhầm lẫn ở bước này. Hãy nhớ thay vì kết nối tất cả các mặt đất với nhau, chúng tôi kết nối tất cả các đầu cuối tích cực với nhau và thiết bị đầu cuối âm với chân riêng lẻ trên Arduino. Vì vậy, chúng tôi đang sử dụng chân GPIO của Arduino làm mặt đất, không phải Vcc. Trong trường hợp nếu bạn vô tình kết nối ngược, đừng lo lắng. Bạn có thể sửa đổi tất cả các giá trị CAO thành THẤP và THẤP thành CAO trong chức năng điều khiển đèn led.

Bước 4: Chuẩn bị Công tắc (Thực ra là nút bấm)

Chuẩn bị Công tắc (Thực tế là nút bấm)
Chuẩn bị Công tắc (Thực tế là nút bấm)
Chuẩn bị Công tắc (Thực tế là nút bấm)
Chuẩn bị Công tắc (Thực tế là nút bấm)
Chuẩn bị Công tắc (Thực tế là nút bấm)
Chuẩn bị Công tắc (Thực tế là nút bấm)

Đối với công tắc (tôi sẽ gọi nó là công tắc vì tôi đã sử dụng công tắc vi mô, nhưng bạn biết đó là nút bấm), chúng ta cần một điện trở kéo xuống 4k7 và tất nhiên, chính công tắc. À, đừng quên chuẩn bị một số dây. Bắt đầu bằng cách hàn điện trở và một đoạn dây vào đất chung (COM) của bộ chuyển mạch vi mô. Sau đó, hàn một đoạn dây khác vào đầu thường mở (NO) của công tắc vi mô. Cuối cùng, gắn một dây khác vào điện trở. Cố định nó bằng một ít keo nóng.

Góc kiến thức: Tại sao cần có điện trở kéo xuống?

"Nếu bạn ngắt kết nối chân I / O kỹ thuật số khỏi mọi thứ, đèn LED có thể nhấp nháy thất thường. Điều này là do đầu vào" nổi "- tức là nó sẽ ngẫu nhiên trả về mức CAO hoặc THẤP. Đó là lý do tại sao bạn cần kéo lên hoặc kéo xuống điện trở trong mạch. " - Nguồn: Arduino webisite

Bước 5: Chuẩn bị dải LED

Chuẩn bị dải LED
Chuẩn bị dải LED
Chuẩn bị dải LED
Chuẩn bị dải LED

Dải đèn LED dành cho đèn bên giường, là tùy chọn. Chỉ cần kết nối dải LED và công tắc trượt với nhau theo chuỗi, không có gì đặc biệt.

Bước 6: Chuẩn bị cảm biến điện dung

Chuẩn bị cảm biến điện dung
Chuẩn bị cảm biến điện dung
Chuẩn bị cảm biến điện dung
Chuẩn bị cảm biến điện dung
Chuẩn bị cảm biến điện dung
Chuẩn bị cảm biến điện dung
Chuẩn bị cảm biến điện dung
Chuẩn bị cảm biến điện dung

Ok tham khảo hình. Về cơ bản, chúng tôi sẽ gắn dây vào một miếng nhôm nhỏ (vì lá nhôm không thể hàn được) sau đó dán nó lên một miếng nhỏ của bảng gắn. Xin nhắc lại, hãy đảm bảo rằng bạn không quấn hoàn toàn lá nhôm. Để lại một phần của nó để tiếp xúc trực tiếp.

Bước 7: Chuẩn bị nguồn điện

Chuẩn bị nguồn điện
Chuẩn bị nguồn điện
Chuẩn bị nguồn điện
Chuẩn bị nguồn điện
Chuẩn bị nguồn điện
Chuẩn bị nguồn điện

Vì tôi sử dụng pin li-on làm nguồn điện, tôi cần một mô-đun TP4056 để sạc và bảo vệ, và một bộ chuyển đổi tăng cường để chuyển đổi điện áp thành 9v. Nếu bạn quyết định sử dụng bộ chuyển đổi âm tường 9V, thì bạn có thể cần giắc cắm DC hoặc chỉ cần kết nối trực tiếp. Lưu ý rằng giá trị điện trở cho bộ khuếch đại được thiết kế cho 9V và nếu bạn muốn sử dụng điện áp khác, bạn có thể cần phải thay đổi điện trở.

Bước 8: Kết nối chúng với Arduino

Kết nối chúng với Arduino
Kết nối chúng với Arduino
Kết nối chúng với Arduino
Kết nối chúng với Arduino
Kết nối chúng với Arduino
Kết nối chúng với Arduino

Thực hiện theo các giản đồ! Thực hiện theo các giản đồ! Thực hiện theo các giản đồ!

Đừng kết nối sai mã pin nếu không mọi thứ sẽ trở nên kỳ lạ.

Bước 9: Bao vây

Bao vây
Bao vây
Bao vây
Bao vây
Bao vây
Bao vây
Bao vây
Bao vây

Kích thước của thiết kế của tôi là 6,5cm * 6,5cm * 8cm, vì vậy nó là một chút cồng kềnh. Nó bao gồm một cửa sổ phía trước cho màn hình LED và cửa sổ trên cùng cho đèn đầu giường. Đối với thiết kế của tôi, hãy tham khảo hình ảnh.

Bước 10: Thời gian lập trình

Image
Image
Thời gian lập trình!
Thời gian lập trình!

Tải xuống bản phác thảo của tôi bên dưới và tải lên Arduino của bạn. Nếu bạn không biết làm thế nào để làm điều này, đừng bận tâm đến dự án này! Nah chỉ đùa thôi, đây là một hướng dẫn hay về nó: Tải bản phác thảo lên arduino

Sau đó, mở màn hình nối tiếp và bạn sẽ thấy nó xuất ra thời gian hiện tại. Để thiết lập thời gian, đây là cách thực hiện việc này.

Để đặt giờ: h, XX - trong đó xx là giờ hiện tại

Để đặt phút: min, XX - xx là phút hiện tại

Để đặt thứ hai: s, XX

Để đặt ngày: d, XX

Để đặt tháng: mon, XX

Khi nhận xét trên được thực thi, nó sẽ trả về cho bạn giá trị bạn vừa đặt. (Ví dụ: khi bạn đặt giờ bằng h, 15, nó sẽ trả về Giờ: 15 trong màn hình nối tiếp.

Đối với cảm biến điện dung, bạn có thể cần phải hiệu chỉnh nó trước khi nó hoạt động. Để thực hiện việc này, hãy nhấn công tắc vi mô hai lần và nhìn vào màn hình nối tiếp. Nó sẽ xuất ra một loạt các số. Bây giờ hãy đặt ngón tay của bạn lên cảm biến điện dung và xem ghi lại phạm vi của con số. Tiếp theo, sửa đổi biến "captrigger". Giả sử bạn nhận được 20-30 khi được nhấn, sau đó đặt captrigger thành 20.

Bản phác thảo sử dụng thư viện ADCTouch, hãy đảm bảo rằng bạn đã cài đặt nó.

Bước 11: Cơ chế sửa chữa

Khoảng thời gian để cơ chế sửa chữa trong mã của tôi được đặt thành cơ chế chính xác đối với tôi. Nếu thời gian vẫn không chính xác, bạn cần thay đổi giá trị của biến "corrdur"

Bây giờ corrdur mặc định là 0 trong bản cập nhật mới nhất.

Giá trị của corrdur có nghĩa là cần bao nhiêu mili giây để làm chậm một giây

Để tìm ra giá trị của corrdur, hãy sử dụng công thức:

2000 / (y-x) / x)

trong đó x = khoảng thời gian thực tế đã trôi qua và y = khoảng thời gian đã trôi qua của đồng hồ, cả hai tính bằng giây

Để tìm giá trị của x và y, bạn cần làm một thử nghiệm nhỏ.

Đặt thời gian của đồng hồ thành thời gian thực và ghi lại thời gian ban đầu (thời gian ban đầu thực tế và thời gian ban đầu của đồng hồ phải giống nhau). Sau một lúc (vài giờ), ghi lại thời gian thực tế cuối cùng và thời gian cuối cùng của đồng hồ.

x = thời gian cuối cùng thực tế-thời gian ban đầu và y = thời gian cuối cùng của đồng hồ-thời gian ban đầu

Sau đó, thay đổi giá trị của corrdur trong mã và tải lại lên Arduino.

Sau đó lặp lại kiểm tra và lần này công thức được thay đổi thành:

2000 / ((2 / z) + (y-x / x))

Trong đó x và y giống như trước đây, trong khi z là giá trị corrdur hiện tại.

Tải lên lại và thực hiện kiểm tra nhiều lần cho đến khi đủ chính xác cho bạn.

Trong trường hợp nếu đồng hồ của bạn vẫn tăng tốc ngay cả khi corrdur được đặt thành 0 (có nghĩa là không có cơ chế điều chỉnh), bạn cần thay đổi giây ++ thành giây-- trong phần cơ chế sửa lỗi của mã (tôi đã nhận xét), hãy đặt corrdur thành 0, sau đó tìm thấy không. của mili giây cần để tăng tốc một giây.

Bước 12: Cách sử dụng tất cả các chức năng

Image
Image

Bạn có thể thay đổi chế độ bằng cách nhấn công tắc vi mô.

Ở chế độ đầu tiên, nó chỉ hiển thị thời gian. Nếu đèn báo nhấp nháy 1 lần mỗi giây, báo thức sẽ tắt. Nếu 2 lần mỗi giây, báo thức đang bật. Bạn có thể báo lại báo thức trong 10 phút ở chế độ đầu tiên bằng cách nhấn vào cảm biến điện dung.

Ở chế độ thứ hai, nó hiển thị ngày. Nhấn cảm biến điện dung không làm gì cả.

Ở chế độ thứ ba, bạn có thể đặt hẹn giờ. Nhấn vào cảm biến điện dung sẽ bật bộ đếm thời gian và bạn sẽ thấy đèn báo bắt đầu nhấp nháy. Cảm biến điện dung cũng được sử dụng để cài đặt thời gian hẹn giờ. Phạm vi hẹn giờ là 1 phút đến 59 phút.

Ở chế độ thứ tư, bạn có thể đặt giờ báo thức bằng cảm biến điện dung

Ở chế độ thứ năm, bạn có thể đặt phút báo thức bằng cảm biến điện dung.

Ở chế độ thứ sáu, nhấn vào cảm biến điện dung sẽ đặt lại phút thành 30 và giây về 0 mà không thay đổi giờ. Điều đó có nghĩa là miễn là đồng hồ của bạn không trôi quá 30 phút, bạn có thể hiệu chỉnh lại nó bằng cách sử dụng chế độ này.

Chế độ thứ bảy là chế độ không làm gì trong trường hợp nếu cảm biến điện dung trục trặc khi sạc.

Ồ, để loại bỏ báo thức, chỉ cần nhấn vào công tắc vi mô. (CẬP NHẬT MỚI NHẤT BAO GỒM KÍCH THƯỚC BÁO ĐỘNG)

Chà, đọc đồng hồ thì sao? Dễ thôi! Đọc Đồng hồ nhị phân - Wikihow Ban đầu bạn có thể cảm thấy kỳ lạ, nhưng bạn sẽ quen với nó!

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

Phần kết luận
Phần kết luận
Phần kết luận
Phần kết luận

Tại sao tôi bắt đầu dự án này. Ban đầu là vì tôi có một chiếc đồng hồ kỹ thuật số cũ nằm xung quanh và tôi muốn biến nó thành đồng hồ báo thức. Thật không may, chiếc đồng hồ cũ hóa ra đã bị hỏng. Vì vậy, tôi nghĩ tại sao không xây dựng một cái bằng Arduino? Với một chút tìm kiếm trên google, tôi đã tìm thấy dự án đồng hồ nhị phân này không có RTC do Cello62 hướng dẫn. Tuy nhiên, nó không có tính năng đồng hồ báo thức mà tôi muốn, vì vậy tôi lấy mã và tự sửa đổi nó. Và dự án ra đời. Hơn nữa, tôi thấy cuộc thi chạy đồng hồ có hướng dẫn gần đây đã cho tôi nhiều động lực hơn để làm điều này. Dù sao, đây vẫn là dự án đầu tiên của tôi sử dụng Arduino, vì vậy rất nhiều cải tiến có thể có.

Cải tiến trong tương lai:

1) Sử dụng RTC

2) Đặt báo thức hoặc thời gian hoặc hẹn giờ không dây!

3) Bất kỳ tính năng nào tôi nghĩ đến

Bước 14: Cập nhật: Sau một tuần sử dụng

Cập nhật: Sau một tuần sử dụng
Cập nhật: Sau một tuần sử dụng
Cập nhật: Sau một tuần sử dụng
Cập nhật: Sau một tuần sử dụng
Cập nhật: Sau một tuần sử dụng
Cập nhật: Sau một tuần sử dụng

Ngoài vấn đề rõ ràng - thời gian trôi, vấn đề tiếp theo tôi muốn nói là tiêu thụ điện năng. Đầu tiên, tôi nâng điện áp lên 9v, sau đó sẽ được giảm dần bởi bộ điều chỉnh tuyến tính trong Arduino. Bộ điều chỉnh tuyến tính rất kém hiệu quả. Đồng hồ chỉ tồn tại trong MỘT NGÀY. Điều đó có nghĩa là tôi phải sạc lại nó mỗi ngày. Đó không phải là thỏa thuận lớn nhất cho đến khi bạn nhận ra rằng toàn bộ hệ thống chỉ hoạt động hiệu quả khoảng 50%. Cho rằng pin của tôi là 2000mAh, tôi sẽ có thể tính toán lượng điện năng bị lãng phí mỗi ngày.

Điện năng lãng phí = (7,4Wh * 10%) + (7,4Wh * 90% * 50%) = 4,07Wh một ngày

Đó là 1,486kWh mỗi năm! Điều đó có thể được sử dụng để đun sôi, uh, 283g nước (từ 25 ° C đến 100 ° C)? Nhưng dù sao đi nữa, tôi sẽ cải thiện hiệu suất của đồng hồ. Cách để làm điều này là hoàn toàn không sử dụng bộ điều chỉnh tuyến tính. Điều đó có nghĩa là chúng ta phải điều chỉnh bộ chuyển đổi ngõ ra 5V trực tiếp vào chân 5V trên Arduino. Tiếp theo, để giảm thiểu điện năng lãng phí hơn nữa, tôi phải loại bỏ hai đèn LED trên bo mạch (pin13 và nguồn), vì chúng sẽ lãng phí 0,95Wh mỗi ngày. Thật không may, tôi hoàn toàn không thích hàn SMD vì vậy cách duy nhất để tôi làm điều này là cắt đường ray trên bảng. Sau đó, tôi phải loại bỏ điện trở phát trên còi và đèn cạnh giường (dải LED không hoạt động ở 5V). Nhưng điều đó có nghĩa là bạn phải từ bỏ tính năng tuyệt vời đó? Không! Bạn có hai sự lựa chọn ở đây: Sử dụng diode LED 5mm thông thường hoặc sử dụng dải LED 5V. Nhưng đối với tôi, tôi đã cảm thấy mệt mỏi vì đã thực hiện dự án này trong cả tuần trước, vì vậy tôi quyết định từ bỏ tính năng này. Tuy nhiên, tôi đã sử dụng công tắc ban đầu cho tính năng ánh sáng để bật hoặc tắt bảng đồng hồ nhằm tiết kiệm năng lượng hơn nữa, nhưng cuối cùng đèn LED sẽ nhấp nháy khi tôi tắt. Lỗi trở thành tính năng? Tôi không biết (Ai biết làm ơn cho tôi biết bên dưới).

Khi kết thúc sửa đổi, đồng hồ hiện kéo dài hơn 2 ngày!

Tiếp theo, tôi gặp một vấn đề ít nghiêm trọng hơn với đồng hồ. Trong quá trình sạc, cảm biến điện dung sẽ phát điên, vì vậy tôi thêm một chế độ khác mà hoàn toàn không có tác dụng gì.

Đối với thời gian trôi, vì rất bất tiện khi cắm vào máy tính hàng ngày để thiết lập lại nó, tôi đã thêm một chế độ khác sẽ đặt phút thành 30 và giây thành 0. Điều đó có nghĩa là bạn có thể đặt lại nó vào nửa giờ sau bất kỳ!

Đề xuất: