Სარჩევი:

60Hz Arduino საათი: 8 ნაბიჯი
60Hz Arduino საათი: 8 ნაბიჯი

ვიდეო: 60Hz Arduino საათი: 8 ნაბიჯი

ვიდეო: 60Hz Arduino საათი: 8 ნაბიჯი
ვიდეო: How to make a LED digital counter using 7- Segment Display 2024, ნოემბერი
Anonim
60Hz არდუინოს საათი
60Hz არდუინოს საათი

Arduino– ზე დაფუძნებული ციფრული საათი სინქრონიზებულია 60 ჰც – იანი ელექტროგადამცემი ხაზით. მას აქვს მარტივი და იაფი საერთო ანოდი 4 ციფრიანი 7 სეგმენტის ჩვენება, რომელიც აჩვენებს საათებსა და წუთებს. იგი იყენებს დეტექტორის გადაკვეთას იმის დასადგენად, როდესაც შემომავალი 60Hz სინუსური ტალღა კვეთს ნულოვან ძაბვის წერტილს და იღებს 60 Hz კვადრატულ ტალღას.

ხანმოკლე პერიოდის განმავლობაში ელექტროგადამცემი ხაზის შემომავალი სინუსური ტალღის სიხშირე შეიძლება ოდნავ განსხვავდებოდეს დატვირთვის გამო, მაგრამ ხანგრძლივი პერიოდის განმავლობაში ის საშუალოდ 60 ჰც -მდე აღწევს ძალიან ზუსტად. ჩვენ შეგვიძლია ვისარგებლოთ ამით, რათა მივიღოთ დროის წყარო ჩვენი საათის სინქრონიზაციისათვის.

ნაბიჯი 1: ნაბიჯი 1: სქემა

ნაბიჯი 1: სქემები
ნაბიჯი 1: სქემები

მიკროსქემის ორი ვერსია არსებობს იმისდა მიხედვით, გსურთ გამოიყენოთ ტრანსფორმატორი ცენტრალური ონკანით თუ ერთი გარეშე, ნებისმიერ შემთხვევაში წრიული ოპერაცია თითქმის იდენტურია. ამ მშენებლობისთვის მე გამოვიყენე კედლის ადაპტერი (ცენტრალური ონკანის გარეშე), რომელიც გამოდის 12V AC- ით. ამ დიზაინს (ციფრული საათი 1 წრიული დიაგრამა) გამოვიყენებ მიკროსქემის აღწერისთვის. გაითვალისწინეთ, რომ მნიშვნელოვანია გამოვიყენოთ კედლის ადაპტერი, რომელიც გამოსცემს 12V AC- ს და არა 12V DC- ს, ასე რომ ჩვენ შეგვიძლია შევეხოთ AC სინუს ტალღას დროისათვის. თქვენ ასევე შეგიძლიათ გამოიყენოთ ტრანსფორმატორი, რომელიც გამოაქვს 9V AC, ამოიღეთ R19 და ასევე იმუშავეთ, მაგრამ 12V ძალიან ხშირად არის შესაძლებელი. ასე მუშაობს წრე:

120V AC 60Hz– ზე გარდაიქმნება 12V AC– ზე ტრანსფორმატორი TR1. ის იკვებება დიოდური D4– ით და გამოსწორებულია ისე, რომ მხოლოდ +ve ძაბვა იკვებება და გათბება დაახლოებით DC– მდე ტალღით, კონდენსატორ C3– ით. C3– ზე ძაბვა იკვებება 7805 ძაბვის რეგულატორთან (U6) რეზისტორის R19 საშუალებით. R19 გამოიყენება C3– ზე ძაბვის შესამცირებლად, რომელიც ჩემს შემთხვევაში იზომება დაახლოებით 15VDC– ზე. ეს შეიძლება დარეგულირდეს 7805 -ით, მაგრამ ამ დონის შეყვანისას 7805 უნდა ჩამოვარდეს დაახლოებით 10VDC და შედეგად საკმაოდ ცხელდება. R19– ის გამოყენებით ძაბვის შემცირება 10VDC– მდე, ჩვენ ხელს შეუშლის U6– ის ძალიან გაცხელებას. ეს არ არის ენერგიის გარდაქმნის ეფექტური ტექნიკა, მაგრამ ის მუშაობს ჩვენი მიზნებისათვის. შენიშვნა: გამოიყენეთ მინიმუმ 1/2W რეზისტორი ან მეტი აქ. წრე მიაპყროს დაახლოებით 55 მ, ასე რომ, სიმძლავრის გაფრქვევა R19- ში არის დაახლოებით 1/3W, P = I ** 2*R ან P = 55ma x 55ma x 120 ohms = 0.363W. შემდეგი U6 გამოდის სუფთა 5V DC C4 და C5 გამომავალზე, რათა გაფილტროს ხმაური 5V ელექტროგადამცემი ხაზზე. ეს 5V DC აძლიერებს ყველა IC- ს დაფაზე. TR1– დან ჩვენ ასევე ვიღებთ არ გაფილტრული AC სიგნალის ნიმუშს და ვათავსებთ მას პოტენომეტრ RV1– ში, რომელიც გამოიყენება დეტექტორზე ჯვრის დონის შესანარჩუნებლად. R18 და R17 ქმნიან ძაბვის გამყოფს შემდგომი შესამცირებლად AC ძაბვის დონის შესამცირებლად. გახსოვდეთ, რომ ეს მოდის 12V AC– ზე და ჩვენ უნდა შევამციროთ ის 5 V– ზე ნაკლები, რათა ის იმუშაოს ჩვენს ჯვარედინი დეტექტორთან, რომელიც მხოლოდ იკვებება 5VDC- ით. R15 და R16 უზრუნველყოფენ დენის შეზღუდვას, ხოლო D1 და D2 მიზნად ისახავს op-amp U5– ის ზედმეტი დრაივირების თავიდან აცილებას. კონფიგურაციაში ნაჩვენებია U5 გამომავალი პინ 1 იცვლება +5V და 0V ყოველ დროს, როდესაც შემომავალი სინუსური ტალღა იცვლება პოზიტივიდან უარყოფითზე. ეს წარმოქმნის 60 ჰც კვადრატულ ტალღას, რომელიც იკვებება მიკროკონტროლერთან, U4. U4– ზე დატვირთული პროგრამა იყენებს ამ 60 ჰც კვადრატულ ტალღას საათის გასაუმჯობესებლად ყოველ წუთსა და საათში. როგორ ხდება ეს განხილული იქნება პროგრამული უზრუნველყოფის პროგრამის განყოფილებაში და პროგრამული უზრუნველყოფის კომენტარებში. U7 74HC595 ცვლის რეგისტრატორი გამოიყენება იმიტომ, რომ ჩვენ გვაქვს შეზღუდული რაოდენობის ციფრული ქინძისთავები მიკროპროცესორზე, ამიტომ იგი გამოიყენება გამოსასვლელების რაოდენობის გასაფართოებლად. ჩვენ ვიყენებთ 4 ციფრულ პინს მიკროპროცესორზე, მაგრამ ჩვენ შეგვიძლია გავაკონტროლოთ ეკრანზე 7 სეგმენტი 74HC595- ის საშუალებით. ეს მიიღწევა მიკროკონტროლერში შენახული ბიტების წინასწარ განსაზღვრული ნიმუშების გადაადგილებით და რომლებიც წარმოადგენენ ჩვენების თითოეულ ციფრს ცვლის რეგისტრში. აქ გამოყენებული ეკრანი ჩვეულებრივი ანოდია, ამიტომ სეგმენტის ჩართვის მიზნით ჩვენ უნდა შევაბრუნოთ 74HC595– დან გამოსული სიგნალის დონე. როდესაც სეგმენტი უნდა იყოს ჩართული, სიგნალი 74HC595 გამომავალი პინიდან იქნება +5V, მაგრამ ჩვენ გვჭირდება, რომ ის ეკრანზე იკვებება 0V- ზე, რომ ჩვენების სეგმენტი ჩართოთ. ასე რომ, ამისათვის ჩვენ გვჭირდება hex ინვერტორები U2 და U3. სამწუხაროდ, ერთ ინვერტორულ IC- ს შეუძლია მხოლოდ 6 ინვერსიის დამუშავება, ამიტომ ჩვენ გვჭირდება ორი მათგანი, მიუხედავად იმისა, რომ მეორეზე ჩვენ ვიყენებთ მხოლოდ ერთს 6 კარიბჭედან. უაზროდ სამწუხაროდ. თქვენ შეიძლება გკითხოთ, რატომ არ გამოიყენოთ აქ საერთო კათოდური ტიპის ჩვენება და არ გამორიცხოთ U2 და U3? ისე პასუხი არის თქვენ შეგიძლიათ, მე შემთხვევით მქონდეს საერთო ანოდის ტიპი ჩემი ნაწილების მარაგში. თუ თქვენ გაქვთ ან გსურთ გამოიყენოთ საერთო კათოდური ტიპის ეკრანი, უბრალოდ ამოიღეთ U2 და U3 და გადააკეთეთ Q1 - Q4 ისე, რომ ტრანზისტორი კოლექტორები იყოს დაკავშირებული ეკრანის ქინძისთავებთან, ხოლო ტრანზისტორი გამცემი - მიწასთან. Q1 - Q4 აკონტროლებს ოთხი 7 -სეგმენტიანი ჩვენებიდან რომელია აქტიური. ამას აკონტროლებს მიკროკონტროლერი, ტრანზისტორების ბაზაზე Q1 - Q4 კავშირების საშუალებით. დამატებითი და დაყენებული ღილაკები გამოყენებული იქნება საათის სწორი დროის ხელით დასაყენებლად, როდესაც საქმე ეხება საათის რეალურად გამოყენებას. როდესაც დაყენების ღილაკს ერთხელ დააჭერთ, გადიდების ღილაკი შეიძლება გამოყენებულ იქნას ეკრანზე ნაჩვენები საათების გასადიდებლად. როდესაც ღილაკი Set კვლავ ხელახლაა დაჭერილი, დამატებითი ღილაკი შეიძლება გამოყენებულ იქნას ეკრანზე ნაჩვენები წუთების გასადიდებლად. როდესაც Set ღილაკს მეორედ დააჭერთ, დრო მითითებულია. R13 და R14 ამცირებს ამ ღილაკებთან დაკავშირებულ მიკროკონტროლერის ქინძისთავებს, როდესაც არ გამოიყენება. გაითვალისწინეთ, რომ აქ ჩვენ ამოვიღეთ U4 (Atmega328p) ტიპიური Arduino UNO პროტოტიპის დაფაზე და დავდეთ პროტოტიპის დაფაზე ჩვენი დანარჩენი წრედით. ამისათვის ჩვენ მინიმუმ უნდა უზრუნველვყოთ ბროლი X1 და კონდენსატორები C1 და C2, რათა უზრუნველვყოთ მიკროკონტროლის საათის წყარო, მიამაგრეთ პინი 1, გადატვირთეთ პინი, მაღალი და უზრუნველყოთ 5VDC სიმძლავრე.

ნაბიჯი 2: ნაბიჯი 2: პურის დაფის პროტოტიპი

ნაბიჯი 2: პურის დაფის პროტოტიპი
ნაბიჯი 2: პურის დაფის პროტოტიპი
ნაბიჯი 2: პურის დაფის პროტოტიპი
ნაბიჯი 2: პურის დაფის პროტოტიპი

იმისდა მიუხედავად, თქვენ ააშენებთ წრეს ზუსტად ისე, როგორც ნაჩვენებია სქემის დიაგრამაში, ან იქნებ იყენებთ ოდნავ განსხვავებულ ტრანსფორმატორს, ჩვენების ტიპს ან სხვა კომპონენტებს, თქვენ უნდა ააწყოთ წრე პირველ რიგში, რათა დარწმუნდეთ, რომ ის მუშაობს და გესმით როგორ მუშაობს.

სურათებში ხედავთ, რომ მთელი პურის დაფარვა საჭიროებდა რამდენიმე დაფას, ასევე Arduino Uno დაფას. ასე რომ, მიკროკონტროლერის დასაპროგრამებლად ან ექსპერიმენტისთვის ან პროგრამული უზრუნველყოფის ცვლილების შესატანად, თქვენ დაგჭირდებათ მიკროკონტროლერის IC UNO დაფაზე, ასე რომ თქვენ შეგიძლიათ დაუკავშიროთ USB კაბელი მას და თქვენს კომპიუტერს, რომ ატვირთოთ პროგრამა ან შეიტანოთ პროგრამული ცვლილებები. მას შემდეგ რაც საათს მუშაობთ პურის დაფაზე და დაპროგრამებული გაქვთ მიკროკონტროლი, შეგიძლიათ გამორთოთ იგი და შეაერთოთ იგი სოკეტში თქვენი საბოლოო მშენებლობის მუდმივი საათის პროტოტიპის დაფაზე. დარწმუნდით, რომ დაიცავით ანტისტატიკური ზომები ამის გაკეთებისას. გამოიყენეთ ანტისტატიკური სამაჯური მიკროპროცესორთან მუშაობისას.

ნაბიჯი 3: ნაბიჯი 3: საბოლოო მშენებლობა

ნაბიჯი 3: საბოლოო მშენებლობა
ნაბიჯი 3: საბოლოო მშენებლობა
ნაბიჯი 3: საბოლოო მშენებლობა
ნაბიჯი 3: საბოლოო მშენებლობა

წრე აგებულია პროტოტიპის დაფის ნაჭერზე და სადენიანი წერტილიდან წერტილამდე წერტილის გამოყენებით #30 AWG მავთულის შესაფუთი მავთულის გამოყენებით. ის იძლევა მკაცრ და საიმედო შედეგს. იმის გამო, რომ ჩემს ტრანსფორმატორს კაბელის ბოლოში აქვს მამრობითი 5 მმ შტეფსელი, დავაყენე შესაბამისი მდედრობითი დაფა დაფის უკანა მხარეს, 1/2 ფართო ალუმინის ბრტყელი ზოლის ნაჭრის მოჭრით, მოხრით და გაბურღვით. ფრჩხილი და შემდეგ დააკოპირეთ იგი დაფაზე პატარა 4-40 კაკალითა და ჭანჭიკით. თქვენ შეგიძლიათ უბრალოდ შეწყვიტოთ კონექტორი და შეაერთოთ დარჩენილი დენის მავთულები დაფაზე და დაზოგოთ თავი დაახლოებით 20 წთ სამუშაოზე, მაგრამ მე არ მინდოდა ტრანსფორმატორი სამუდამოდ მიერთებული დაფაზე.

ნაბიჯი 4: ნაბიჯი 4: ჩვენებისათვის სოკეტის შექმნა და მისი ფეხების მიცემა

ნაბიჯი 4: ჩვენების შესაქმნელად სოკეტის შექმნა და მისი ფეხების მიცემა
ნაბიჯი 4: ჩვენების შესაქმნელად სოკეტის შექმნა და მისი ფეხების მიცემა
ნაბიჯი 4: ჩვენების შესაქმნელად სოკეტის შექმნა და მისი ფეხების მიცემა
ნაბიჯი 4: ჩვენების შესაქმნელად სოკეტის შექმნა და მისი ფეხების მიცემა
ნაბიჯი 4: ჩვენების შესაქმნელად სოკეტის შექმნა და მისი ფეხების მიცემა
ნაბიჯი 4: ჩვენების შესაქმნელად სოკეტის შექმნა და მისი ფეხების მიცემა

იმის გამო, რომ ეკრანს აქვს 16 ქინძი, თითოეულ მხარეს 8, პინების ინტერვალით, რომელიც უფრო ფართოა ვიდრე სტანდარტული 16 პინიანი IC სოკეტი, ჩვენ გვჭირდება სოკეტის ზომის მორგება ეკრანის შესატყვისად. ამის გაკეთება შეგიძლიათ უბრალოდ წყვილი მავთულის საჭრელით, რომ დააკოპიროთ პლასტირი, რომელიც აკავშირებს სოკეტის ორ მხარეს, გამოყავით ისინი და ცალკე შეაერთეთ დაფაზე, ინტერვალით, რომელიც ემთხვევა ეკრანზე ქინძისთავების ინტერვალს. ხელსაყრელია ამის გაკეთება ისე, რომ თქვენ არ მოგიწიოთ უშუალოდ ეკრანის ქინძისთავებთან შეხება და ეკრანის გადაჭარბებული გათბობა. თქვენ ხედავთ სოკეტს, რომელსაც ეს გავაკეთე, დაფის ზედა ნაწილში, სურათზე.

იმისათვის, რომ ეკრანი სწორად დადგეს, მე დავამატე ორი 1 ჭანჭიკი პროტოტიპის დაფის ქვედა ორ კუთხის ხვრელში, როგორც ნაჩვენებია ფოტოებში, რათა მარტივი სტენდი გავაკეთო. ეს საკმაოდ სახიფათო იყო, ასე რომ, თუ ამას გააკეთებ, შეიძლება მინდა რაღაც მძიმე ჩავდოთ ჭანჭიკების უკანა მხარეს მისი სტაბილიზაციისთვის.

ნაბიჯი 5: ნაბიჯი 5: მიკროსქემის გაყვანილობის შემოწმება და კალიბრაციის მომზადება

ნაბიჯი 5: მიკროსქემის დაფის გაყვანილობის შემოწმება და კალიბრაციის მომზადება
ნაბიჯი 5: მიკროსქემის დაფის გაყვანილობის შემოწმება და კალიბრაციის მომზადება

მას შემდეგ, რაც მიკროსქემის დაფა გაერთება, მაგრამ სანამ ჩართავთ IC– ებს, აჩვენებთ ან ჩართავთ მას, კარგი იდეაა შეამოწმოთ დაფის კავშირი DVM– ით. თქვენ შეგიძლიათ დააყენოთ DVM– ების უმეტესობა ისე, რომ ისინი ხმოვან სიგნალს იძლევიან უწყვეტობის დროს. დააყენეთ DVM ამ რეჟიმში და შემდეგ მიჰყევით სქემის დიაგრამას, შეამოწმეთ რაც შეიძლება მეტი წრიული კავშირი. შეამოწმეთ ღია წრე, ან მასთან ახლოს, +5V და Ground წერტილებს შორის. ვიზუალურად შეამოწმეთ, რომ ყველა კომპონენტი დაკავშირებულია სწორ ქინძისთავებთან.

შემდეგ შეაერთეთ თქვენი ტრანსფორმატორი წრედთან და ჩართეთ იგი. შეამოწმეთ, რომ თქვენ გაქვთ ზუსტად 5V DC 5V დენის სარკინიგზო მაგისტრალით ან DVM- ით, სანამ რაიმე IC და ეკრანს შეაერთებთ. შემდეგი შეაერთეთ მხოლოდ Op-Amp U5 IC შემდეგი ნაბიჯის მოსამზადებლად. აქ ჩვენ შევამოწმებთ, რომ ჩვენი გადაკვეთა წარმოქმნის კვადრატულ ტალღას და ვარეგულირებთ პოტენომეტრს RV1 სუფთა 60 ჰერცი სიგნალისთვის.

ნაბიჯი 6: ნაბიჯი 6: წრის კალიბრაცია

ნაბიჯი 6: მიკროსქემის კალიბრაცია
ნაბიჯი 6: მიკროსქემის კალიბრაცია
ნაბიჯი 6: მიკროსქემის კალიბრაცია
ნაბიჯი 6: მიკროსქემის კალიბრაცია

ერთადერთი დაკალიბრება არის პოტენომეტრი RV1- ის დარეგულირება სიგნალის სწორი დონისათვის, რომელიც კვებავს დეტექტორთან ჯვარს. ამის გაკეთების ორი გზა არსებობს:

1. მოათავსეთ დიაპაზონის ზონდი U5 პინ 1 -ზე და დარწმუნდით, რომ დააკავშიროთ მოცულობის ზონდის მავთული მიკროსქემის მიწასთან. შემდეგ შეცვალეთ RV1 სანამ არ გაქვთ სუფთა კვადრატული ტალღა, როგორც ეს მოცემულია ზემოთ სურათზე. თუ თქვენ შეცვლით RV1 ძალიან შორს ამა თუ იმ გზით თქვენ ან არ გექნებათ კვადრატული ტალღა ან დამახინჯებული კვადრატული ტალღა. დარწმუნდით, რომ კვადრატული ტალღის სიხშირეა 60 ჰერცი. თუ თქვენ გაქვთ თანამედროვე მოცულობა, ის ალბათ გეტყვით სიხშირეს. თუ თქვენ გაქვთ უძველესი დიაპაზონი, როგორც მე, დარწმუნდით, რომ კვადრატული ტალღის პერიოდი დაახლოებით 16.66 წმ ან 1/60 წმ. 2. სიხშირის მრიცხველის ან DVM სიხშირის რეჟიმში გაზომეთ სიხშირე U5 პინ 1 -ში და დაარეგულირეთ RV1 ზუსტად 60 ჰც. ამ კალიბრაციის დასრულების შემდეგ გამორთეთ წრე და ჩართეთ ყველა IC და ეკრანი, რომ დაასრულოთ სქემის კონსტრუქცია.

ნაბიჯი 7: ნაბიჯი 7: Arduino პროგრამა

პროგრამა სრულად არის კომენტირებული, ასე რომ თქვენ შეგიძლიათ გაარკვიოთ თითოეული ნაბიჯის დეტალები. პროგრამის სირთულის გამო ძნელია აღწერო ყოველი ნაბიჯი, მაგრამ ძალიან მაღალ დონეზე ასე მუშაობს:

მიკროპროცესორი იღებს 60 Hz კვადრატულ ტალღას და ითვლის 60 ციკლს და ზრდის წამების დათვლას ყოველი 60 ციკლის შემდეგ. მას შემდეგ, რაც წამების რაოდენობა აღწევს 60 წამს, ანუ 3600 ციკლს, წუთების რაოდენობა იზრდება და წამების რაოდენობა ნულდება. მას შემდეგ, რაც წუთების რაოდენობა 60 წუთს მიაღწევს, საათების რაოდენობა იზრდება და წუთების რაოდენობა ნულდება. საათების რაოდენობა 1 საათის შემდეგ გადადის 13 საათის შემდეგ, ეს არის 12 საათიანი საათი. თუ გსურთ 24 საათიანი საათი, უბრალოდ შეცვალეთ პროგრამა, რომ განაახლოთ საათები ნულიდან 24 საათის შემდეგ. ეს არის ექსპერიმენტული პროექტი, ამიტომ შევეცადე გამომეყენებინა Do-while მარყუჟი, რათა ჩახშობილიყო გადართვის ხტომა მითითებულ და გაზრდის ღილაკებზე. გონივრულად კარგად მუშაობს. როდესაც დაყენების ღილაკს ერთხელ დააჭერთ, გადიდების ღილაკი შეიძლება გამოყენებულ იქნას ეკრანზე ნაჩვენები საათების გასადიდებლად. როდესაც ღილაკი Set კვლავ ხელახლაა დაჭერილი, დამატებითი ღილაკი შეიძლება გამოყენებულ იქნას ეკრანზე ნაჩვენები წუთების გასადიდებლად. როდესაც Set ღილაკს მეორედ დააჭერთ, დრო დადგენილია და საათი იწყებს მუშაობას. 0 და 1 ნიმუშები, რომლებიც გამოიყენება 7-სეგმენტიანი ეკრანების ყველა ნომრის გამოსახატავად, ინახება მასივში, სახელად Seven_Seg. საათის ამჟამინდელი დროის მიხედვით, ეს ნიმუშები იკვებება 74HC595 IC– ით და იგზავნება ეკრანზე. ეკრანის 4 ციფრიდან რომელია ჩართული ნებისმიერ დროს ამ მონაცემების მისაღებად კონტროლდება მიკროპროცესორი ეკრანის მეშვეობით Dig 1, 2, 3, 4 pin. როდესაც ჩართულია ჩართვა, პროგრამა პირველად ატარებს საცდელ რუტინას, სახელწოდებით Test_Clock, რომელიც აგზავნის სწორ ციფრებს, რომ აანთოს ყველა ეკრანი 0 -დან 9 -მდე. ასე რომ, თუ ამას ხედავთ, როდესაც ჩართავთ ენერგიას, თქვენ იცით, რომ თქვენ ყველაფერი სწორად ააშენეთ რა

ნაბიჯი 8: ნაბიჯი 8: PCBWay შეთავაზება

ამით მთავრდება ეს პოსტი, მაგრამ ამ პროექტის სპონსორია PCBWay, რომელიც იმ დროს აღნიშნავს მათი 5 წლის იუბილეს. შეამოწმეთ ის https://www.pcbway.com/anniversary5sales.html და არ უნდა დაგვავიწყდეს, რომ მათი შეკრების სერვისი ახლა უკვე 30 დოლარამდეა.

გირჩევთ: