Mündəricat:

60Hz Arduino Saatı: 8 addım
60Hz Arduino Saatı: 8 addım

Video: 60Hz Arduino Saatı: 8 addım

Video: 60Hz Arduino Saatı: 8 addım
Video: Babam bana Akıllı Saat Aldı 😏😏✌️✌️ 2024, Noyabr
Anonim
60 Hz Arduino Saatı
60 Hz Arduino Saatı

Bu Arduino əsaslı rəqəmsal saat 60Hz elektrik xətti ilə sinxronlaşdırılır. Saatı və dəqiqələri göstərən 4 rəqəmli 7 seqmentli sadə və ucuz bir ümumi anod var. Daxil olan 60Hz sinus dalğasının sıfır gərginlik nöqtəsini keçdiyini və 60 Hz kvadrat dalğa əldə etdiyini təyin etmək üçün çarpaz detektordan istifadə edir.

Qısa müddət ərzində elektrik xəttindən gələn sinus dalğasının tezliyi yükə görə çox az dəyişə bilər, lakin uzun müddət ərzində çox dəqiq olaraq 60 Hz -ə çatır. Saatımızın sinxronizasiyası üçün vaxt mənbəyi əldə etmək üçün bundan istifadə edə bilərik.

Addım 1: Adım 1: Sxemalar

Addım 1: sxemlər
Addım 1: sxemlər

Transformatoru mərkəzi kranlı və ya olmadan istifadə etmək istəməyinizə bağlı olaraq dövrənin iki versiyası var, hər iki halda da dövrə əməliyyatı demək olar ki, eynidir. Bu quruluş üçün 12V AC çıxarılan bir divar adapterindən istifadə etdim (mərkəzi tap yoxdur). Dövr təsviri üçün bu dizaynı (Digital Clock1 Circuit Diagram) istifadə edəcəyəm. Vaxt təyin etmək üçün AC sinüs dalğasına daxil ola biləcəyimiz üçün 12V AC deyil, 12V DC çıxarılan bir divar adapterindən istifadə etmək vacibdir. Çox güman ki, 9V AC çıxarılan, R19 -ı çıxarıb işə sala bilən bir transformatordan da istifadə edə bilərsiniz, amma 12V çox yayılmışdır. Dövrə belə işləyir:

60Hz -də 120V AC, TR1 transformatoru ilə 12V AC -ə çevrilir. Bu, D4 dioduna verilir və düzəldilir ki, yalnız +ve gərginliyi C3 kondansatörü ilə dalğalanma ilə təxminən DC -yə verilir və düzəldilir. C3 üzərindəki gərginlik R19 rezistoru vasitəsilə 7805 gərginlik tənzimləyicisinə (U6) verilir. R19, mənim vəziyyətimdə təxminən 15VDC -də ölçülmüş C3 -dəki gərginliyi azaltmaq üçün istifadə olunur. Bu 7805 ilə tənzimlənə bilər, lakin bu giriş səviyyəsi ilə 7805 təxminən 10VDC düşməlidir və nəticədə olduqca istiləşir. Gərginliyi təxminən 10VDC -ə endirmək üçün R19 istifadə edərək, U6 -nın çox istiləşməsinin qarşısını alırıq. Beləliklə, bu səmərəli bir güc çevirmə texnikası deyil, ancaq məqsədlərimiz üçün işləyir. QEYD: burada ən azı 1/2W və ya daha çox müqavimət istifadə edin. Dövrə təxminən 55 ma çəkir, buna görə R19 -da güc itkisi P = I ** 2*R və ya P = 55ma x 55ma x 120 ohms = 0.363W əsasında təxminən 1/3 W təşkil edir. Sonrakı U6, 5V elektrik xəttindəki hər hansı bir səs -küyü silmək üçün C4 və C5 ilə təmiz 5V DC çıxarır. Bu 5V DC lövhədəki bütün IC -lərə güc verir. TR1 -dən süzgəcdən keçirilməyən AC siqnalının nümunəsini götürürük və detektor üzərindən keçmə səviyyəsini tənzimləmək üçün istifadə olunan potensialiometr RV1 -ə ötürürük. R18 və R17, daxil olan AC gərginliyinin səviyyəsini daha da azaltmaq üçün bir gərginlik bölücü təşkil edir. Bunun 12V AC -də gəldiyini unutmayın və 5 V -dan aşağı endirməliyik ki, bu, yalnız keçid detektorumuzla işləyəcək. 5VDC ilə təchiz edilmişdir. R15 və R16 cari məhdudiyyət təmin edir, D1 və D2 isə op-amp U5-in həddindən artıq yüklənməsinin qarşısını almaq məqsədi daşıyır. Göstərilən konfiqurasiyada U5 -in 1 -ci pindəki çıxışı, gələn sinus dalğası hər dəfə pozitivdən neqativə dəyişəndə +5V ilə 0V arasında dəyişəcək. Bu, U4 mikrokontrolörünə verilən 60 Hz kvadrat dalğası yaradır. U4 -də yüklənmiş proqram daha sonra saatı hər dəqiqə və saatda artırmaq üçün bu 60Hz kvadrat dalğasını istifadə edir. Bunun necə edildiyi proqram proqramı bölməsində və proqram şərhlərində müzakirə olunacaq. U7 74HC595 keçid reyestrindən istifadə olunur, çünki mikroprosessorda məhdud sayda rəqəmsal pin var, buna görə də çıxış sayını genişləndirmək üçün istifadə olunur. Mikroprosessorda 4 rəqəmsal pin istifadə edirik, lakin 74HC595 vasitəsilə ekrandakı 7 seqmenti idarə edə bilərik. Bu, mikrokontrolördə saxlanılan və göstəriləcək hər bir rəqəmi təmsil edən əvvəlcədən təyin edilmiş bit nümunələrini keçid reyestrinə köçürməklə həyata keçirilir. Burada istifadə edilən ekran ümumi bir anoddur, buna görə bir seqmenti açmaq üçün 74HC595 -dən gələn siqnal səviyyələrini ters çevirməliyik. Bir seqment açıldıqda 74HC595 çıxış pinindən gələn siqnal +5V -də olacaq, ancaq bu ekran seqmentini açmaq üçün ekranda bəslədiyi pin 0V -də olmalıdır. Bunu etmək üçün U2 və U3 hex çeviricilərinə ehtiyacımız var. Təəssüf ki, bir inverter IC yalnız 6 inversiyanı idarə edə bilər, buna görə ikincisində yalnız 6 qapıdan birini istifadə etsək də, ikisinə ehtiyacımız var. Təəssüf ki, israfçılıq. Niyə burada ümumi bir katot tipli ekrandan istifadə etməyinizi və U2 və U3 -ü ləğv etməyinizi soruşa bilərsiniz? Yaxşı cavab verə bilərsən, hissələrimdə ümumi bir anod tipim var. Ümumi bir katod tipli bir ekrana sahibsinizsə və ya istifadə etmək istəyirsinizsə, U2 və U3 -ü aradan qaldırın və Q1 - Q4 -ü yenidən bağlayın ki, tranzistor kollektorları ekran sancaqlarına, tranzistor yayıcıları isə yerə qoşulsun. Q1 - Q4 dörd 7 seqmentli ekranın hansının aktiv olduğunu idarə edir. Bu, Q1 - Q4 tranzistorlarının bazasına bağlı pinlər vasitəsilə mikrokontrolör tərəfindən idarə olunur. Artırma və təyin düymələri, əslində saatı istifadə edərkən, doğru saat vaxtını əl ilə təyin etmək üçün istifadə ediləcək. Ayarla düyməsinə bir dəfə basıldıqda Artırma düyməsi ekranda göstərilən saatları keçmək üçün istifadə edilə bilər. Set düyməsinə yenidən basıldıqda, artırma düyməsi ekranda göstərilən dəqiqələri keçmək üçün istifadə edilə bilər. Set düyməsinə üçüncü dəfə basıldıqda, vaxt təyin olunur. R13 və R14 istifadə edilmədikdə bu düymələrlə əlaqəli mikrokontrolör pinlərini aşağı çəkir. Diqqət yetirin ki, burada U4 (Atmega328p) tipik Arduino UNO prototip lövhəsindən çıxarıb dövrəmizin qalan hissəsi ilə birlikdə prototip lövhəsinə qoyduq. Bunu etmək üçün minimum olaraq kristal X1 və C1 və C2 kondansatörlərini mikrokontrolör üçün bir saat mənbəyi, bağlama pimi 1, sıfırlama pinini yüksək və 5VDC gücü ilə təmin etməliyik.

Addım 2: Adım 2: Çörək Paneli Prototipi

Addım 2: Breadboard Prototipi
Addım 2: Breadboard Prototipi
Addım 2: Breadboard Prototipi
Addım 2: Breadboard Prototipi

Dövrü tam olaraq sxem diaqramında göstərildiyi kimi qurmağınızdan və ya bir az fərqli bir transformator, ekran növü və ya digər komponentlərdən istifadə etməyinizdən asılı olmayaraq, işlədiyini və necə işlədiyini anladığınızdan əmin olmaq üçün əvvəlcə dövrə taxmalısınız.

Şəkillərdə çörək taxmaq üçün bir neçə lövhə və Arduino Uno lövhəsi lazım olduğunu görə bilərsiniz. Mikro nəzarətçini proqramlaşdırmaq və ya sınaqdan keçirmək və ya proqramda dəyişiklik etmək üçün əvvəlcə UNO lövhəsində mikrokontrolör IC -yə ehtiyacınız olacaq, beləliklə proqramı yükləmək və ya proqram dəyişiklikləri etmək üçün USB kabelini kompüterinizə bağlaya bilərsiniz. Saatı çörək taxtasında işlədikdən və mikrokontrolörünüzü proqramlaşdırdıqdan sonra onu çıxarıb prototip lövhəsindəki son tikiş daimi saatınızdakı yuvaya qoşa bilərsiniz. Bunu edərkən antistatik tədbirlərə əməl etməyinizə əmin olun. Mikroprosessorla işləyərkən antistatik bilək kəmərindən istifadə edin.

Adım 3: Adım 3: Son Tikinti

Addım 3: Son Tikinti
Addım 3: Son Tikinti
Addım 3: Son Tikinti
Addım 3: Son Tikinti

Dövrə, #30 AWG tel sarma teli istifadə edərək bir prototip lövhəsi üzərində qurulmuşdur. Çətin və etibarlı nəticə verir. Sahib olduğum transformatorun kabelin ucunda 5 mm -lik kişi fişi olduğu üçün, xüsusi etmək üçün 1/2 düymlük düz alüminium şeridi kəsib, əyərək və qazaraq müvafiq qadın qabını lövhənin arxasına quraşdırdım. kiçik 4-40 qoz-fındıq və bolt ilə lövhəyə bərkidin. Sadəcə bağlayıcını kəsib qalan elektrik naqillərini lövhəyə lehimləyib özünüzü təxminən 20 dəqiqəlik işdən xilas edə bilərsiniz, amma transformatorun daimi olaraq bağlanmasını istəmədim. lövhəyə.

Addım 4: Adım 4: Ekran üçün bir yuva yaratmaq və ayaqları vermək

Addım 4: Ekran üçün bir yuva yaratmaq və ayaqları vermək
Addım 4: Ekran üçün bir yuva yaratmaq və ayaqları vermək
Addım 4: Ekran üçün bir yuva yaratmaq və ayaqları vermək
Addım 4: Ekran üçün bir yuva yaratmaq və ayaqları vermək
Addım 4: Ekran üçün bir yuva yaratmaq və ayaqları vermək
Addım 4: Ekran üçün bir yuva yaratmaq və ayaqları vermək

Ekranın hər tərəfində 8 ədəd 16 pin olduğu üçün standart bir 16 pinli IC yuvasından daha geniş bir pin aralığına sahibik, yuvanın ölçüsünü ekrana uyğunlaşdırmalıyıq. Bunu etmək üçün, rozetkanın hər iki tərəfini birləşdirən plastiği kəsmək, ayırmaq və ekrandakı sancaqlar aralığına uyğun bir boşluq ilə lövhəyə ayrıca lehimləmək üçün bir cüt tel kəsici istifadə edə bilərsiniz. Bunu etmək üçün ekranın pinlərinə birbaşa lehimləməyiniz və ekranı həddindən artıq istiyə məruz qoymamağınız faydalıdır. Bunu etdiyim yuvanı lövhənin yuxarı hissəsində yuxarıdakı şəkildə görə bilərsiniz.

Ekranın ayağa qalxması üçün fotoşəkillərdə göstərildiyi kimi prototip lövhəsinin alt iki künc çuxuruna iki ədəd 1 bolt bağladım. Bu olduqca çılğın idi, buna görə də belə etsəniz sabitləmək üçün boltların arxasına ağır bir şey qoymaq istəyirlər.

Adım 5: Adım 5: Devre Kartı Kablolarının Yoxlanılması və Kalibrlənməyə Hazırlanması

Addım 5: Dövrə lövhəsinin naqillərini yoxlayın və kalibr etməyə hazırlaşın
Addım 5: Dövrə lövhəsinin naqillərini yoxlayın və kalibr etməyə hazırlaşın

Elektrik lövhəsi bağlandıqdan sonra, IC -ləri bağlamadan və ya ekranı açmadan və ya işə salmadan əvvəl, lövhə əlaqələrini DVM ilə yoxlamaq yaxşı bir fikirdir. DVM -lərin çoxunu elə qura bilərsiniz ki, davamlılıq olduqda səs siqnalı versinlər. DVM -inizi bu rejimə qoyun və sonra sxem sxeminizə uyğun olaraq mümkün qədər çox dövrə bağlantısını yoxlayın. +5V və Topraklama nöqtələri arasında açıq bir dövrə və ya ona yaxın bir yer yoxlayın. Vizual olaraq bütün komponentlərin düzgün pinlərə qoşulduğunu yoxlayın.

Sonra transformatorunuzu dövrə bağlayın və onu yandırın. Hər hansı bir IC və ya ekranı bağlamadan əvvəl ya əhatə dairəsi və ya DVM ilə 5V elektrik rayında tam 5V DC olduğundan əmin olun. Növbəti addıma hazırlaşmaq üçün YALNIZ Op-Amp U5 IC-ni qoşun. Burada kəsişməmizin bir kvadrat dalğa yaratdığını yoxlayacağıq və potensialiometr RV1 -i təmiz 60 Hz siqnalına uyğunlaşdıracağıq.

Adım 6: Adım 6: Dövrə Kalibrlənməsi

Addım 6: Dövrə Kalibrlənməsi
Addım 6: Dövrə Kalibrlənməsi
Addım 6: Dövrə Kalibrlənməsi
Addım 6: Dövrə Kalibrlənməsi

Ediləcək yeganə kalibrləmə, potensialiometr RV1 -ni, detektor üzərindən keçən siqnalın düzgün səviyyəsi üçün tənzimləməkdir. Bunun iki yolu var:

1. U5 -in 1 -ci pininə bir ölçmə zondu qoyun və əhatə zondunun telini dövrə torpağına bağladığınızdan əmin olun. Sonra yuxarıdakı şəkildə göstərildiyi kimi təmiz bir kvadrat dalğasına sahib olana qədər RV1 -i tənzimləyin. RV1 -ni bu və ya digər şəkildə çox uzaqlaşdırsanız ya kvadrat dalğanız olmayacaq, ya da təhrif edilmiş bir kvadrat dalğanız olmayacaq. Kvadrat dalğa tezliyinin 60 Hz olduğundan əmin olun. Müasir bir əhatəniz varsa, ehtimal ki, tezliyi sizə xəbər verəcəkdir. Mənim kimi qədim bir sahəniz varsa, kvadrat dalğa dövrünün təxminən 16.66ms və ya 1/60 saniyə olmasını təmin edin. 2. Frekans rejimində bir tezlik sayğacından və ya DVM -dən istifadə edərək U5 -in 1 -ci pinindəki tezliyi ölçün və RV1 -i tam olaraq 60 Hz -ə uyğunlaşdırın. Bu kalibrləmə edildikdən sonra, dövrə quruluşunu tamamlamaq üçün dövrəni söndürün və bütün IC -ləri və ekranı qoşun.

Adım 7: Adım 7: Arduino Proqramı

Proqram, hər addımın detallarını anlaya bilmək üçün tam şərh edilmişdir. Proqramın mürəkkəbliyi səbəbindən hər addımı təsvir etmək çətindir, amma çox yüksək səviyyədə belə işləyir:

Mikroprosessor daxil olan 60 Hz kvadrat dalğasını alır və 60 dövrəni sayır və hər 60 dövrədən sonra saniyələri artırır. Saniyələrin sayı 60 saniyəyə və ya 3600 dövrə çatdıqda, dəqiqələrin sayı artırılır və saniyələrin sayı sıfırlanır. Dəqiqə sayı 60 dəqiqəyə çatdıqda, saat sayı artırılır və dəqiqə sayı sıfırlanır. saat sayı 13 saatdan sonra 1 -ə qaytarılır, buna görə də bu 12 saatlıq bir saatdır. 24 saatlıq bir saat istəsəniz, proqramı 24 saatdan sonra sıfıra sıfırlayın. Bu eksperimental bir layihədir, buna görə də Set və Artır düymələrində keçid sıçrayışını basdırmaq üçün Do-while döngəsindən istifadə etməyə çalışdım. Olduqca yaxşı işləyir. Ayarla düyməsinə bir dəfə basıldıqda, Artırma düyməsi ekranda göstərilən saatları keçmək üçün istifadə edilə bilər. Set düyməsinə yenidən basıldıqda, artım düyməsi ekranda göstərilən dəqiqələri keçmək üçün istifadə edilə bilər. Set düyməsinə üçüncü dəfə basıldıqda, vaxt təyin olunur və saat işləməyə başlayır. 7 seqmentli displeylərdə hər bir rəqəmi göstərmək üçün istifadə olunan 0 və 1 nümunələri Seven_Seg adlı massivdə saxlanılır. Mövcud saat vaxtından asılı olaraq, bu nümunələr 74HC595 IC -ə verilir və ekrana göndərilir. Bu məlumatları almaq üçün ekranın 4 rəqəmindən hər hansı biri bir anda açılırsa, Dig 1, 2, 3, 4 sancaqlar vasitəsilə mikroprosessor tərəfindən idarə olunur. Dövrə işə salındıqda, proqram əvvəlcə Test_Clock adlı bir test prosedurunu yerinə yetirir və 0 -dan 9 -a qədər hər ekranı işıqlandırmaq üçün doğru rəqəmləri göndərir..

Adım 8: Adım 8: PCBWay Təklifi

Bu yazını bitirir, amma bu layihənin sponsoru, 5 yaşını qeyd edən PCBWay -dir. Https://www.pcbway.com/anniversary5sales.html ünvanına baxın və montaj xidmətinin indi 30 dollara qədər aşağı olduğunu unutmayın.

Tövsiyə: