Mục lục:

Đồng hồ kỹ thuật số Arduino được đồng bộ hóa bởi dòng điện 60Hz: 8 bước (có hình ảnh)
Đồng hồ kỹ thuật số Arduino được đồng bộ hóa bởi dòng điện 60Hz: 8 bước (có hình ảnh)

Video: Đồng hồ kỹ thuật số Arduino được đồng bộ hóa bởi dòng điện 60Hz: 8 bước (có hình ảnh)

Video: Đồng hồ kỹ thuật số Arduino được đồng bộ hóa bởi dòng điện 60Hz: 8 bước (có hình ảnh)
Video: Sự khác nhau giữa tín hiệu Analog và Digital | Học Nghề Kỹ Sư Điện & Điện Tử 2024, Tháng mười một
Anonim
Đồng hồ kỹ thuật số Arduino được đồng bộ hóa bởi dòng điện 60Hz
Đồng hồ kỹ thuật số Arduino được đồng bộ hóa bởi dòng điện 60Hz

Đồng hồ kỹ thuật số dựa trên Arduino này được đồng bộ hóa bởi dòng điện 60Hz. Nó có một màn hình hiển thị 4 chữ số 7 phân đoạn anode chung đơn giản và rẻ tiền, hiển thị giờ và phút. Nó sử dụng một bộ dò chéo để phát hiện khi nào sóng hình sin 60Hz đi qua điểm điện áp 0 và tạo ra sóng vuông 60 Hz.

Trong khoảng thời gian ngắn, tần số của sóng sin đến từ đường dây điện có thể thay đổi rất ít do tải, nhưng trong thời gian dài, tần số trung bình rất chính xác đến 60Hz. Chúng tôi có thể tận dụng điều này để lấy nguồn thời gian để đồng bộ hóa đồng hồ của chúng tôi.

Bước 1: Sơ đồ mạch

Sơ đồ mạch
Sơ đồ mạch

Có hai phiên bản của mạch tùy thuộc vào việc bạn muốn sử dụng máy biến áp có vòi ở giữa hay không có vòi, trong cả hai trường hợp, hoạt động của mạch gần như giống hệt nhau. Đối với bản dựng này, tôi đã sử dụng bộ chuyển đổi âm tường (không có vòi ở giữa) đầu ra 12V AC. Tôi sẽ sử dụng thiết kế này (Sơ đồ mạch Digital Clock1) cho phần mô tả mạch. Lưu ý rằng điều quan trọng là sử dụng bộ chuyển đổi gắn tường đầu ra 12V AC chứ không phải 12V DC để chúng ta có thể chạm vào sóng sin AC để xác định thời gian. Bạn có thể cũng có thể sử dụng một máy biến áp đầu ra 9V AC, loại bỏ R19 và làm cho nó hoạt động, nhưng 12V rất phổ biến có sẵn. Đây là cách mạch hoạt động:

120V AC ở 60Hz được chuyển đổi thành 12V AC bằng máy biến áp TR1. Điều này được đưa đến diode D4 và được chỉnh lưu để chỉ có điện áp + ve được cấp đến và được làm mịn đến xấp xỉ DC với gợn sóng, bởi tụ điện C3. Điện áp trên C3 được cấp cho ổn áp 7805 (U6) qua điện trở R19. R19 được sử dụng để giảm điện áp trên C3 mà trong trường hợp của tôi được đo ở mức xấp xỉ 15VDC. Điều này có thể được điều chỉnh bởi 7805 nhưng với mức đầu vào này, 7805 phải giảm khoảng 10VDC và kết quả là khá nóng. Bằng cách sử dụng R19 để giảm điện áp xuống khoảng 10VDC, chúng tôi ngăn U6 nóng lên quá nhiều. Vì vậy, đây không phải là một kỹ thuật chuyển đổi điện năng hiệu quả, nhưng nó hoạt động cho các mục đích của chúng tôi. LƯU Ý: sử dụng ít nhất điện trở 1 / 2W trở lên ở đây. Mạch vẽ khoảng 55 ma, do đó công suất tiêu tán trong R19 là khoảng 1 / 3W dựa trên P = I ** 2 * R hoặc P = 55ma x 55ma x 120 ohms = 0,363W. Tiếp theo U6 xuất ra 5V DC thuần túy với C4 và C5 trên đầu ra để lọc bất kỳ nhiễu nào trên đường nguồn 5V. Nguồn 5V DC này cấp nguồn cho tất cả các IC trên bo mạch.

Từ TR1, chúng tôi cũng lấy một mẫu tín hiệu AC chưa lọc và đưa nó vào chiết áp RV1 được sử dụng để điều chỉnh mức được cấp cho bộ dò chéo. R18 và R17 tạo thành một bộ chia điện áp để giảm hơn nữa mức điện áp AC đi vào. Hãy nhớ rằng điều này đến ở 12V AC và chúng tôi cần giảm nó xuống dưới 5 V để nó sẽ hoạt động với bộ phát hiện chéo của chúng tôi mà chỉ được cung cấp bởi 5VDC. R15 và R16 cung cấp giới hạn dòng điện trong khi D1 và D2 nhằm ngăn chặn việc sử dụng quá mức op-amp U5. Trong cấu hình hiển thị đầu ra của U5 trên chân 1 sẽ luân phiên giữa + 5V và 0V mỗi khi sóng sin đến thay đổi từ dương sang âm. Điều này tạo ra một sóng vuông 60 Hz được cấp cho bộ vi điều khiển, U4. Chương trình được tải trên U4 sau đó sử dụng sóng vuông 60Hz này để tăng đồng hồ mỗi phút và giờ. Làm thế nào điều này được thực hiện sẽ được thảo luận trong phần về chương trình phần mềm và trong phần bình luận phần mềm.

U7 thanh ghi dịch chuyển 74HC595 được sử dụng vì chúng tôi có một số chân số hạn chế trên bộ vi xử lý, vì vậy nó được sử dụng để mở rộng số lượng đầu ra. Chúng tôi sử dụng 4 chân kỹ thuật số trên bộ vi xử lý nhưng có thể điều khiển 7 phân đoạn trên màn hình thông qua 74HC595. Điều này được thực hiện bằng cách chuyển các mẫu bit xác định trước, được lưu trữ trong bộ vi điều khiển và đại diện cho từng chữ số sẽ được hiển thị, vào thanh ghi dịch chuyển.

Màn hình được sử dụng ở đây là cực dương chung, vì vậy chúng tôi cần đảo các mức tín hiệu ra khỏi 74HC595 để bật một đoạn. Khi một đoạn được bật, tín hiệu đi ra từ chân đầu ra 74HC595 sẽ ở mức + 5V, nhưng chúng ta cần chân mà nó đang cấp trên màn hình ở mức 0V để bật đoạn hiển thị đó. Vì vậy, để làm được điều này, chúng ta cần bộ nghịch lưu hex U2 và U3. Thật không may, một IC biến tần chỉ có thể xử lý 6 nghịch lưu nên chúng ta cần hai trong số chúng mặc dù ở cái thứ hai, chúng ta chỉ sử dụng một trong 6 cổng. Lãng phí một cách đáng tiếc. Bạn có thể hỏi tại sao không sử dụng màn hình loại cathode chung ở đây và loại bỏ U2 và U3? Câu trả lời là bạn có thể, tôi chỉ tình cờ có một loại cực dương phổ biến trong nguồn cung cấp linh kiện của tôi. Nếu bạn có hoặc muốn sử dụng màn hình loại catốt thông thường, chỉ cần loại bỏ U2 và U3 và quấn lại Q1 - Q4 để các bộ thu bán dẫn được kết nối với các chân hiển thị và bộ phát bóng bán dẫn được nối với đất. Q1 - Q4 điều khiển màn hình nào trong số 4 màn hình 7 đoạn đang hoạt động. Điều này được điều khiển bởi bộ vi điều khiển, thông qua các chân kết nối với đế của các bóng bán dẫn Q1 - Q4.

Các nút tăng và nút đặt sẽ được sử dụng để đặt giờ đồng hồ chính xác theo cách thủ công khi thực sự sử dụng đồng hồ. Khi nhấn nút Đặt một khi nút Tăng có thể được sử dụng để chuyển qua các giờ hiển thị trên màn hình. Khi nhấn lại nút Đặt, nút tăng có thể được sử dụng để chuyển qua số phút hiển thị trên màn hình. Khi nhấn nút Đặt lần thứ ba, thời gian sẽ được đặt. R13 và R14 kéo các chân vi điều khiển liên kết với các nút này xuống thấp khi không sử dụng.

Lưu ý rằng ở đây chúng tôi đã loại bỏ U4 (Atmega328p) khỏi bảng nguyên mẫu Arduino UNO điển hình và đưa nó lên bảng nguyên mẫu với phần còn lại của mạch của chúng tôi. Để làm được điều này, chúng ta phải cung cấp tối thiểu tinh thể X1 và các tụ điện C1 và C2 để cung cấp nguồn xung nhịp cho vi điều khiển, buộc chân 1, chân reset, cao và cung cấp nguồn 5VDC.

Bước 2: Breadboard mạch của bạn

Breadboard mạch của bạn
Breadboard mạch của bạn
Breadboard mạch của bạn
Breadboard mạch của bạn

Bất kể bạn đang xây dựng mạch chính xác như được hiển thị trong sơ đồ mạch hay có thể sử dụng một máy biến áp, loại màn hình hoặc các thành phần khác hơi khác, bạn nên phân bổ mạch trước để đảm bảo nó hoạt động và bạn hiểu cách hoạt động của nó.

Trong các hình ảnh, bạn có thể thấy rằng toàn bộ đường dẫn yêu cầu một vài bo mạch cũng như một bo mạch Arduino Uno. Vì vậy, để lập trình vi điều khiển hoặc thử nghiệm hoặc thay đổi phần mềm, ban đầu bạn sẽ cần IC vi điều khiển trên bo mạch UNO để bạn có thể kết nối cáp USB với nó và máy tính của bạn để tải lên chương trình hoặc thực hiện các thay đổi phần mềm.

Sau khi đồng hồ hoạt động trên breadboard và đã lập trình bộ vi điều khiển, bạn có thể rút phích cắm và cắm nó vào ổ cắm trên đồng hồ cố định cuối cùng của bạn trên bảng nguyên mẫu. Hãy đảm bảo tuân thủ các biện pháp phòng ngừa chống tĩnh điện khi bạn thực hiện việc này. Sử dụng dây đeo cổ tay chống tĩnh điện trong khi xử lý bộ vi xử lý.

Bước 3: Xây dựng mạch trên Protoboard

Xây dựng mạch trên Protoboard
Xây dựng mạch trên Protoboard
Xây dựng mạch trên Protoboard
Xây dựng mạch trên Protoboard

Mạch được xây dựng trên một mảnh bảng nguyên mẫu và điểm nối dây đến điểm bằng cách sử dụng dây quấn dây AWG # 30. Nó cung cấp một kết quả khó khăn và đáng tin cậy. Vì máy biến áp của tôi có một phích cắm 5mm đực ở đầu cáp, tôi đã gắn ổ cắm cái tương ứng ở mặt sau của bảng bằng cách cắt, uốn và khoan một đoạn nhôm phẳng rộng 1/2 để tùy chỉnh. Giá đỡ và sau đó bắt vít vào bảng bằng 4-40 đai ốc và bu lông nhỏ. Bạn chỉ cần cắt đầu nối và hàn các dây điện còn lại vào bảng và tiết kiệm cho mình khoảng 20 phút làm việc, nhưng tôi không muốn máy biến áp được gắn vĩnh viễn lên bảng.

Bước 4: Tạo một ổ cắm cho màn hình và đưa nó vào chân

Tạo một ổ cắm cho màn hình và đưa nó vào chân
Tạo một ổ cắm cho màn hình và đưa nó vào chân
Tạo một ổ cắm cho màn hình và tạo chân cho nó
Tạo một ổ cắm cho màn hình và tạo chân cho nó
Tạo một ổ cắm cho màn hình và tạo chân cho nó
Tạo một ổ cắm cho màn hình và tạo chân cho nó

Bởi vì màn hình có 16 chân, mỗi bên 8 chân, với khoảng cách chân rộng hơn so với ổ cắm IC 16 chân tiêu chuẩn, chúng ta cần điều chỉnh kích thước ổ cắm để phù hợp với màn hình. Bạn có thể thực hiện việc này đơn giản bằng cách sử dụng một cặp máy cắt dây để cắt nhựa nối hai mặt của ổ cắm, tách chúng ra và hàn riêng vào bảng với khoảng cách phù hợp với khoảng cách của các chân trên màn hình. Ưu điểm của việc này là bạn không phải hàn trực tiếp vào các chân của màn hình và để màn hình tiếp xúc với nhiệt độ quá cao. Bạn có thể thấy ổ cắm mà tôi đã làm điều này ở đầu bảng trong hình trên.

Để màn hình đứng thẳng, tôi đã bắt hai bu lông 1 vào hai lỗ góc dưới cùng của bảng nguyên mẫu như thể hiện trong ảnh để tạo một giá đỡ đơn giản. Điều này khá phức tạp, vì vậy nếu bạn làm điều này, bạn có thể muốn đặt một vật gì đó nặng lên phía sau bu lông để nó ổn định.

Bước 5: Kiểm tra dây bảng mạch và chuẩn bị hiệu chỉnh

Kiểm tra dây bảng mạch và chuẩn bị hiệu chỉnh
Kiểm tra dây bảng mạch và chuẩn bị hiệu chỉnh

Khi bảng mạch đã được nối dây nhưng trước khi cắm các IC hoặc hiển thị hoặc cấp nguồn cho nó, bạn nên kiểm tra các kết nối bảng mạch bằng DVM. Bạn có thể đặt hầu hết các DVM để chúng phát ra tiếng bíp khi có sự liên tục. Đặt DVM của bạn ở chế độ này và sau đó theo sơ đồ mạch của bạn, kiểm tra càng nhiều kết nối mạch càng tốt. Kiểm tra một mạch hở hoặc gần nó, giữa các điểm + 5V và Nối đất. Kiểm tra bằng mắt để đảm bảo rằng tất cả các thành phần được kết nối với các chân chính xác.

Tiếp theo, kết nối máy biến áp của bạn với mạch và cấp nguồn cho nó. Kiểm tra xem bạn có chính xác 5V DC trên thanh nguồn 5V với ống soi hoặc DVM hay không trước khi bạn cắm bất kỳ IC nào hoặc màn hình.

Tiếp theo, CHỈ cắm IC Op-Amp U5 để chuẩn bị cho bước tiếp theo. Ở đây, chúng tôi sẽ kiểm tra xem mạch chéo của chúng tôi có đang tạo ra sóng vuông hay không và điều chỉnh chiết áp RV1 để có tín hiệu 60 Hz sạch.

Bước 6: Hiệu chỉnh mạch

Hiệu chuẩn mạch
Hiệu chuẩn mạch
Hiệu chuẩn mạch
Hiệu chuẩn mạch

Việc hiệu chuẩn duy nhất được thực hiện là điều chỉnh chiết áp RV1 để có mức tín hiệu chính xác cấp cho bộ dò chéo. Có hai cách để làm điều này:

1. Đặt đầu dò ống soi vào chân 1 của U5 và đảm bảo kết nối dây nối đất của đầu dò ống soi với đất mạch. Tiếp theo điều chỉnh RV1 cho đến khi bạn có một sóng vuông sạch như trong hình trên. Nếu bạn điều chỉnh RV1 quá xa theo cách này hay cách khác, bạn sẽ không có sóng vuông hoặc sóng vuông bị méo. Đảm bảo rằng tần số của sóng vuông là 60 Hz. Nếu bạn có một phạm vi hiện đại, nó có thể sẽ cho bạn biết tần suất. Nếu bạn có phạm vi cổ điển như tôi thì hãy đảm bảo chu kỳ sóng vuông là khoảng 16,66ms hoặc 1/60 giây.

2. Sử dụng bộ đếm tần số hoặc DVM ở chế độ Tần số đo tần số tại chân 1 của U5 và điều chỉnh RV1 cho chính xác 60 Hz.

Sau khi hiệu chỉnh xong, tắt nguồn mạch và cắm tất cả các IC và màn hình để hoàn thành việc xây dựng mạch.

Bước 7: Chương trình Arduino

Chương trình được nhận xét đầy đủ để bạn có thể tìm ra chi tiết của từng bước. Do sự phức tạp của chương trình, rất khó để mô tả từng bước, nhưng ở cấp độ rất cao, đây là cách nó hoạt động:

Bộ vi xử lý nhận sóng vuông 60 Hz đến và đếm 60 chu kỳ và tăng số giây sau mỗi 60 chu kỳ. Khi số giây đạt đến 60 giây hoặc 3600 chu kỳ, số phút được tăng lên và số giây được đặt lại về không. Khi số phút đạt đến 60 phút, số giờ được tăng lên và số phút được đặt lại về không. số giờ được đặt lại thành 1 sau 13 giờ, vì vậy đây là đồng hồ 12 giờ. Nếu bạn muốn đồng hồ 24 giờ, chỉ cần thay đổi chương trình để đặt lại giờ về 0 sau 24 giờ.

Đây là một dự án thử nghiệm, vì vậy tôi đã cố gắng sử dụng vòng lặp Do-While để ngăn chặn chuyển đổi bật lên trên các nút Đặt và Tăng. Nó hoạt động hợp lý tốt. Khi nhấn nút Đặt một lần, nút Tăng có thể được sử dụng để chuyển qua các giờ hiển thị trên màn hình. Khi nhấn lại nút Đặt, nút tăng có thể được sử dụng để chuyển qua số phút hiển thị trên màn hình. Khi nhấn nút Đặt lần thứ ba, thời gian được đặt và đồng hồ bắt đầu chạy.

Các mẫu 0 và 1 được sử dụng để hiển thị mọi số trên màn hình 7 đoạn được lưu trữ trong mảng gọi là Seven_Seg. Tùy thuộc vào thời gian đồng hồ hiện tại, các mẫu này được đưa đến vi mạch 74HC595 và gửi đến màn hình. 4 chữ số nào của màn hình được bật bất kỳ lúc nào để nhận dữ liệu này được bộ vi xử lý điều khiển thông qua các chân của màn hình Đào 1, 2, 3, 4. Khi mạch được cấp nguồn, trước tiên chương trình sẽ chạy một quy trình kiểm tra có tên là Test_Clock, quy trình này sẽ gửi các chữ số chính xác để làm sáng mọi màn hình với số đếm từ 0 đến 9. Vì vậy, nếu bạn nhìn thấy điều này khi bạn bật nguồn, bạn biết bạn đã xây dựng mọi thứ chính xác..

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

1 - Máy biến áp 120VAC đến 12VAC xấp xỉ 100ma trở lên1 - Bảng nguyên mẫu khoảng 3,5 "x 3,5" Màn hình 1 - 4 chữ số 7 đoạn YSD-439K2B-35 hoặc tương đương (Sparkfun) 2 - Các nút ấn gắn PCB nhỏ NO (bất kỳ) 4 - 2N3904 Bóng bán dẫn NPN 8 - 330 ohm Điện trở2 - 74LS04 Bộ nghịch lưu lục giác1 - 74HC595 nối tiếp sang thanh ghi dịch chuyển 8 bit song song 1 - LM358 OP-AMP (Bộ so sánh) 1 - Bộ vi điều khiển ATMEGA328P (Creatron) Điện trở 4 - 4,7K Điện trở 7 - 10K1 - 1N4007 hoặc 1N4001 diode2 - 1N4148 điốt1 - 120 ohm, điện trở 1 / 2W hoặc 1W1 - Bộ chiết áp 10K gắn trên PCB1 - Tụ điện 470uF 25V1 - Bộ điều chỉnh điện áp gói 7805 TO2201 - Tụ 10uF 10V2 - Tụ 0,1 uF 10V1 - 16MHz tinh thể (Sparkfun) 2 - Tụ 22pF1 - Giắc nguồn cái (Tùy chọn để phù hợp với phích cắm nam nếu có trên máy biến áp tường của bạn) Ổ cắm IC 2 - 16 chân2 - Ổ cắm IC 14 chân1 - Ổ cắm IC 8 chân1 - Ổ cắm IC 28 chân2 - 1 "dài khoảng # 4 hoặc # 6 bu lông và đai ốc phù hợp2 - 1 / 4 "dài # 4-40 bu lông và đai ốc phù hợp1 - mảnh cắt tùy chỉnh dải nhôm phẳng rộng 1/2" và khoan theo kích thước

# 30 dây AWG quấn dây # 22 dây AWG

Đề xuất: