Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Təsvir:
Saatinizi bir Arduino, matris ekranı və Real Time Clock (RTC) modulu ilə qurun. Yeni başlayanlar üçün əla olduğunu düşündüyüm əyləncəli və sadə bir layihədir. Saat, vaxtı, günü, ayı və ili dəqiq izləmək üçün RTC modulundan istifadə edir. Bundan əlavə, modulda quraşdırılmış temperatur sensoru var. Burada DS3231 modulu və bunun üçün istifadə olunan I2C rabitə avtobusu haqqında daha çox məlumat əldə edə bilərsiniz. Nəhayət, həftənin gününü, ayını və saatı göstərmək üçün bir Dot Matrix Ekranından istifadə edəcəyik. Aşağıdakı məlumat cədvəlində buradakı ekran və MAX7219 IC sürücüsü haqqında daha çox məlumat əldə edə bilərsiniz.
Bu layihə üçün pdf versiyasını da buradan yükləyə bilərsiniz. Bu təlimat verənlə demək olar ki, eynidir.
[GÜNCELLEME: 2/22/19] pdf bələdçisindən istifadə etməyin, mən bu təlimatı yenilədim, amma bu dəyişikliklər hələ pdf -də əks olunmayıb.
Addım 1: Komponentləri toplayın
Bu layihə üçün sizə lazım olan komponentlər:
- Max7219 Dot Matrix Ekranı [Buradan Al] [Məlumat Cədvəli]
- RTC DS3231 [Buradan alın] [Məlumat cədvəli]
- 3V CR3032 batareya (DS3231 üçün)
Bundan əlavə, hər hansı bir Arduino (layihənin ölçüsünü minimuma endirmək üçün Nano), çörək taxtası, tullanan tellər və kompüterinizə quraşdırılmış Arduino IDE -yə ehtiyacınız olacaq.
Addım 2: Kitabxanalar
Aşağıdakı kitabxanaları yükləyin və.zip faylını Arduino IDE -ə Sketch> Kitabxanaya Daxil et> Zip kitabxanasına gedərək quraşdırın.
DİQQƏT: VERSİYONLAR MƏHSULDUR !
* Yükləməzdən əvvəl düzgün versiyalara malik olduğunuzu yoxlayın. Təhlükəsiz tərəfdə olmaq üçün Arduino IDE -dəki hər kitabxananı yükləməyi məsləhət görürəm.
MD_Parola 3.0.1:
MD_MAX72XX 3.0.2:
DS3231 1.0.2:
Alternativ olaraq
Arduino IDE -də Sketch> Kitabxana daxil et> Kitabxanaları İdarə et və axtarış çubuğuna "MAX72XX" yazın və aşağıdakıları görməlisiniz (Şəkilə baxın):
Yalnız MD_MAX72XX və MD_Parola quraşdırın. MD_MAXPanel lazım deyil.
Addım 3: Komponentlərinizi sınayın
Kitabxanaları qurduqdan sonra, lazım olduğu kimi işlədiklərini yoxlamaq üçün komponentlərinizi fərdi olaraq sınayın. Zəhmət olmasa hər şeyi bir yerə bağlamadan əvvəl bu addımları izləyin
DS3231 RTC Modulunu sınamaq üçün DS3231 -i Arduino -ya qoşun (aşağıda Kablolama bölməsinə baxın). Sonra Arduino IDE -də Fayllar> Nümunələr> DS3231> DS3231_Test bölməsinə gedin və eskizi yükləyin. Serial Monitoru açın və doğru tarixi, vaxtı, günü aldığınızı yoxlayın.
Matris ekranını sınamaq üçün əvvəlcə Arduino -ya qoşun (aşağıda Kablolama bölməsinə baxın). Sonra Arduino IDE -də Fayllar> Nümunələr> MD_Parola> Parola_HelloWorld -ə gedin və eskizi yükləyin. Ekranda HELLO yazıldığını görməlisiniz və arxa tərəfə də çap oluna bilər. Mətn geridədirsə, aşağıdakı sətri dəyişdirməlisiniz:
#define HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW
Üçün
#define HARDWARE_TYPE MD_MAX72XX:: FC16_HW
Eskizi yenidən yükləyin və problem həll olunmalıdır.
İndi komponentlərimizi sınadıqdan sonra hər şeyi bir -birinə bağlamağa hazırıq!
Addım 4: Kabel çəkmə
Diaqram və ya sxematik və ya cədvələ baxın
Addım 5: KOD
Kodu buradan əldə edin
Qeyd: Mən əvvəlcə Elektron Layihələr tərəfindən istifadə olunan bir kodu istifadə etdim, ancaq indiki kitabxanaları dəstəkləmək üçün dəyişdirdim.
Saat Xüsusiyyətləri:
Saat avtomatik olaraq 24 saat formatında vaxtı bildirmək üçün qurulmuşdur, lakin asanlıqla 12 saata dəyişdirilə bilər. Saatda həmçinin temperatur göstəriləcək (həm Selsi, həm də Fahrenheit). "Yuxu rejimi" adlı bir funksiyanı da "OFF" olaraq təyin etdim (ətraflı məlumat üçün aşağıda Yuxu rejiminə baxın).
12 saat Formatı: Saatı 12 saat formatında bildirmək üçün 88 sətirini şərh etməlisiniz
saat = Clock.gethour (h12, PM); // 24 saat formatı
Və 93 -dən 100 -ə qədər sətirləri qeyd edin
əgər (Clock.getHour (h12, PM)> = 13 || Clock.getHour (h12, PM) == 0)
{h = Clock.getHour (12, PM) - 12; } başqa {h = Clock.getHour (h12, PM); }
Yuxu rejimi:
Xüsusilə yuxuda olduğumuz saatlarda saatın parlaqlığını azaltmağa kömək edən bir xüsusiyyətdir. Gecə yarısı oyanmaq istəmədiyinizi düşünürəm. Ən aşağı vəziyyətdə olsa belə çox parlaqdır. Yuxu rejimini aktiv etmək üçün 177 -dən 184 -ə qədər sətirləri qeyd edin
if (h == 12 || h <8) // Zaman intervalları (bu halda, 12AM -dan 8AM -a qədər) {P.setIntensity (0); // Ekran parlaqlığını ən aşağı ayara təyin edin} başqa {P.setIntensity (6); // Ekran parlaqlığını 6 olaraq təyin edin (15 ən parlaqdır)}
Qeyd: Saat 12 saat rejimində ikən yuxu rejimindən istifadə edərkən bir problemlə qarşılaşdım. Gündə iki dəfə işləyəcəyini görürsünüz, çünki səhər 8 -dən axşam 8 -ə qədər hər ikisi 8 -dir. Belə ki, Yuxu rejimini 21: 00 -dan 7: 00 -a qədər aktiv etsəniz, 9: 00 -dan 19: 00 -dək də aktiv olacaq. Bununla birlikdə, saat 24 saat rejiminə qoyulduqda bu problem yaranmır.
Addım 6: Nəticə
Təbriklər !!! İş saatınız var. Mənimki [Saat Qalereyası] belə çıxdı. Ümid edirəm ki, yalnız komponentlər və kodlaşdırma haqqında bir az daha çox şey öyrənmədiniz, həm də ora gedən səyahətdən zövq aldınız. Zəhmət olmasa [email protected] ünvanından bu bələdçi haqqında fikirlərinizi mənimlə bölüşün. Bu əslində mənim ilk layihə bələdçimdir və ümid edirəm sizə yaxşı xidmət etdi. Daha çox bələdçi yaratmağı ümid edirəm. Əlavə olaraq, layihə ilə bağlı hər hansı bir sualınız, təklifiniz və/və ya irəliləyişiniz varsa mənə yaza bilərsiniz.