Mündəricat:
- Təchizat
- Addım 1: Dövrəni bağlayın
- Addım 2: Buzzer hissəsinin hazırlanması
- Addım 3: LED panelinin hazırlanması
- Addım 4: Anahtarı hazırlamaq (əslində düymə)
- Addım 5: LED şeridinin hazırlanması
- Addım 6: Kapasitans Sensorunun Hazırlanması
- Addım 7: Güc Təchizatının Hazırlanması
- Addım 8: Onları Arduinoya bağlayın
- Addım 9: Qapaq
- Addım 10: Proqramlaşdırma vaxtı
- Addım 11: Düzəldici Mexanizm
- Addım 12: Bütün funksiyaları necə istifadə etmək olar
- Addım 13: Nəticə
- Addım 14: Yeniləmə: Bir həftəlik istifadədən sonra
Video: DIY Arduino İkili Zəngli Saat: 14 Adım (Şəkillərlə birlikdə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
Yenidən klassik ikili saatdır! Ancaq bu dəfə daha çox əlavə funksiya ilə! Bu təlimatlı kitabda, Arduino ilə nəinki vaxtı, həm də tarixi, ayı, hətta çarpayı lampası kimi də istifadə edilə bilən taymer və həyəcan funksiyalarını göstərə biləcək ikili zəngli saat qurmağı sizə göstərəcəyəm! Əlavə danışmadan başlayaq!
Qeyd: Bu layihə bir RTC modulundan istifadə etmir, buna görə dəqiqlik istifadə etdiyiniz lövhədən asılıdır. Müəyyən bir müddət ərzində zamanın sürüşməsini düzəldəcək bir düzəldici mexanizm daxil etdim, ancaq zaman aralığında doğru dəyəri tapmaq üçün təcrübə etməlisiniz (aşağıda bu barədə daha çox) və hətta düzəltmə mexanizmi ilə yenə də sürüşəcək. uzun müddət ərzində (biri olmadan müqayisə edildikdə). Kimsə maraqlıdırsa, bu layihədə RTC modulundan istifadə etməkdən çekinmeyin
Təchizat
5 mm LED (istənilən rəngdə, göstərici olaraq bir RGB LEDli 13 ağ LED istifadə etdim) --- 14 ədəd
Arduino Nano (digərləri işləyə bilər) --- 1 ədəd
Mikro açar-1 ədəd
Kiçik alüminium folqa parçası
Montaj lövhəsi (qapaq üçün, ancaq özünüz üçün dizayn etməkdən çekinmeyin)
Ağ kağız parçası (və ya başqa rəng)
Bəzi plastik film (kitabın üz qabığı kimi istifadə olunur)
Bir dəstə tel
Buzzer-1 ədəd
NPN transistoru-1 ədəd
Rezistorlar 6k8 --- 14 ədəd, 500R --- 1 ədəd, 20R (10Rx2) --- 1 ədəd, 4k7 --- 1 ədəd
Layihə üçün enerji təchizatı (li-on batareyadan istifadə etdim)
5050 LED şeridi və sürüşmə açarı (isteğe bağlı)
Addım 1: Dövrəni bağlayın
Bu addımı bölürəm:
1) Buzzer hissəsi
2) LED paneli
3) keçid (düymə)
4) LED şeridi
5) Kapasitans sensoru
6) Enerji təchizatı
7) Hamısını Arduinoya bağlayın
Çox vaxt bu, sadəcə "sxematik şəkildə izləyin" addımdır. Buna görə yuxarıdakı sxemə baxın və ya hətta yükləyin və çap edin!
Addım 2: Buzzer hissəsinin hazırlanması
Daha əvvəl Arduino ilə buzzer istifadə etmisinizsə, biləcəksiniz ki, onu birbaşa Arduino -ya bağlasaq, kifayət qədər yüksək olmayacaq. Buna görə gücləndiriciyə ehtiyacımız var. Gücləndiricini qurmaq üçün bir NPN tranzistoruna ehtiyacımız var (əsasən hər hansı bir NPN işləyəcək, köhnə layihədən aldığım üçün S9013 istifadə etdim) və cərəyanı məhdudlaşdırmaq üçün bəzi rezistorlar. Başlamaq üçün əvvəlcə tranzistorun kollektorunu, emitentini və əsasını müəyyənləşdirin. Məlumat cədvəlini bir az googling etmək bunun üçün işləyəcək. Sonra, tranzistorun kollektorunu siqnalın mənfi terminalına lehimləyin. Səs siqnalının pozitiv terminalında biz ona bir parça tel lehimləyirik ki, daha sonra Arduino -ya lehimləyək. Bundan sonra, 500R (və ya buna bənzər bir müqavimət dəyəri) müqavimətini tranzistorun bazasına və rezistordan lehimləyin, gələcək istifadə üçün başqa bir tel parçası lehimləyin. Nəhayət, iki 10R müqavimətini ardıcıl olaraq transistor emitörünə lehimləyin və rezistorlardan başqa bir tel bağlayın.
Həqiqətən, sxematiklərə baxın.
p/s: Bunu yazarkən hələ də tranzistor üçün müqavimət necə seçəcəyimi bilmirəm. İstifadə etdiyim dəyər empirik olaraq seçilir.
Addım 3: LED panelinin hazırlanması
LEDləri və rezistoru prototip lövhəsinə uyğun olaraq qoşun və lehimləyin. Bu belədir. Sxemaya əməl edin. İstifadə etdiyim boşluqla maraqlanırsınızsa, hər sütun üçün 3 deşik və hər satır üçün iki deşik (şəkilə baxın). Və göstərici LED? Təsadüfi olaraq bağladım.
LEDləri və rezistoru lövhəyə lehimlədikdən sonra, LED -lərin bütün müsbət terminallarını bir -birinə bağlayın. Sonra, LED -lərin mənfi terminallarında rezistorların hər birini bir -bir lehimləyin ki, daha sonra Arduinoya lehim edə bilək.
DİQQƏT: Bu addımı ata bilərsiniz. Unutmayın ki, bütün zəmini bir -birinə bağlamaq əvəzinə, bütün müsbət terminalı bir -birinə bağlayırıq və mənfi terminalı Arduino -dakı fərdi pinə bağlayırıq. Beləliklə, Arduino GPIO pinini Vcc yox, torpaq kimi istifadə edirik. Təsadüfən arxaya bağlasanız, narahat olmayın. LED nəzarət funksiyasında bütün YÜKSƏKLƏRİ DÜŞÜK və YÜKSƏK olaraq YÜKSƏ dəyişə bilərsiniz.
Addım 4: Anahtarı hazırlamaq (əslində düymə)
Keçid üçün (keçid adlandıracağam, çünki mikro keçid istifadə etdim, ancaq bunun düymə olduğunu bilirsiniz) 4k7 açılan rezistora və əlbəttə ki, keçidin özünə ehtiyacımız var. Ah, bəzi tellər hazırlamağı unutmayın. Rezistoru və bir tel parçasını mikro açarın ümumi zəminə (COM) lehimləməklə başlayın. Sonra başqa bir tel parçasını mikro açarın normal açılmış (NO) hissəsinə lehimləyin. Nəhayət, rezistora başqa bir tel bağlayın. Bir az isti yapışqan ilə bərkidin.
Bilik küncü: Niyə açılan bir rezistora ehtiyacımız var?
"Rəqəmsal G/Ç pinini hər şeydən ayırsanız, LED nizamsız yanıb -sönə bilər. Bunun səbəbi girişin" üzən "olmasıdır, yəni təsadüfi olaraq ya YÜKSƏK, ya da DÜŞÜK qaytaracaq. Bu səbəbdən bir çəkmə və ya dövrədəki açılan rezistor. " - Mənbə: Arduino veb saytı
Addım 5: LED şeridinin hazırlanması
LED şeridi isteğe bağlı olan yataq lampası üçündür. Sadəcə LED şeridi və sürüşmə açarını ardıcıl olaraq birləşdirin, xüsusi bir şey yoxdur.
Addım 6: Kapasitans Sensorunun Hazırlanması
Tamam şəkilə baxın. Əsasən teli kiçik bir alüminium folqa parçasına bağlayacağıq (çünki alüminium folqa lehimlənə bilməz) sonra montaj lövhəsinin kiçik bir hissəsinə yapışdırın. Xatırlatma, alüminium folqa tamamilə yapışdırmadığınızdan əmin olun. Bir hissəsini birbaşa təmas üçün açıq qoyun.
Addım 7: Güc Təchizatının Hazırlanması
Li-on batareyanı enerji təchizatı olaraq istifadə etdiyim üçün şarj və qoruma üçün TP4056 moduluna və gərginliyi 9v-a çevirmək üçün gücləndirici çeviriciyə ehtiyacım var. 9V divar adapterindən istifadə etmək qərarına gəlsəniz, DC yuvasına ehtiyacınız ola bilər və ya birbaşa qoşun. Diqqət yetirin ki, gücləndiricinin müqavimət dəyəri 9V üçün nəzərdə tutulmuşdur və başqa bir gərginlik istifadə etmək istəyirsinizsə, rezistoru dəyişdirməyiniz lazım ola bilər.
Addım 8: Onları Arduinoya bağlayın
Sxemaya əməl edin! Sxemaya əməl edin! Sxemaya əməl edin!
Yanlış pin bağlamayın, əks halda hər şey qəribə olacaq.
Addım 9: Qapaq
Dizaynımın ölçüsü 6.5cm*6.5cm*8cm olduğu üçün bir az həcmlidir. LED ekran üçün ön pəncərə və yataq lampası üçün üst pəncərədən ibarətdir. Dizaynım üçün şəkillərə baxın.
Addım 10: Proqramlaşdırma vaxtı
Aşağıdakı eskizimi yükləyin və Arduino -ya yükləyin. Bunu necə edəcəyinizi bilmirsinizsə, bu layihəni etməkdən narahat olmayın! Bəli, zarafat edirəm, burada yaxşı bir dərs var: eskizini arduinoya yükləyin
Sonra serial monitoru açın və cari vaxtı çıxardığını görməlisiniz. Vaxtı təyin etmək üçün bunu necə edəcəyinizi burada tapa bilərsiniz.
Saatı təyin etmək üçün: h, XX - burada xx cari saatdır
Dəqiqəni təyin etmək üçün: min, XX - xx cari dəqiqədir
İkincini təyin etmək üçün: s, XX
Tarixi təyin etmək üçün: d, XX
Ayı təyin etmək üçün: mon, XX
Yuxarıdakı şərh icra edildikdə, sizə təyin etdiyiniz dəyəri qaytarmalıdır. (Məsələn, h, 15 ilə saatı təyin edərkən, serial monitorda Saat: 15 -i qaytarmalıdır.
Kapasitans sensoru üçün işləməzdən əvvəl onu kalibr etməyiniz lazım ola bilər. Bunu etmək üçün mikro açarı iki dəfə basın və serial monitoruna baxın. Bir dəstə ədəd çıxarmalıdır. İndi barmağınızı kapasitans sensörünə qoyun və nömrənin aralığına diqqət yetirin. Sonra, "captrigger" dəyişənini dəyişdirin. Tutaq ki, basıldığında 20-30 alırsınız, sonra kaptrigger-i 20-yə qoyun.
Eskiz ADCTouch kitabxanasından istifadə edir, onu quraşdırdığınızdan əmin olun.
Addım 11: Düzəldici Mexanizm
Kodumdakı düzəliş mexanizminin müddəti mənim üçün dəqiq olana təyin edilmişdir. Saat hələ dəqiq deyilsə, "corrdur" dəyişəninin dəyərini dəyişdirməlisiniz.
Düzəliş son yeniləmədə indi 0 olaraq təyin olunur.
Düzəlişin dəyəri, bir saniyəni yavaşlatmaq üçün neçə milisaniyənin lazım olduğunu bildirir
Düzəlişin dəyərini öyrənmək üçün düsturdan istifadə edin:
2000/(y-x)/x)
burada x = keçən vaxtın əsl müddəti və y = saatın hər ikisinin saniyədə keçən müddəti
X və y -nin dəyərini tapmaq üçün kiçik bir təcrübə aparmaq lazımdır.
Saatın vaxtını həqiqi saata təyin edin və ilkin vaxtı qeyd edin (faktiki ilkin vaxt və saatın başlanğıc vaxtı eyni olmalıdır). Bir müddət sonra (bir neçə saat), son faktiki vaxtı və saatın son vaxtını qeyd edin.
x = faktiki son vaxt-başlanğıc vaxt və y = saat son zaman-başlanğıc vaxt
Sonra koddakı corrdur dəyərini dəyişdirin və Arduinoya yenidən yükləyin.
Sonra testi təkrarlayın və bu dəfə düstur dəyişdi:
2000/((2/z)+(y-x/x))
Burada x və y əvvəlki ilə eyni şeydir, z isə cari düzəldici dəyərdir.
Yenidən yükləyin və sizin üçün kifayət qədər dəqiq olana qədər testi təkrar -təkrar edin.
Saatınız hələ də sürətlənirsə, hətta düzəliş 0-a (düzəltmə mexanizmi demək deyil) təyin olunarsa, kodun düzəldici mexanizm hissəsində ikinci ++ -ı ikinciyə dəyişməlisiniz (şərh etdim), korduru 0-a qoyun, sonra no tapın. bir saniyəni sürətləndirmək üçün milisaniyəni alır.
Addım 12: Bütün funksiyaları necə istifadə etmək olar
Mikro açara basaraq rejimi dəyişə bilərsiniz.
Birinci rejimdə sadəcə vaxtı göstərir. Göstərici işığı saniyədə 1 dəfə yanıb -sönərsə, həyəcan sönür. Saniyədə 2 dəfə olarsa, həyəcan açılır. Kapasitans sensoruna basaraq həyəcanı ilk rejimdə 10 dəqiqə gecikdirə bilərsiniz.
İkinci rejimdə tarix göstərilir. Sıxılma sensoru heç bir şey etməz.
Üçüncü rejimdə, taymer təyin edə bilərsiniz. Kapasitans sensoruna basmaq zamanlayıcıyı açacaq və göstərici işığının yanıp sönməyə başladığını görməlisiniz. Kapasitans sensoru, taymer vaxtını təyin etmək üçün də istifadə olunur. Taymer aralığı 1 dəqiqədən 59 dəqiqəyə qədərdir.
Dördüncü rejimdə, kapasitans sensoru istifadə edərək zəngli saat təyin edə bilərsiniz
Beşinci rejimdə, kapasitans sensoru istifadə edərək həyəcan dəqiqəsini təyin edə bilərsiniz.
Altıncı rejimdə, kapasitans sensoruna basaraq saatı dəyişmədən dəqiqəni 30 -a, saniyəni 0 -a sıfırlayacaqsınız. Bu o deməkdir ki, saatınız 30 dəqiqədən çox sürüşmür, bu rejimi istifadə edərək yenidən kalibr edə bilərsiniz.
Yeddinci rejim, kapasitans sensoru şarj edərkən arızalanması halında heç bir şey etməmək rejimidir.
Oh, həyəcanı söndürmək üçün mikro açarı basın. (ALARM SNOOZE DAHİL OLMASINA SON GÜNCÜLMƏ)
Yaxşı, saatı oxumağa necə? Bu asandır! İkili Saat Oxu - Wikihow İlk vaxtlar özünüzü qəribə hiss edə bilərsiniz, ancaq buna öyrəşəcəksiniz!
Addım 13: Nəticə
Niyə bu layihəyə başladım. Başlanğıcda, köhnə bir rəqəmsal saatım olduğuna görə yatıram və onu zəngli saata çevirmək istəyirəm. Təəssüf ki, köhnə saat qırıldı. Niyə Arduino istifadə edərək birini qurmursunuz? Bir az google axtarışı ilə Cello62 tərəfindən öyrədilə bilən RTC olmadan bu ikili saat layihəsini tapdım. Ancaq istədiyim zəngli saat xüsusiyyəti yoxdur, buna görə kodu götürüb özüm dəyişdirirəm. Və layihə doğulur. Üstəlik, bu yaxınlarda təlimat verən bir saat yarışması gördüm ki, bu da mənə daha çox motivasiya verdi. Hər halda, bu hələ də Arduino istifadə edən ilk layihəmdir, buna görə də bir çox mümkün inkişaflar.
Gələcək inkişaf:
1) RTC istifadə edin
2) Siqnal və ya vaxtı və ya taymeri simsiz olaraq təyin edin!
3) Düşündüyüm xüsusiyyət
Addım 14: Yeniləmə: Bir həftəlik istifadədən sonra
Açıq problemdən başqa - vaxt sürüşməsi, deyəcəyim növbəti problem enerji istehlakıdır. Əvvəlcə gərginliyi 9v -a qədər artırıram, sonra Arduinodakı xətti tənzimləyici tərəfindən aşağı salınacaq. Xətti tənzimləyici çox səmərəsizdir. Saat yalnız BİR GÜN üçün davam edir. Yəni hər gün şarj etməliyəm. Bütün sistemin yalnız təxminən 50% səmərəli olduğunu başa düşməyincə bu, ən böyük razılaşma deyil. Batareyamın 2000 mAh olduğunu nəzərə alaraq, hər gün sərf olunan enerjini hesablaya bilərdim.
Enerji boşa çıxdı = (7.4Wh*10%)+(7.4Wh*90%*50%) = 4.07Wh gündə
Bu, ildə 1.486 kVt / saatdır! Bu, 283 q su (25 C ilə 100 C arasında) qaynatmaq üçün istifadə edilə bilərmi? Ancaq hər halda, saatın səmərəliliyini artıracağam. Bunun yolu xətti tənzimləyicidən heç istifadə etməməkdir. Bu o deməkdir ki, gücləndirici çeviricini 5V çıxışını Arduino üzərindəki 5V pininə düzəltməliyik. Daha sonra, daha da boşa çıxan enerjini minimuma endirmək üçün, hər iki LED -i (pin13 və güc) çıxarmalıyam, çünki onlar gündə 0.95Wh sərf edəcəklər. Təəssüf ki, SMD lehimləmə işində heç bir işim yoxdur, buna görə mənim üçün yeganə yol lövhədəki dəmir yolu kəsməkdir. Bundan sonra, səs siqnalı üzərindəki yayıcı rezistoru və yataq lampasını çıxarmalıyam (LED şeridi 5V -də işləmir). Amma bu o gözəl xüsusiyyətdən imtina etməli olduğunuz anlamına gəlirmi? Yox! Burada iki seçiminiz var: Normal 5 mm LED dioddan istifadə edin və ya 5 V LED şeridi istifadə edin. Ancaq mənim üçün bu layihəni keçən həftə ərzində etməkdən yoruldum, buna görə də bu xüsusiyyətdən imtina etmək qərarına gəldim. Bununla birlikdə, açarı əvvəlcə enerjiyə qənaət etmək üçün saat panelini açmaq və ya söndürmək üçün işıq xüsusiyyəti üçün istifadə etdim, amma söndürdüyümdə LED yanıb söndü. Hata xüsusiyyət halına gəlirmi? Bilmirəm (bilən varsa mənə aşağıda yazsın).
Modifikasiyanın sonunda saat artıq 2 gündən çox davam edir!
Növbəti saatla bağlı daha az ciddi problemim var. Şarj edərkən, kapasitans sensoru dəli olacaq, buna görə tamamilə heç bir şey etməyən başqa bir rejim əlavə edirəm.
Vaxt sürüşməsinə gəldikdə, hər gün kompüteri yenidən qurmaq çox əlverişsiz olduğundan, dəqiqəni 30 və saniyəni 0 -a təyin edəcək başqa bir rejim əlavə etdim. Yəni hər hansı bir saatın yarısında sıfırlaya bilərsiniz!
Tövsiyə:
Yaddaş Puzzle Zəngli Saat: 3 Adım (Şəkillərlə birlikdə)
Yaddaş Puzzle Zəngli Saat: Zəngli zəngi dayandırmaq üçün həll etməli olduğunuz kiçik bir yaddaş oyunu olduğu mənasını verən Alarm Puzzle Clock! Xülasə olaraq, bu saat səhərlər ləzzət çəkənlər üçündür. Düymələrdən birini basdığınız zaman həyəcan siqnalı olacaq 3 LED var
Ağıllı Zəngli Saat: Raspberry Pi ilə Ağıllı Zəngli Saat: 10 addım (şəkillərlə)
Ağıllı Zəngli Saat: Raspberry Pi ilə Ağıllı Zəngli Saat: Heç ağıllı bir saat istəmisinizmi? Əgər belədirsə, bu sizin üçün bir həlldir! Ağıllı Zəngli Saat hazırladım, bu veb saytına görə zəngli saatını dəyişə biləcəyiniz bir saatdır. Siqnal çalınanda bir səs (zil) olacaq və 2 işıq yanacaq
Arduino ilə Zəngli Zəngli Saat: 13 Addım (Şəkillərlə)
Arduino ilə Zəngli Zəngli Saat: Səni bilmirəm, amma sadə bir zəngli saat məni oyatmağa qadir deyil. Yuxudan oyanmaq üçün işığa, səsə və hətta yumşaq bir şilləyə ehtiyacım var. Zəngli saat məni cəlb etmir, buna görə də özümü oyatmağa layiq biri olmağa qərar verdim
LED Gündoğumu Zəngli Saat: 5 Adım (Şəkillərlə birlikdə)
LED Gündoğumu Zəngli Saat: Səhər qalxmaqda çətinlik çəkirsiniz? Siqnalın sərt pirsinq səsinə nifrət edirsiniz? Daha az pula və vaxta görə satın ala biləcəyiniz bir şeyi təkbaşına etmək istərdinizmi? Sonra bu LED Gündoğumu Zəngli Saatına baxın
Arduino əsaslı ikili zəngli saat: 13 addım (şəkillərlə)
Arduino Əsaslı İkili Zəngli Saat: Hey, bu gün sizə son layihələrimdən birini, ikili zəngli saatımı necə quracağımı göstərmək istərdim. İnternetdə bir çox fərqli İkili saat var, amma bu rəngli ünvanlı LED lentindən hazırlanmış ilk saat ola bilər