Mündəricat:

Arduino Matrix Saatı: 6 addım
Arduino Matrix Saatı: 6 addım

Video: Arduino Matrix Saatı: 6 addım

Video: Arduino Matrix Saatı: 6 addım
Video: #SanTenChan читает гнома из второй серии книги Сани Джезуальди Нино Фрассики! 2024, Noyabr
Anonim
Arduino Matrix Saatı
Arduino Matrix Saatı

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

Kitabxanalar
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ə

Kablolama
Kablolama
Kablolama
Kablolama
Kablolama
Kablolama

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.

Tövsiyə: