Đồng hồ điện tử LED. Đồng hồ trên vi điều khiển AVR với DS1307

Tôi đề xuất lặp lại mạch của một đồng hồ điện tử đơn giản có đồng hồ báo thức, được chế tạo trên loại PIC16F628A. Ưu điểm lớn của chiếc đồng hồ này là đèn LED loại ALS để hiển thị thời gian. Cá nhân tôi khá mệt mỏi với tất cả các loại màn hình LCD và tôi muốn có thể xem giờ từ mọi nơi trong phòng, kể cả trong bóng tối chứ không chỉ trực tiếp với ánh sáng tốt. Mạch chứa tối thiểu các bộ phận và có khả năng lặp lại tuyệt vời. Đồng hồ đã được thử nghiệm trong một tháng, cho thấy độ tin cậy và hiệu suất của nó. Tôi nghĩ trong số tất cả các chương trình trên Internet, chương trình này là chương trình dễ lắp ráp và chạy nhất.

Sơ đồ nguyên lý của đồng hồ điện tử có đồng hồ báo thức trên vi điều khiển:


Như có thể thấy từ sơ đồ đồng hồ, đây là vi mạch duy nhất được sử dụng trong thiết bị này. Bộ cộng hưởng thạch anh 4 MHz được sử dụng để đặt tần số xung nhịp. Để hiển thị thời gian, các chỉ báo màu đỏ có cực dương chung được sử dụng; mỗi chỉ báo bao gồm hai chữ số có dấu thập phân. Trong trường hợp sử dụng bộ phát áp điện, có thể bỏ qua tụ điện C1 - 100 μF.

Bạn có thể sử dụng bất kỳ chỉ báo nào có cực dương chung, miễn là mỗi chữ số có cực dương riêng. Để đảm bảo đồng hồ điện tử có thể nhìn rõ trong bóng tối và từ khoảng cách xa, hãy thử chọn ALS lớn hơn.


Màn hình đồng hồ năng động. Tại một thời điểm nhất định, chỉ có một chữ số được hiển thị, điều này cho phép bạn giảm đáng kể mức tiêu thụ hiện tại. Cực dương của mỗi chữ số được điều khiển bởi vi điều khiển PIC16F628A. Các đoạn của cả bốn chữ số được kết nối với nhau và thông qua các điện trở giới hạn dòng điện R1 ... R8, được kết nối với các đầu cuối của cổng MK. Vì đèn báo sáng rất nhanh nên hiện tượng nhấp nháy của các con số trở nên khó nhận thấy.


Các nút tạm thời được sử dụng để đặt phút, giờ và đồng hồ báo thức. Chân 10 được sử dụng làm đầu ra cho tín hiệu cảnh báo và một loạt bóng bán dẫn VT1,2 được sử dụng làm bộ khuếch đại. Bộ phát âm thanh là một phần tử áp điện loại ZP. Để cải thiện âm lượng, bạn có thể thay thế bằng một chiếc loa nhỏ.


Đồng hồ được cấp nguồn từ nguồn 5V ổn định. Nó cũng có thể được cung cấp năng lượng bằng pin. Đồng hồ có 9 chế độ hiển thị. Việc chuyển đổi giữa các chế độ được thực hiện bằng các nút “+” và “-”. Trước khi các chỉ số được hiển thị, một gợi ý ngắn về tên của chế độ sẽ được hiển thị trên các chỉ báo. Thời lượng hiển thị gợi ý là một giây.


Sử dụng nút "Sửa", đồng hồ báo thức được chuyển sang chế độ cài đặt. Trong trường hợp này, lời nhắc ngắn hạn sẽ hiển thị trong nửa giây, sau đó giá trị đã điều chỉnh bắt đầu nhấp nháy. Việc hiệu chỉnh số đọc được thực hiện bằng cách sử dụng các nút “+” và “-”. Khi bạn nhấn nút trong một thời gian dài, chế độ tự động lặp lại sẽ được kích hoạt ở tần số đã chỉ định. Tất cả các giá trị, ngoại trừ giờ, phút và giây, được ghi vào EEPROM và được khôi phục sau chu kỳ cấp nguồn.


Nếu không nhấn nút nào trong vòng vài giây, đồng hồ điện tử sẽ chuyển sang chế độ hiển thị thời gian. Bằng cách nhấn nút "Bật/Tắt", đồng hồ báo thức sẽ bật hoặc tắt, hành động này được xác nhận bằng một âm thanh ngắn. Khi đồng hồ báo thức bật, dấu chấm ở chữ số thứ tự thấp của đèn báo sẽ sáng lên. Tôi đang suy nghĩ nên đặt đồng hồ ở đâu trong bếp và quyết định gắn trực tiếp vào bếp ga :) Tài liệu được gửi bởi in_sane.


Thảo luận bài viết ĐỒNG HỒ BÁO ĐỘNG ĐIỆN TỬ

Với màn hình năng động. Không có gì phàn nàn về hoạt động của đồng hồ: chuyển động chính xác, cài đặt thuận tiện. Nhưng một nhược điểm lớn là đèn LED khó nhìn vào ban ngày. Để giải quyết vấn đề, tôi chuyển sang màn hình tĩnh và đèn LED sáng hơn. Như mọi khi với phần mềm, cảm ơn Soir rất nhiều. Nói chung, tôi lưu ý bạn một chiếc đồng hồ lớn ngoài trời với màn hình tĩnh, các chức năng cài đặt vẫn giống như các đồng hồ trước đó.

Chúng có hai màn hình - màn hình chính (bên ngoài đường) và màn hình phụ trên đèn báo - trong nhà, trên thân thiết bị. Độ sáng cao đạt được nhờ sử dụng đèn LED siêu sáng, dòng điện hoạt động 50mA và chip điều khiển.

Sơ đồ mạch của đồng hồ điện tử ngoài trời có đèn LED sáng

Để flash chương trình cơ sở của bộ điều khiển bằng các tệp và sử dụng các cài đặt cầu chì sau:

Bảng mạch in của đồng hồ, bộ điều khiển và mô-đun bên ngoài, ở định dạng LAY, .


Đặc điểm của mạch đồng hồ này:

- Định dạng hiển thị thời gian 24 giờ.
- Hiệu chỉnh kỹ thuật số độ chính xác của hành trình.
- Tích hợp điều khiển nguồn điện chính.
- Bộ nhớ vi điều khiển không bay hơi.
- Có nhiệt kế đo nhiệt độ trong khoảng -55 - 125 độ.
- Có thể hiển thị luân phiên các thông tin về thời gian, nhiệt độ trên đèn báo.


Nhấn nút SET_TIME sẽ di chuyển chỉ báo theo vòng tròn từ chế độ đồng hồ chính (hiển thị thời gian hiện tại). Ở tất cả các chế độ, việc giữ nút CỘNG/TRỪ sẽ thực hiện cài đặt nhanh hơn. Các thay đổi trong cài đặt 10 giây sau lần thay đổi giá trị cuối cùng sẽ được ghi vào bộ nhớ cố định (EEPROM) và sẽ được đọc từ đó khi bật lại nguồn.


Một điểm cộng lớn nữa của phương án đề xuất là độ sáng đã thay đổi, bây giờ khi trời nắng độ sáng rất tuyệt vời. Số lượng dây đã giảm từ 14 xuống còn 5. Chiều dài của dây đến màn hình chính (ngoài trời) là 20 mét. Tôi hài lòng với hiệu suất của đồng hồ điện tử, hóa ra nó là một chiếc đồng hồ có đầy đủ chức năng - cả ngày lẫn đêm. Trân trọng, Soir-Alexandrovich.

Đúng như tên gọi, mục đích chính của thiết bị này là tìm hiểu ngày giờ hiện tại. Nhưng nó còn có nhiều tính năng hữu ích khác. Ý tưởng tạo ra nó xuất hiện sau khi tôi tình cờ thấy một chiếc đồng hồ bị hỏng một nửa với vỏ kim loại tương đối lớn (dành cho cổ tay). Tôi nghĩ rằng tôi có thể nhét một chiếc đồng hồ tự chế vào đó, khả năng của nó chỉ bị giới hạn bởi trí tưởng tượng và kỹ năng của tôi. Kết quả là một thiết bị có các chức năng sau:

1. Đồng hồ - lịch:

    Đếm và hiển thị giờ, phút, giây, ngày trong tuần, ngày, tháng, năm.

    Có sẵn tính năng điều chỉnh tự động thời gian hiện tại, được thực hiện mỗi giờ (giá trị tối đa +/- 9999 đơn vị, 1 đơn vị = 3,90625 ms.)

    Tính ngày trong tuần từ một ngày (cho thế kỷ hiện tại)

    Tự động chuyển đổi giữa thời gian mùa hè và mùa đông (có thể tắt)

  • Năm nhuận được tính đến

2. Hai đồng hồ báo thức độc lập (có giai điệu phát ra khi được kích hoạt)
3. Hẹn giờ với khoảng tăng 1 giây. (Thời gian đếm tối đa 99h 59m 59s)
4. Đồng hồ bấm giờ hai kênh với độ phân giải đếm 0,01 giây. (thời gian đếm tối đa 99h 59m 59s)
5. Đồng hồ bấm giờ có độ phân giải đếm 1 giây. (thời gian đếm tối đa 99 ngày)
6. Nhiệt kế trong khoảng từ -5°C. lên tới 55°C (giới hạn bởi phạm vi nhiệt độ hoạt động bình thường của thiết bị) với mức tăng 0,1°C.
7. Đầu đọc và trình mô phỏng khóa điện tử - máy tính bảng loại DS1990 sử dụng giao thức Dallas 1-Wire (bộ nhớ cho 50 miếng, đã chứa một số “chìa khóa mọi địa hình” phổ biến) với khả năng xem byte mã khóa theo byte .
8. Điều khiển từ xa hồng ngoại (chỉ thực hiện lệnh “Chụp ảnh”) cho máy ảnh kỹ thuật số “Pentax”, “Nikon”, “Canon”
9. Đèn pin LED
10. 7 giai điệu
11. Tín hiệu âm thanh đầu mỗi giờ (có thể tắt)
12. Âm thanh xác nhận khi nhấn nút (có thể tắt)
13. Giám sát điện áp pin với chức năng hiệu chỉnh
14. Điều chỉnh độ sáng của đèn báo kỹ thuật số

Có thể chức năng như vậy là dư thừa, nhưng tôi thích những thứ phổ quát, và cộng thêm sự hài lòng về mặt đạo đức rằng chiếc đồng hồ này sẽ được làm bằng chính đôi tay của tôi.

Sơ đồ đồng hồ

Thiết bị được xây dựng trên bộ vi điều khiển ATmega168PA-AU. Đồng hồ tích tắc theo bộ đếm thời gian T2, hoạt động ở chế độ không đồng bộ từ thạch anh đồng hồ ở tần số 32768 Hz. Bộ vi điều khiển hầu như luôn ở chế độ ngủ (đèn báo tắt), thức dậy mỗi giây một lần để thêm chính giây này vào thời gian hiện tại và ngủ lại. Ở chế độ hoạt động, MK được tạo xung nhịp từ bộ dao động RC bên trong ở mức 8 MHz, nhưng bộ đếm gộp bên trong chia nó cho 2, do đó, lõi có tốc độ 4 MHz. Để chỉ báo, bốn đèn chỉ báo bảy đoạn kỹ thuật số LED một chữ số có cực dương chung và dấu thập phân được sử dụng. Ngoài ra còn có 7 đèn LED trạng thái, mục đích của chúng như sau:
D1- Dấu giá trị âm (trừ)
D2- Dấu hiệu đồng hồ bấm giờ đang chạy (nhấp nháy)
D3- Dấu hiệu đồng hồ báo thức đầu tiên được bật
D4- Dấu hiệu báo động thứ hai đang được bật
D5- Dấu hiệu âm thanh đầu mỗi giờ
D6- Dấu hiệu đồng hồ đang chạy (nhấp nháy)
D7- Chỉ báo điện áp pin yếu

R1-R8 - điện trở giới hạn dòng điện của các đoạn chỉ báo kỹ thuật số HG1-HG4 và đèn LED D1-D7. R12,R13 – bộ chia để theo dõi điện áp pin. Vì điện áp nguồn của đồng hồ là 3V và đèn LED D9 màu trắng cần khoảng 3,4-3,8V ở mức tiêu thụ dòng điện định mức nên nó không phát sáng hết công suất (nhưng đủ để tránh vấp ngã trong bóng tối) và do đó được kết nối mà không cần dòng điện. -điện trở giới hạn. Các phần tử R14, Q1, R10 được thiết kế để điều khiển đèn LED hồng ngoại D8 (thực hiện điều khiển từ xa cho máy ảnh kỹ thuật số). R19, ​​R20, R21 dùng để ghép nối khi giao tiếp với các thiết bị có giao diện 1 Dây. Việc điều khiển được thực hiện bằng ba nút mà tôi thường gọi là: MODE (chế độ), LÊN (lên), XUỐNG (xuống). Đầu tiên trong số chúng cũng được thiết kế để đánh thức MK bằng một ngắt bên ngoài (trong trường hợp này đèn báo bật), do đó nó được kết nối riêng với đầu vào PD3. Việc nhấn các nút còn lại được xác định bằng ADC và điện trở R16, R18. Nếu các nút không được nhấn trong vòng 16 giây, MK sẽ chuyển sang chế độ ngủ và đèn báo sẽ tắt. Khi ở chế độ “Điều khiển từ xa cho máy ảnh” khoảng thời gian này là 32 giây và khi bật đèn pin - 1 phút. MK cũng có thể được chuyển sang chế độ ngủ theo cách thủ công bằng cách sử dụng các nút điều khiển. Khi đồng hồ bấm giờ đang chạy với độ phân giải đếm là 0,01 giây. Thiết bị không chuyển sang chế độ ngủ.

Bảng mạch in

Thiết bị được lắp ráp trên một bảng mạch in hai mặt có dạng hình tròn có kích thước bằng đường kính trong của vỏ đồng hồ đeo tay. Nhưng trong quá trình sản xuất, tôi đã sử dụng hai tấm ván một mặt có độ dày 0,35 mm. Độ dày này một lần nữa đạt được bằng cách bóc nó ra khỏi tấm sợi thủy tinh hai mặt có độ dày 1,5 mm. Các tấm ván sau đó được dán lại với nhau. Tất cả điều này được thực hiện bởi vì tôi không có sợi thủy tinh hai mặt mỏng và mỗi milimet độ dày được lưu trong không gian bên trong hạn chế của vỏ đồng hồ đều rất có giá trị và không cần phải căn chỉnh trong quá trình sản xuất dây dẫn in bằng LUT phương pháp. Bản vẽ bảng mạch in và vị trí các bộ phận có trong file đính kèm. Một bên có đèn báo và điện trở giới hạn dòng điện R1-R8. Ở mặt sau là tất cả các chi tiết khác. Có hai lỗ xuyên qua cho đèn LED trắng và hồng ngoại.

Các điểm tiếp xúc nút và giá đỡ pin được làm bằng thép tấm lò xo dẻo có độ dày 0,2...0,3 mm. và đóng hộp. Dưới đây là hình ảnh của bảng từ cả hai phía:

Thiết kế, các bộ phận và khả năng thay thế của chúng

Bộ vi điều khiển ATmega168PA-AU có thể được thay thế bằng ATmega168P-AU, ATmega168V-10AU ATmega168-20AU. Kim chỉ thị kỹ thuật số - 4 kim KPSA02-105 ánh sáng đỏ siêu sáng với chiều cao chữ số 5,08 mm. Có thể được cung cấp từ cùng dòng KPSA02-xxx hoặc KCSA02-xxx. (không phải màu xanh lá cây - chúng sẽ phát sáng yếu) Tôi không biết về các loại tương tự khác có kích thước tương tự với độ sáng vừa phải. Ở HG1, HG3, việc kết nối các đoạn cực âm khác với HG2, HG4, vì nó thuận tiện hơn cho tôi trong việc nối dây vào bảng mạch in. Về vấn đề này, một bảng tạo ký tự khác được sử dụng cho chúng trong chương trình. Điện trở và tụ điện đã qua sử dụng SMD để gắn trên bề mặt có kích thước tiêu chuẩn 0805 và 1206, đèn LED D1-D7 có kích thước tiêu chuẩn 0805. Đèn LED trắng và hồng ngoại có đường kính 3 mm. Bảng có 13 lỗ xuyên qua để lắp các dây nối. DS18B20 có giao diện 1 dây được sử dụng làm cảm biến nhiệt độ. LS1 là loa tweeter áp điện thông thường, được lắp vào trong nắp. Với một tiếp điểm, nó được kết nối với bảng bằng cách sử dụng một lò xo được lắp trên đó, với tiếp điểm còn lại, nó được kết nối với thân đồng hồ bằng chính nắp. Bộ cộng hưởng thạch anh từ đồng hồ đeo tay.

Lập trình, firmware, cầu chì

Đối với lập trình trong mạch, bo mạch chỉ có 6 điểm tiếp xúc tròn (J1), vì đầu nối đầy đủ không vừa với chiều cao. Tôi kết nối chúng với bộ lập trình bằng một thiết bị tiếp xúc được làm từ phích cắm chân PLD2x3 và hàn lò xo vào chúng, ấn chúng bằng một tay vào các điểm. Dưới đây là hình ảnh của thiết bị.

Tôi đã sử dụng nó vì trong quá trình gỡ lỗi tôi đã phải flash lại MK nhiều lần. Khi flash chương trình cơ sở một lần, việc hàn các dây mỏng được kết nối với bộ lập trình vào các bản vá sẽ dễ dàng hơn, sau đó hàn lại chúng. Sẽ thuận tiện hơn khi flash MK mà không cần pin, nhưng nguồn điện đến từ nguồn +3V bên ngoài hoặc từ bộ lập trình có cùng điện áp cung cấp. Chương trình được viết bằng trình biên dịch chương trình trong môi trường VMLAB 3.15. Mã nguồn, firmware cho FLASH và EEPROM trong ứng dụng.

Các bit FUSE của vi điều khiển DD1 phải được lập trình như sau:
CKSEL3...0 = 0010 - xung nhịp từ bộ dao động RC bên trong 8 MHz;
SUT1...0 =10 - Thời gian khởi động: 6 CK + 64 ms;
CKDIV8 = 1 - bộ chia tần số cho 8 bị vô hiệu hóa;
CKOUT = 1 - Đồng hồ đầu ra trên CKOUT bị tắt;
BODLEVEL2…0 = 111 - điều khiển điện áp nguồn bị vô hiệu hóa;
EESAVE = 0 - xóa EEPROM khi lập trình tinh thể bị cấm;
WDTON = 1 - Bộ đếm thời gian của cơ quan giám sát không phải lúc nào cũng bật;
Các bit FUSE còn lại tốt nhất không được chạm tới. Bit FUSE được lập trình nếu được đặt thành “0”.

Cần phải flash EEPROM với kết xuất có trong kho lưu trữ.

Các ô đầu tiên của EEPROM chứa các thông số ban đầu của thiết bị. Bảng dưới đây mô tả mục đích của một số trong số chúng và có thể được thay đổi trong giới hạn hợp lý.

Địa chỉ ô

Mục đích

Tham số

Ghi chú

Lượng điện áp pin mà tại đó xảy ra tín hiệu ở mức thấp

260 ($104) (2.6V)

hệ số hiệu chỉnh giá trị điện áp pin đo được

khoảng thời gian để chuyển sang chế độ ngủ

1 đơn vị = 1 giây

khoảng thời gian để chuyển sang chế độ ngủ khi đèn pin bật

1 đơn vị = 1 giây

khoảng thời gian để chuyển sang chế độ ngủ khi ở chế độ điều khiển từ xa cho máy ảnh

1 đơn vị = 1 giây

Số phím IButton được lưu trữ ở đây

Giải thích nhỏ về điểm:

1 điểm. Điều này cho biết mức điện áp trên pin mà đèn LED sẽ sáng lên, biểu thị giá trị thấp của nó. Tôi đặt nó thành 2.6V (tham số - 260). Nếu bạn cần thứ gì khác, ví dụ 2.4V, thì bạn cần viết 240 ($00F0). Byte thấp được lưu trữ trong ô tại địa chỉ $0000 và byte cao được lưu trữ trong ô có địa chỉ $0001.

2 điểm. Vì tôi không lắp một biến trở trên bo mạch để điều chỉnh độ chính xác của phép đo điện áp pin do thiếu không gian nên tôi đã giới thiệu phần mềm hiệu chỉnh. Quy trình hiệu chuẩn để đo chính xác như sau: ban đầu, hệ số 1024 ($400) được ghi trong ô EEPROM này, bạn cần chuyển thiết bị sang chế độ hoạt động và xem điện áp trên chỉ báo, sau đó đo điện áp thực trên pin bằng vôn kế. Hệ số hiệu chỉnh (K), phải được đặt, được tính theo công thức: K=Uр/Ui*1024 trong đó Up là điện áp thực được đo bằng vôn kế, Ui là điện áp được đo bằng chính thiết bị. Sau khi tính toán hệ số “K”, nó được nhập vào thiết bị (như đã nêu trong hướng dẫn vận hành). Sau khi hiệu chỉnh, lỗi của tôi không vượt quá 3%.

3 điểm. Tại đây bạn có thể đặt thời gian sau đó thiết bị sẽ chuyển sang chế độ ngủ nếu không nhấn nút nào. Của tôi có giá 16 giây. Ví dụ: nếu bạn cần ngủ sau 30 giây, thì bạn cần viết ra 30 ($26).

Ở điểm 4 và 5 giống nhau.

6 điểm. Tại địa chỉ $0030, mã họ khóa số 0 (Dallas 1-Wire) được lưu trữ, sau đó là số 48 bit và CRC của nó. Và như vậy 50 phím theo thứ tự.

Tính năng cài đặt, vận hành

Việc thiết lập thiết bị bao gồm việc hiệu chỉnh phép đo điện áp pin, như mô tả ở trên. Cũng cần phát hiện độ lệch của tốc độ xung nhịp trong 1 giờ, tính toán và nhập giá trị hiệu chỉnh phù hợp (quy trình được mô tả trong hướng dẫn vận hành).

Thiết bị được cấp nguồn bằng pin lithium CR2032 (3V) và tiêu thụ khoảng 4 µA ở chế độ ngủ và 5...20 mA ở chế độ hoạt động, tùy thuộc vào độ sáng của đèn báo. Với việc sử dụng chế độ hoạt động trong 5 phút hàng ngày, pin sẽ kéo dài khoảng 2....8 tháng tùy thuộc vào độ sáng. Vỏ đồng hồ được kết nối với cực âm của pin.

Khả năng đọc phím đã được thử nghiệm trên DS1990. Mô phỏng đã được thử nghiệm trên hệ thống liên lạc nội bộ METAKOM. Theo số sê-ri từ 46 đến 49 (4 cuối cùng), các phím phổ quát cho hệ thống liên lạc nội bộ được nhấp nháy (tất cả các phím được lưu trong EEPROM, chúng có thể được thay đổi trước khi nhấp nháy). Khóa được đăng ký theo số 49 đã mở tất cả các hệ thống liên lạc nội bộ METAKOM mà tôi đã xem qua, tôi không có cơ hội kiểm tra các khóa phổ thông còn lại, tôi lấy mã của chúng từ mạng.

Điều khiển từ xa cho máy ảnh đã được thử nghiệm trên các mẫu Pentax optio L20 và Nikon D3000. Không thể lấy được Canon để xem xét.

Hướng dẫn sử dụng chiếm 13 trang nên tôi không đưa vào bài viết mà đưa vào phần phụ lục ở dạng PDF.

Kho lưu trữ chứa:
Lược đồ trong và GIF;
Bản vẽ bảng mạch in và sắp xếp các phần tử theo định dạng;
Phần sụn và mã nguồn trong trình biên dịch mã;

Danh sách các nguyên tố phóng xạ

chỉ định Kiểu Mệnh giá Số lượng Ghi chúCửa hàngsổ ghi chú của tôi
DD1 MK AVR 8-bit

ATmega168PA

1 PA-AU Vào sổ ghi chú
U2 cảm biến nhiệt độ

DS18B20

1 Vào sổ ghi chú
Q1 bóng bán dẫn MOSFET

2N7002

1 Vào sổ ghi chú
C1, C2 tụ điện30 pF2 Vào sổ ghi chú
C3, C4 tụ điện0,1 µF2 Vào sổ ghi chú
C5 Tụ điện47 µF1 Vào sổ ghi chú
R1-R8, R17 Điện trở

100 Ohm

9 Vào sổ ghi chú
R9 Điện trở

10 kOhm

1 Vào sổ ghi chú
R10 Điện trở

8,2 Ohm

1 Vào sổ ghi chú
R11 Điện trở

300 Ohm

1 Vào sổ ghi chú
R12 Điện trở

2 MOhm

1 Vào sổ ghi chú
R13 Điện trở

220 kOhm

1 Vào sổ ghi chú
R14 Điện trở

30 kOhm

1 Vào sổ ghi chú
R15, R19 Điện trở

4,7 kOhm

2 Vào sổ ghi chú
R16 Điện trở

20 kOhm

1

Đồng hồ có đèn nền LED và kim phút rung trên vi điều khiển Arduino
Chiếc đồng hồ độc đáo với đèn nền LED và kim phút rung này được chế tạo bằng chip điều khiển TLC5940 TLC. Nhiệm vụ chính của nó là mở rộng số lượng tiếp điểm điều chếPWM. Một tính năng khác của chiếc đồng hồ này là nó đã chuyển đổi một vôn kế analog thành một thiết bị đo phút. Để làm điều này, một thang đo mới được in trên máy in tiêu chuẩn và dán lên trên thang đo cũ. Như vậy, phút thứ 5 không được tính, chỉ là trong phút thứ năm, bộ đếm thời gian hiển thị mũi tên chỉ về cuối thang đo (ngoài thang đo). Việc điều khiển chính được thực hiện trên bộ vi điều khiển Arduino Uno.

Để đảm bảo đèn nền của đồng hồ không phát sáng quá chói trong phòng tối, một mạch điện đã được triển khai để tự động điều chỉnh độ sáng tùy theo độ chiếu sáng (sử dụng điện trở quang).

Bước 1: Các thành phần bắt buộc



Đây là những gì bạn sẽ cần:

  • mô-đun vôn kế tương tự 5V DC;
  • Bộ vi điều khiển Arduino UNO hoặc Arduino phù hợp khác;
  • Bảng mạch Arduino (board proto);
  • Mô-đun Đồng hồ thời gian thực (RTC) DS1307;
  • Mô-đun có bộ điều khiển PLC TLC5940;
  • Đèn nền LED hình cánh hoa – 12 chiếc.;
  • Các thành phần để lắp ráp mạch điều khiển độ sáng tự động (LDR).

Ngoài ra, để sản xuất một số thành phần khác của dự án, bạn nên có quyền truy cập vào máy in 3D và máy cắt laser. Giả định rằng bạn có quyền truy cập này, vì vậy hướng dẫn sẽ bao gồm các bản vẽ sản xuất ở các giai đoạn thích hợp.

Bước 2: Quay số




Mặt số bao gồm ba phần (lớp) được cắt trên máy cắt laser từ tấm MDF 3 mm, được gắn chặt với nhau bằng bu lông. Một tấm không có khe (phía dưới bên phải trong hình) được đặt dưới một tấm khác để định vị các đèn LED (phía dưới bên trái). Sau đó, các đèn LED riêng lẻ được đặt vào các khe thích hợp và bảng mặt trước được đặt lên trên (trên cùng trong hình). Bốn lỗ được khoan dọc theo mép mặt số, qua đó cả ba phần được bắt vít với nhau.

  • Để kiểm tra hiệu suất của đèn LED ở giai đoạn này, người ta đã sử dụng pin dạng đồng xu CR2032;
  • Để cố định đèn LED, người ta sử dụng các dải băng dính nhỏ dán vào mặt sau của đèn LED;
  • Tất cả các chân đèn LED đều được uốn cong trước cho phù hợp;
  • Các lỗ dọc theo các cạnh được khoan lại, qua đó việc bắt vít được thực hiện. Hóa ra điều này thuận tiện hơn nhiều.

Bản vẽ kỹ thuật của các bộ phận mặt số có sẵn tại:

Bước 3: Thiết kế mạch



Ở giai đoạn này, mạch điện đã được phát triển. Nhiều sách giáo khoa và hướng dẫn khác nhau đã được sử dụng cho mục đích này. Chúng tôi sẽ không đi sâu vào quá trình này; hai tệp bên dưới hiển thị mạch điện đã hoàn thiện được sử dụng trong dự án này.

Bước 4: Kết nối bảng mạch Arduino





  1. Bước đầu tiên là hàn tất cả các điểm tiếp xúc kim trên bảng mạch và bảng phần;
  2. Hơn nữa, do rất nhiều bo mạch và thiết bị ngoại vi sử dụng nguồn 5V và GND nên để đảm bảo độ tin cậy, hai dây dẫn 5V và GND đã được hàn trên bảng mạch;
  3. Tiếp theo, bộ điều khiển TLC5940 TLC được lắp đặt bên cạnh các điểm tiếp xúc đã sử dụng;
  4. Sau đó bộ điều khiển TLC5940 được kết nối theo sơ đồ kết nối;
  5. Để có thể sử dụng pin, một mô-đun RTC đã được lắp đặt ở mép bảng mạch. Nếu bạn hàn nó vào giữa bảng, dấu chốt sẽ không nhìn thấy được;
  6. Mô-đun RTC đã được kết nối theo sơ đồ kết nối;
  7. Mạch điều khiển độ sáng tự động (LDR) đã được lắp ráp, các bạn có thể xem tại link
  8. Các dây của vôn kế được kết nối bằng cách nối dây với chân 6 và GND.
  9. Cuối cùng, 13 dây cho đèn LED đã được hàn (Trên thực tế, hóa ra tốt hơn nên làm điều này trước khi chuyển sang bước 3).

Bước 5: Mã

Mã bên dưới được biên soạn từ nhiều thành phần đồng hồ khác nhau được tìm thấy trên Internet. Nó đã được sửa lỗi hoàn toàn và hiện có đầy đủ chức năng, đồng thời một số nhận xét khá chi tiết đã được thêm vào. Nhưng trước khi tải vào vi điều khiển, hãy xem xét các điểm sau:

  • Trước khi flash firmware Arduino, bạn cần bỏ ghi chú dòng đặt thời gian:
    rtc.just(DateTime(__DATE__, __TIME__))
    Sau khi flash bộ điều khiển bằng dòng này (thời gian đã được đặt), bạn cần bình luận lại và flash lại bộ điều khiển. Điều này cho phép mô-đun RTC sử dụng pin để ghi nhớ thời gian nếu mất nguồn điện chính.
  • Mỗi lần bạn sử dụng "Tlc.set()", bạn cần sử dụng "Tlc.update"

Bước 6: Vòng ngoài

Vòng đồng hồ bên ngoài được in 3D bằng máy in Replicator Z18. Nó gắn vào đồng hồ bằng vít trên mặt đồng hồ. Dưới đây là tệp có mô hình 3D của chiếc nhẫn để in trên máy in 3D.

Bước 7: Lắp ráp đồng hồ


Bộ vi điều khiển Arduino cùng với tất cả các thiết bị điện tử khác được cố định vào mặt sau của đồng hồ bằng cách sử dụng ốc vít và đai ốc làm miếng đệm. Sau đó, tôi kết nối tất cả các đèn LED, vôn kế analog và LDR với các dây đã được hàn trước đó vào bảng mạch. Tất cả các đèn LED được kết nối với nhau bằng một chân và được kết nối với chân VCC trên bộ điều khiển TLC5940 (một đoạn dây được hàn đơn giản thành hình tròn).

Cho đến nay, tất cả những điều này vẫn chưa được cách ly tốt khỏi hiện tượng đoản mạch, nhưng công việc này sẽ tiếp tục trong các phiên bản tương lai.

Tôi nhớ... Ba mươi năm trước, sáu chỉ số là một kho báu nhỏ. Sau đó, bất kỳ ai có thể tạo ra đồng hồ sử dụng logic TTL với các chỉ số như vậy đều được coi là một chuyên gia tinh vi trong lĩnh vực của mình.

Ánh sáng của đèn báo xả khí có vẻ ấm áp hơn. Sau vài phút, tôi tự hỏi liệu những chiếc đèn cũ này có hoạt động được không và muốn làm gì đó với chúng. Bây giờ rất dễ dàng để làm một chiếc đồng hồ như vậy. Tất cả những gì bạn cần là một bộ vi điều khiển...

Vì đồng thời tôi cũng quan tâm đến việc lập trình bộ vi điều khiển bằng các ngôn ngữ cấp cao nên tôi quyết định chơi một chút. Tôi đã cố gắng chế tạo một chiếc đồng hồ đơn giản bằng cách sử dụng các chỉ báo xả khí kỹ thuật số.

Mục đích của thiết kế

Tôi quyết định rằng đồng hồ phải có sáu chữ số và thời gian phải được đặt bằng số lượng nút tối thiểu. Ngoài ra, tôi muốn thử sử dụng một số dòng vi điều khiển phổ biến nhất của các nhà sản xuất khác nhau. Tôi dự định viết chương trình bằng C.

Đèn báo xả khí yêu cầu điện áp cao để hoạt động. Nhưng tôi không muốn đối mặt với điện áp nguồn nguy hiểm. Đồng hồ được cho là được cấp nguồn bằng điện áp 12 V vô hại.

Vì mục tiêu chính của tôi là chơi game nên bạn sẽ không tìm thấy bất kỳ mô tả nào về thiết kế cơ khí hoặc bản vẽ thân máy ở đây. Nếu muốn, bạn có thể tự thay đổi đồng hồ phù hợp với sở thích và kinh nghiệm của mình.

Đây là những gì tôi có:

  • Hiển thị thời gian: HH MM SS
  • Chỉ báo cảnh báo: HH MM --
  • Chế độ hiển thị thời gian: 24 giờ
  • Độ chính xác ±1 giây mỗi ngày (tùy thuộc vào tinh thể thạch anh)
  • Điện áp cung cấp: 12 V
  • Mức tiêu thụ hiện tại: 100 mA

Sơ đồ đồng hồ

Đối với thiết bị có màn hình kỹ thuật số sáu chữ số, chế độ ghép kênh là một giải pháp tự nhiên.

Mục đích của hầu hết các thành phần của sơ đồ khối (Hình 1) đều rõ ràng mà không cần bình luận. Ở một mức độ nhất định, nhiệm vụ phi tiêu chuẩn là tạo ra một bộ chuyển đổi mức TTL thành tín hiệu điều khiển chỉ báo điện áp cao. Trình điều khiển anode được chế tạo bằng cách sử dụng các bóng bán dẫn NPN và PNP điện áp cao. Sơ đồ được mượn từ Stefan Kneller (http://www.stefankneller.de).

Chip 74141 TTL chứa bộ giải mã BCD và trình điều khiển điện áp cao cho mỗi chữ số. Có thể khó đặt hàng một con chip. (Mặc dù tôi không biết có ai làm chúng nữa không). Nhưng nếu bạn tìm thấy chỉ báo xả khí, 74141 có thể ở đâu đó gần đó :-). Vào thời điểm logic TTL, thực tế không có sự thay thế nào cho chip 74141. Vì vậy, hãy cố gắng tìm một nơi nào đó.

Các chỉ báo yêu cầu điện áp khoảng 170 V. Việc phát triển một mạch đặc biệt cho bộ chuyển đổi điện áp là vô nghĩa vì có một số lượng lớn chip chuyển đổi tăng áp. Tôi đã chọn IC34063 rẻ tiền và được bán rộng rãi. Mạch chuyển đổi gần như được sao chép hoàn toàn từ bảng dữ liệu MC34063. Một công tắc nguồn T13 vừa được thêm vào. Công tắc bên trong không phù hợp với điện áp cao như vậy. Tôi đã sử dụng cuộn cảm làm cuộn cảm cho bộ chuyển đổi. Nó được thể hiện trong Hình 2; đường kính của nó là 8 mm và chiều dài của nó là 10 mm.

Hiệu suất của bộ chuyển đổi khá tốt, điện áp đầu ra tương đối an toàn. Với dòng tải 5 mA, điện áp đầu ra giảm xuống 60 V. R32 hoạt động như một điện trở cảm nhận dòng điện.

Để cấp nguồn cho logic, bộ điều chỉnh tuyến tính U4 được sử dụng. Có không gian trên mạch và bo mạch cho pin dự phòng. (3,6V - NiMH hoặc NiCd). D7 và D8 là điốt Schottky, điện trở R37 được thiết kế để hạn chế dòng sạc theo đặc tính của pin. Nếu bạn chế tạo đồng hồ chỉ để giải trí, bạn sẽ không cần đến pin D7, D8 và R37.

Mạch cuối cùng được hiển thị trong Hình 3.

Hình 3.

Các nút cài đặt thời gian được kết nối thông qua điốt. Trạng thái của các nút được kiểm tra bằng cách đặt logic “1” ở đầu ra tương ứng. Là một tính năng bổ sung, bộ phát áp điện được kết nối với đầu ra của bộ vi điều khiển. Để tắt tiếng rít khó chịu đó, hãy sử dụng một công tắc nhỏ. Một chiếc búa sẽ khá phù hợp cho việc này, nhưng đây là biện pháp cuối cùng :-).

Bạn có thể tìm thấy danh sách các thành phần mạch, bản vẽ PCB và sơ đồ bố trí trong phần "Tải xuống".

CPU

Hầu như bất kỳ bộ vi điều khiển nào có đủ số lượng chân, số lượng chân yêu cầu tối thiểu được nêu trong Bảng 1, đều có thể điều khiển thiết bị đơn giản này.

Bảng 1.
Chức năng kết luận
Dinh dưỡng 2
Bộ cộng hưởng thạch anh 2
Quản lý cực dương 6
Trình điều khiển 74141 4
Nhập nút 1
Bộ phát Piezo 1
Tổng cộng 16

Mỗi nhà sản xuất phát triển dòng vi điều khiển và loại vi điều khiển riêng của mình. Vị trí của các chân là riêng cho từng loại. Tôi đã cố gắng thiết kế một bảng mạch đa năng cho một số loại vi điều khiển. Bảng mạch có ổ cắm 20 chân. Với một vài dây nối, bạn có thể điều chỉnh nó phù hợp với các bộ vi điều khiển khác nhau.

Các bộ vi điều khiển được thử nghiệm trong mạch này được liệt kê dưới đây. Bạn có thể thử nghiệm với các loại khác. Ưu điểm của sơ đồ này là khả năng sử dụng các bộ xử lý khác nhau. Theo quy luật, những người vô tuyến nghiệp dư sẽ sử dụng một họ vi điều khiển và có các công cụ lập trình và phần mềm tương ứng. Có thể có vấn đề với bộ vi điều khiển của các nhà sản xuất khác, vì vậy tôi đã cho bạn cơ hội chọn bộ xử lý từ dòng sản phẩm yêu thích của bạn.

Tất cả các chi tiết cụ thể về việc bật các bộ vi điều khiển khác nhau được phản ánh trong Bảng 2...5 và Hình 4...7.

Ban 2.
Freescale
Kiểu MC68HC908QY1
Bộ cộng hưởng thạch anh 12 MHz
Tụ điện C1, C2 22 pF
Chương trình freescale.zip
(xem phần "Tải xuống")
Cài đặt

Lưu ý: Điện trở 10 MΩ được mắc song song với bộ cộng hưởng thạch anh.

Bàn số 3.
vi mạch
Kiểu PIC16F628A
Bộ cộng hưởng thạch anh 32,768 kHz
Tụ điện C1, C2 22 pF
Chương trình pic628.zip
(xem phần "Tải xuống")
Cài đặt Int. Bộ tạo 4 MHz - I/O RA6,
TẮT MCLR, TẮT WDT, TẮT LVP,
TẮT BROUT, TẮT CP, TẮT PWRUP

Lưu ý: Vi mạch phải được xoay 180° trong ổ cắm.

Bảng 4.
Atmel
Kiểu ATtiny2313
Bộ cộng hưởng thạch anh 12 MHz
Tụ điện C1, C2 15 pF
Chương trình attiny.zip
(xem phần "Tải xuống")
Cài đặt Sq. Bộ dao động 8 MHz, BẬT THIẾT LẬP LẠI

Lưu ý: Thêm các thành phần SMD R và C vào chân RESET (10 kΩ và 100 nF).

Bảng 5.
Atmel
Kiểu AT89C2051
Bộ cộng hưởng thạch anh 12 MHz
Tụ điện C1, C2 22 pF
Chương trình at2051.zip
(xem phần "Tải xuống")
Cài đặt --

Lưu ý: Thêm các thành phần SMD R và C vào chân RESET (10 kΩ và 100 nF); kết nối các chân được đánh dấu bằng dấu hoa thị với bus nguồn +Ub thông qua điện trở SMD 3,3 kOhm.

Khi so sánh mã của các bộ vi điều khiển khác nhau, bạn sẽ thấy chúng rất giống nhau. Có sự khác biệt trong cách truy cập vào các cổng và định nghĩa về chức năng ngắt, cũng như những gì phụ thuộc vào các thành phần phần cứng.

Mã nguồn bao gồm hai phần. Chức năng chủ yếu() cấu hình các cổng và khởi động bộ hẹn giờ tạo tín hiệu ngắt. Sau đó, chương trình sẽ quét các nút được nhấn và đặt giá trị thời gian và cảnh báo thích hợp. Ở đó, trong vòng lặp chính, thời gian hiện tại được so sánh với đồng hồ báo thức và bộ phát áp điện được bật.

Phần thứ hai là một chương trình con để xử lý các ngắt hẹn giờ. Một chương trình con được gọi mỗi mili giây (tùy thuộc vào khả năng của bộ hẹn giờ) sẽ tăng các biến thời gian và điều khiển các chữ số hiển thị. Ngoài ra, trạng thái của các nút cũng được kiểm tra.

Chạy mạch

Khi lắp đặt linh kiện và setup nên bắt đầu từ nguồn điện. Hàn bộ điều chỉnh U4 và các bộ phận xung quanh. Kiểm tra điện áp 5 V cho U2 và 4,6 V cho U1. Bước tiếp theo là lắp ráp bộ chuyển đổi điện áp cao. Sử dụng điện trở cắt R36 để đặt điện áp thành 170 V. Nếu phạm vi điều chỉnh không đủ, hãy thay đổi một chút điện trở của điện trở R33. Bây giờ cài đặt chip U2, bóng bán dẫn và điện trở của mạch điều khiển cực dương và kỹ thuật số. Kết nối đầu vào U2 với bus GND và kết nối một trong các điện trở R25 - R30 nối tiếp với bus nguồn +Ub. Các số chỉ báo sẽ sáng lên ở các vị trí tương ứng. Ở giai đoạn cuối cùng của việc kiểm tra mạch, nối chân 19 của vi mạch U1 với đất - bộ phát áp điện sẽ phát ra tiếng bíp.

Bạn sẽ tìm thấy mã nguồn và các chương trình đã biên dịch trong tệp ZIP tương ứng trong phần “Tải xuống”. Sau khi flash chương trình vào bộ vi điều khiển, hãy kiểm tra cẩn thận từng chân ở vị trí U1 và lắp đặt các dây nối và dây hàn cần thiết. Tham khảo các hình ảnh vi điều khiển ở trên. Nếu bộ vi điều khiển được lập trình và kết nối chính xác, bộ tạo của nó sẽ bắt đầu hoạt động. Bạn có thể đặt thời gian và báo thức. Chú ý! Có khoảng trống trên bảng cho một nút nữa - đây là nút dự phòng để mở rộng trong tương lai :-).

Kiểm tra độ chính xác tần số máy phát. Nếu nó không nằm trong phạm vi dự kiến, hãy thay đổi một chút giá trị của tụ C1 và C2. (Hàn song song các tụ nhỏ hoặc thay thế bằng tụ khác). Độ chính xác của đồng hồ sẽ được cải thiện.

Phần kết luận

Bộ xử lý 8 bit nhỏ khá phù hợp với các ngôn ngữ cấp cao. C ban đầu không dành cho các bộ vi điều khiển nhỏ, nhưng đối với các ứng dụng đơn giản, bạn có thể sử dụng nó tốt. Hợp ngữ phù hợp hơn với các tác vụ phức tạp đòi hỏi thời gian quan trọng hoặc tải CPU tối đa. Đối với hầu hết những người nghiệp dư trên đài phát thanh, cả phiên bản miễn phí và phiên bản giới hạn phần mềm chia sẻ của trình biên dịch C đều phù hợp.

Lập trình C giống nhau cho tất cả các bộ vi điều khiển. Bạn phải biết các chức năng phần cứng (thanh ghi và thiết bị ngoại vi) của loại vi điều khiển đã chọn. Hãy cẩn thận với các thao tác bit - ngôn ngữ C không phù hợp để thao tác các bit riêng lẻ, như có thể thấy trong ví dụ gốc khi dành cho ATtiny.

Bạn xong chưa? Sau đó điều chỉnh để chiêm ngưỡng các ống chân không và xem ...

...ngày xưa đã trở lại... :-)

Ghi chú của biên tập viên

Một sản phẩm tương tự hoàn toàn của SN74141 là vi mạch K155ID1, được sản xuất bởi phần mềm Minsk Integral.
Vi mạch có thể dễ dàng tìm thấy trên Internet.