Mündəricat:

Kiçik LED Matrix Ekran Saatı: 8 addım
Kiçik LED Matrix Ekran Saatı: 8 addım

Video: Kiçik LED Matrix Ekran Saatı: 8 addım

Video: Kiçik LED Matrix Ekran Saatı: 8 addım
Video: Arduino ile Led Matrix Dijital Saat Yapımı - LEDSaat v1.0 (Arduino Led Matrix Digital Clock) 2024, Noyabr
Anonim
Image
Image
Kiçik LED Matrix Ekran Saatı
Kiçik LED Matrix Ekran Saatı
Kiçik LED Matrix Ekran Saatı
Kiçik LED Matrix Ekran Saatı
Kiçik LED Matrix Ekran Saatı
Kiçik LED Matrix Ekran Saatı

Həmişə 90-cı illərin filmlərindən bir şeyə bənzəyən, olduqca təvazökar bir funksiyaya sahib köhnə masaüstü saatına sahib olmaq istəmişəm: real vaxt saatı, tarix, arxa plan işığını dəyişdirmək, səs siqnalı və zəngli saat seçimi. Beləliklə, bir fikir yaratmaq üçün gəldim: Yuxarıda qeyd etdiyim bütün xüsusiyyətlərə malik mikro nəzarətçiyə əsaslanan və USB ilə işləyən rəqəmsal bir cihaz - ya PC, ya da hər hansı bir mobil USB şarj cihazı. Menyu və parametrlərin tənzimlənməsi ilə proqramlaşdırıla bilmək istədiyim üçün bu layihədə MCU yerləşdirilməsi qaçılmaz idi. ATMEGA328P IC (hər bir Arduino Uno lövhəsinin ibarət olduğu) dövrənin "beyni" olaraq seçildi (Həqiqətən, onlardan çoxu var idi). Proqramlaşdırıla bilən kiçik ölçülü LED ekranlı masa üstü saat kimi bəzi elektron hissələri RGB LED, axan yükləmə vaxtı çipi və düymələri birləşdirərək bütün layihənin doğulmasını təmin etdi.

Beləliklə, layihənin varlığını əhatə etdikdən sonra onu quraq

Addım 1: Fikir

Fikir
Fikir

Daha əvvəl də qeyd edildiyi kimi, cihazımızda bəzi gözəl görünüşlü LED matrisli displeylər, rəng dəyişən RGB LED arxa işıq, axan şarjlı vaxt işləmə çipi, rahat USB enerji təchizatı qurğusu və kiçik ölçülü bir korpus var.

Cihazın işləmə blok diaqramını hissələrə görə təsvir edək:

1. Güc Təchizatı Bölməsi:

Cihaz 5 volt DC -də işlədiyi üçün enerji təchizatı komponenti iki ayrı sxemdən ibarətdir:

  • Mikro USB girişi - Birbaşa şarj cihazı / PC enerji təchizatı üçün.
  • LM7805 IC əsasında 5V xətti gərginlik tənzimləyicisi dövrəsi.

LM7805 IC dövrəsi isteğe bağlıdır, əgər fərqli enerji təchizatı giriş mövcudluğunu tətbiq etməyi üstün tutmasanız. Cihazımızda Micro-USB PSU istifadə olunur.

2. Mikrokontrolör vahidi:

ATMEGA328P mikro nəzarətçi bütün cihazın "beyni" rolunu oynayır. Məqsədi, bütün periferik sxemlərlə ünsiyyət qurmaq, lazımi məlumatları təmin etmək və cihazın istifadəçi interfeysini idarə etməkdir. Seçilmiş mikrokontrolör ATMEGA328P olduğundan, Atmel Studio və əsas C biliklərinə ehtiyacımız olacaq (Şemalar və proqramlaşdırma ardıcıllığı sonrakı addımlarda təsvir edilmişdir).

3. Real-Time Clock dövrə:

Cihazdakı ikinci ən vacib dövrə. Məqsədi, giriş gücü bağlantısından asılı olmayaraq, saxlama tələbi ilə tarix və vaxt məlumatlarını təmin etməkdir, yəni vaxt məlumatları real vaxt rejimində yenilənir. RTC komponentinin zaman / tarix məlumatlarını dəyişməyə davam etməsini təmin etmək üçün dövrə 3V sikkə hüceyrəli batareya əlavə olunur. IC DS1302 -dir, onun işləməsi sonrakı addımlarda təsvir edilmişdir.

4. Giriş İnterfeysi - Düymə Açarları:

Giriş PB açarları istifadəçi üçün giriş interfeysi təmin edir. Bu açarlar MCU və idarəetmə qurğusu tərəfindən müəyyən edilmiş proqramda işlənir.

5. LED Matrix Ekranı

Cihaz ekranı, hər bir IC 5x7 kiçik LED matrisdən ibarət olan iki IC bükülmüş HCMS-2902 Alfasayısal LED matrisindən ibarətdir. Bu ekranların istifadəsi sadədir, 3 telli rabitə dəstəklənir və kiçik ölçülüdür-bu layihədə ehtiyacımız olan hər şey.

6. RGB arxa işıq:

Rəng dəyişən arxa işıq, MCU -dan gələn PWM siqnalları ilə idarə olunan xarici RGB LED -ə əsaslanır. Bu layihədə, RGB LED -in cəmi 4 sancağı var: R, G, B və ümumi, burada R, G, B rəng palitrası MCU tərəfindən PWM vasitəsilə idarə olunur.

7. Buzzer:

Səs siqnalı, əsasən həyəcan məqsədləri üçün səs çıxışı olaraq istifadə olunur. BJT açarı səs siqnalı komponentinə kifayət qədər cərəyan vermək üçün istifadə olunur, buna görə də səsi canlı bir insanı oyatmaq üçün kifayət qədər yüksək olacaq.

Addım 2: Parçalar və Alətlər

Parçalar və Alətlər
Parçalar və Alətlər

I. Elektronika:

A. İnteqrasiya olunmuş və aktiv komponentlər:

  • 1 x ATMEGA328P - MCU
  • 2 x HCMS2902 - AVAGO Ekranları
  • 1 x DS1302 - RTC
  • 1 x 2N2222A - BJT (NPN)

B. Pasif komponentlər:

  • Rezistorlar:

    • 5 x 10K
    • 1 x 180R
    • 2 x 100R
  • Kondansatörler:

    • 3 x 0.1uF
    • 1 x 0.47 uF
    • 1 x 100 uF
    • 2 x 22 pF
  • 1 x 4 pinli RGB LED
  • 1 x Buzzer
  • 1 x 32.768KHz Kristal

C. Bağlayıcılar:

  • 1 x Mikro USB konnektoru
  • 2 x 6 pinli standart meydança (100 mil) konnektoru.
  • 2 x 4 pinli standart meydança (100 mil) konnektoru.
  • 1 x sikkə hüceyrəli batareya qutusu.

D. Müxtəlif:

  • 3 x SPST Push-Button açarları
  • 1 x 3V sikkə hüceyrəli batareya.

E. İsteğe bağlı PSU:

  • 1 x LM7805 - Xətti tənzimləyici
  • 2 x 0.1uF Qapaq
  • 2 x 100uF Qapaq

II. Mexanik:

  • 1 x Plastik Kassa
  • 4 x Kauçuk əlavə
  • 1 x prototip lehimləmə lövhəsi
  • 1 x MCU başlığı (Mikro nəzarətçi çatışmazlığı halında)
  • 2 x Kiçik 8 mm boltlar
  • 2 x 8 mm yuyucular

III. Alətlər və materiallar:

  • Lehim telləri
  • Büzülən borular
  • Lehimləmə qalay
  • Lehimleme dəmir
  • Kəsici
  • Pense
  • Cımbız
  • Qazma Uçları
  • Kiçik Ölçülü Fayl
  • Müxtəlif Tornavidalar
  • Kaliper
  • Multimetr
  • Çörək paneli (İsteğe bağlı)
  • Mikro USB Kabel
  • Orta Ölçülü Fayl
  • İsti Yapışqan Tabancası
  • AVR ISP Proqramçısı

IV. Proqramlaşdırma:

  • Atmel Studio 6.3 və ya 7.0.
  • ProgISP və ya AVRDude
  • Microsoft Excel (Ekran xarakteri yaratmaq üçün)

Addım 3: Şematik Təsvir

Şematik Təsvir
Şematik Təsvir

Dövrənin işini başa düşməyi asanlaşdırmaq üçün sxematik addım yeddi alt qrupa bölünür. Şəbəkə adlarının sxematik səhifədə təyin edildiyini, həmçinin cihazın ayrı alt sxemləri arasındakı əlaqələri təyin etdiyini nəzərə almalısınız.

A. Əsas Komponentlər Şurası:

Daha əvvəl də qeyd edildiyi kimi, cihazın "içərisində" olmasını istədiyimiz bütün uyğun alt sxemlər tək bir kəsilmiş prototip lövhəsinə yerləşdirilmişdir. Ana lövhə yerləşdirilmiş sxemlərin işinin izahına davam edək:

1. Mikrokontrolör dövrəsi:

Bu layihədə istifadə olunan MCU ATMEGA328P -dir. Xarici 5V enerji təchizatı ilə təchiz olunmuşdur, bu halda - mikro USB konnektoru. Bütün uyğun G/Ç pinləri dizayn tələblərinə uyğun olaraq bağlanır. Limanların I/O xəritələşdirilməsini başa düşmək asandır, çünki bütün şəbəkə adları proqramlaşdırma mərhələsində istifadə ediləcəyi kimi təyin olunur. MCU, proqramlaşdırma ardıcıllığı və güc başlanğıcında istifadə olunan sadə bir RC sıfırlama sxeminə malikdir.

MCU -nun vacib hissəsi proqramlaşdırma sxemidir. 6 pinli bir proqramlaşdırma konnektoru var - J5, VCC, GND və RESET şəbəkələrinin xarici ISP proqramçısı və əsas komponentlər lövhəsi üçün ümumi olduğundan əmin olun.

2. Real-Time Clock Circuit:

Növbəti dövrə, layihənin əsas periferik hissəsidir. DS1302, işləmə vahidimizə işlənmiş vaxt və tarix dəyərlərini təmin edən dolğun bir zaman işləmə IC -dir. DS1302, MCU ilə 3 telli SPI ünsiyyətinə bənzər 3 telli interfeys vasitəsilə aşağıdakı xətlərdə əlaqə qurur:

  • RTC_SCK (Çıxış): SDO xəttində ötürülən məlumatların idarə edilməsi və nümunələnməsini həyata keçirir.
  • RTC_SDO (I/O): Məlumat ötürmə xətti. Vaxt/tarix məlumatları alındıqda MCU -ya giriş və məlumat ötürüldükdə çıxış kimi çıxış edir (Əlavə izah üçün Proqramlaşdırma Essentials addımına baxın).
  • RTC_CE: (Çıxış): Məlumat ötürülməsinə imkan verən xətt. MCU tərəfindən YÜKSEK olaraq təyin edildikdə, məlumatlar ötürülməyə/alınmağa hazırdır.

DS1302, uyğun dövrə davranışı üçün xarici 32.768KHz kristal osilatör tələb edir. Dövrə sayma sistemində böyük bir sürüşmənin qarşısını almaq üçün (bu tip inteqral sxemlərdə sürüşmə hadisələri qaçılmazdır), hər bir kristal pin üzərində iki kalibrləmə kondansatörünün yerləşdirilməsinə ehtiyac var (sxematikada X1, C8 və C9 hissələrinə baxın). 22pF, bu layihədə vaxt saxlamaq tədbirləri ilə bir çox təcrübədən sonra optimal dəyərlər idi, buna görə də dövrəni tamamilə lehimləmək istədiyiniz zaman, bu kondansatörləri başqa dəyərlərlə əvəz etmək üçün bir seçim olduğundan əmin olun. Ancaq kiçik ölçülü lövhələr üçün 22pF çox kiçik bir sürüşmə üçün olduqca yaxşı işləyir (ayda 7 Saniyə).

Bu dövrədəki son, lakin ən az olmayan komponent-3V sikkə hüceyrəli batareya, DS1302 IC-yə kifayət qədər enerji təmin etmək üçün lövhəyə yerləşdirilməlidir ki, vaxt sayma işini davam etdirsin.

4. 8 Matris LED Matrix:

Cihaz ekranı, RTC sxeminin DS1302-yə bənzər 3 telli interfeyslə proqramlaşdırılmış 2 x 4 simvollu LED Matrix ekran IC-lərinə əsaslanaraq, məlumat təmin edən xəttin (SDI) MCU çıxışı olaraq təyin edildiyini (əlavə etmək istəməsəniz) vəziyyətinizin vəziyyətini yoxlamaq qabiliyyəti). Ekranlar 3 telli bir sıra uzantıda birləşdirilmişdir, buna görə də hər iki İK, bütün ekran simvollarının tərifi üçün proqramlaşdırma qabiliyyətinin olduğu tək bir ekran cihazı kimi çıxış edir (Bax SPI seriyası birləşməsinə). Dövrün bütün net adları MCU uyğun əlaqələrinə uyğundur - ekranlar arasında ünsiyyət quran ümumi şəbəkələrin olduğunu unutmayın və hər iki ekran ünsiyyət interfeysini MCU -ya bağlamağa ehtiyac yoxdur. Proqramlaşdırma və xarakter qurma ardıcıllığı sonrakı addımlarda müəyyən edilir.5. İstifadəçi interfeysi dövrəsi:

İstifadəçi interfeysi iki alt qrupa bölünür-Giriş və Çıxış Sistemləri: Giriş Sistemi: Cihazın özü, müəyyən məntiqi YÜKSƏK və ya DÜŞÜK idarə etmək üçün əlavə çəkmə müqavimətləri olan üç SPST düymə açarı kimi təyin edilmiş istifadəçi girişinə malikdir. MCU. Bu açarlar bütün proqramlaşdırılmış alqoritm üçün idarəetmə sistemini təmin edir, çünki vaxt/tarix dəyərlərinin, menyu nəzarətinin və s.

6. Çıxış Sistemi:

A. Buzzer dövrəsi hər iki vəziyyətdə səs çıxışı təmin edir, menyu dəyişdirmə səsi və həyəcan alqoritmini qəbul edir. NPN tranzistoru, səs siqnalına kifayət qədər cərəyan verən və uyğun bir sıxlıqda səsləndirən bir keçid olaraq istifadə olunur. Buzzer birbaşa MCU proqram təminatı ilə idarə olunur. B. RGB LED cihazın arxa işığı kimi istifadə olunur. Arxa işığı seçmək üçün dörd seçimlə birbaşa MCU tərəfindən idarə olunur: QIRMIZI, YAŞIL, MAVİ, PWM və ya OFF rejimləri. Diqqət yetirin ki, R, G və B LED pinlərinə ardıcıl olaraq bağlanan rezistorlar fərqli dəyərlərə malikdir, çünki hər bir rəng sabit bir cərəyan üzərində fərqli intensivliyə malikdir. Yaşıl və mavi LED -lər üçün, qırmızı bir az daha böyük bir intensivliyə sahib olduqda eyni xüsusiyyətlər var. Beləliklə, qırmızı LED daha böyük müqavimət dəyərinə bağlıdır - bu halda: 180Ohm (Bax RGB LED Açıqlaması).7. Bağlayıcılar:

Bağlayıcılar, xarici interfeys komponentləri arasında ünsiyyəti təmin etmək üçün ana lövhəyə yerləşdirilir: Ekran, RGB LED, Güc girişi və düymə açarları və ana lövhə. Hər bir konnektor fərqli bir dövrə həsr olunmuşdur, beləliklə cihazın yığılmasının mürəkkəbliyi kəskin şəkildə azalır. Şemada gördüyünüz kimi, hər bir bağlayıcı şəbəkə sifarişi isteğe bağlıdır və kabel çəkmə prosesini çox asanlaşdırarsa dəyişdirilə bilər. Bütün sxematik anlayışları əhatə etdikdən sonra növbəti mərhələyə keçək.

Addım 4: Lehimləmə

Lehimləmə
Lehimləmə
Lehimləmə
Lehimləmə
Lehimləmə
Lehimləmə

Yəqin ki, bəzilərimiz üçün bütün layihədə ən çətin addımdır. Cihazın mümkün qədər tez işləməsini asanlaşdırmaq üçün lehimləmə prosesi aşağıdakı ardıcıllıqla tamamlanmalıdır:

1. MCU və proqramlaşdırma konnektoru: uğursuzluq halında MCU IC -ni əvəz edə bilmək üçün MCU -nun yerinə 28 pinli başlığın lehimlənməsi tövsiyə olunur. Cihazın proqramlaşdırıla və işləyə biləcəyinə əmin olun. Pin təsviri etiketini proqramlaşdırma konnektoruna yerləşdirmək tövsiyə olunur (Üçüncü şəklə baxın).

2. RTC dövrəsi: bütün lazımi hissələri lehimlədikdən sonra, kalibrləmə kondansatörlərinin asanlıqla dəyişdirilə biləcəyinə əmin olun. 3V sikkə hüceyrəli batareya qutusundan istifadə etmək istəyirsinizsə - cihazın korpus ölçülərinə uyğun olduğundan əmin olun.

3. Göstərici: Ayrı kiçik ölçülü lövhədə iki ekran IC-ləri lehimlənməlidir (Şəkil 1). Lazım olan bütün şəbəkələri lehimlədikdən sonra taxtadan kənar tellərin hazırlanmasına ehtiyac var (Şəkil 4): bu tellər lehimlənməli və ekran lövhəsinin yan tərəfində aparılmalıdır. ekran lövhəsindəki lehim birləşmələrinə təsir göstərir.

4. Əvvəlki addımdakı tellərə etiket etiketləri yerləşdirilməlidir - bu, sonrakı addımda montaj prosesini xeyli asanlaşdıracaqdır. İsteğe bağlı addım: hər telə bir tək pinli kişi bağlayıcı əlavə edin (Arduino tərzi).

5. Ana lövhədə periferik komponentlər də daxil olmaqla qalan konnektorlar. Bir daha, hər bir bağlayıcı üçün pin təsviri olan etiketlərin yerləşdirilməsi tövsiyə olunur.

6. Buzzer dövrəsi: səs siqnalı cihazın içərisindədir, buna görə də ana lövhədə lehimlənməlidir, bir -birinə bağlanan konnektora ehtiyac yoxdur.

7. RGB LED: Əsas lövhəyə qənaət etmək üçün, hər bir rezistorun öz rənginə və uyğun MCU pininə uyğun olduğu LED pinlərindəki seriyalı rezistorları lehimləmişəm (Şəkil 5).

Addım 5: Montaj

Montaj
Montaj
Montaj
Montaj
Montaj
Montaj

Bu addım layihənin görünüşünü müəyyənləşdirir - elektrik və mexaniki. Tövsiyə olunan bütün qeydlər nəzərə alınarsa, montaj prosesini yerinə yetirmək çox asanlaşar. Aşağıdakı addım-addım ardıcıllıqla tam proses məlumatı verilir:

Bölmə A: Qoşma

1. Düymə düyməsinin diametrinə görə (bu halda 3 mm) üç delik qazın. Qutunun yan tərəfində səs siqnalı üçün nəzərdə tutulmuş bir çuxur qazın. İstənilən qazma ucu diametrindən istifadə edilə bilər. İstifadə etməli olduğunuz USB konnektoruna görə daşlama üçün əsas olaraq kiçik bir delik açın (bu halda Micro USB). Bundan sonra, konnektor ölçülərinə uyğun olaraq kiçik ölçülü faylla daşlama aparın. Taşlama üçün əsas olaraq nisbətən böyük bir çuxur qazın. Ekran ölçüsünə uyğun olaraq orta ölçülü bir fayl ilə daşlama aparın. Ekran IC -lərinin korpusun xarici tərəfində olduğundan əmin olun. Cihazın altındakı RGB LED diametrinə uyğun olaraq orta ölçülü bir çuxur qazın. Bölmə B - Əlavələr:

1. Üç düyməni (GND və siqnal) hər birinə iki tel lehimləyin. Tel etiketlərində etiket etiketləri və tək pinli bağlayıcılar tövsiyə olunur.2. Hazırlanmış dörd teli RGB LED pinlərinə bağlayın. Lehim birləşmələrinə etiket yapışdırıcıları və kiçildici borular qoyun.3. Cihazın altına dörd rezin ayaq bağlayın. C Bölümü - Parçaların Bağlanması:

1. RGB LEDini korpusun altına qoyun, ana lövhədəki xüsusi bağlayıcıya qoşun. İsti yapışqan ilə yapışdırın.2. Üç düymə açarı yerləşdirin, onları ana lövhədəki xüsusi konnektora bağlayın, isti yapışqan ilə bağlayın. USB konnektorunu yerləşdirin, proqramlaşdırma konnektorunun enerji təchizatı pinlərinə (VCC və GND) qoşun. Elektrik təchizatı xətlərinin polaritesinin lehimli hissələrə uyğun olduğundan əmin olun. İsti yapışqan ilə yapışdırın.4. Ekran lövhəsini yerləşdirin, xüsusi bir konnektora bağlayın. İsti yapışqan ilə yapışdırın.

1. Əsas lövhə-korpusa və üst qapağa bolt-qoz-fındıq cütləri əlavə etmək məsləhət görülür (Bu vəziyyətdə göstərildiyi kimi).2. Qırılan tellərin uğursuzluğunun qarşısını almaq üçün, görünüşü korpusun içərisinə yapışdıraraq nəzərə alınır.

Addım 6: Qısa Proqramlaşdırmaya Giriş

Qısa Proqramlaşdırma Giriş
Qısa Proqramlaşdırma Giriş
Qısa Proqramlaşdırma Giriş
Qısa Proqramlaşdırma Giriş
Qısa Proqramlaşdırma Giriş
Qısa Proqramlaşdırma Giriş

Bütün hissələr lehimləndikdən sonra, son montaj mərhələsinə keçməzdən əvvəl ilkin cihaz sınağının aparılması tövsiyə olunur. MCU kodu C ilə yazılır və ATMEGA328P hər hansı bir İSS Proqramçısı vasitəsi ilə proqramlaşdırılır (Atmel proqramlaşdırma cihazlarının müxtəlif növləri var: AVR MKII, AVR DRAGON və s. - ProgISP və ya AVRDude proqramı tərəfindən idarə olunan eBay -dən ucuz USB İSS Proqramçısı istifadə etdim). Proqramlaşdırma mühiti Atmel Studio 4 və yuxarıda olmalıdır (proqramın ən yeni versiyalarını şiddətlə tövsiyə edirəm). Xarici, Atmel Studio -ya xas olmayan bir proqramçı istifadə edilərsə, proqramlaşdırma proqramına.hex fayl yolunun verilməsinə ehtiyac vardır (Adətən layihənin Debug və ya Release qovluğunda yerləşir). Montaj addımına keçməzdən əvvəl cihazın proqramlaşdırıla biləcəyinə və hər hansı bir əsas AVR -ə aid layihə qurma və tərtib prosesinin ATMEGA328P mikro nəzarətçisinə əsaslandığından əmin olun (Atmel Studio təlimatına baxın).

Addım 7: Kodun Təsviri

Kodun Təsviri
Kodun Təsviri
Kodun Təsviri
Kodun Təsviri

Qərar kodu alqoritmi iki yarı ayrı təbəqəyə bölünür: 1. Əsas qat: periferik sxemlərlə ünsiyyət, cihaz əməliyyatlarının tərifi, işə salınması və komponent bəyannamələri. İnterfeys qatı: İstifadəçi-cihaz qarşılıqlılığı, menyu funksionallığı, saat/səs-küy/rəng/həyəcan tənzimlənməsi. Proqram ardıcıllığı Şəkildə təsvir edilmişdir. 1, hər bir blok MCU vəziyyətinə uyğundur. Təsvir edilən proqram, hardware və xarici dünya arasında interfeys təmin edən əsas "əməliyyat sistemi" rolunu oynayır. Aşağıdakı izahat proqramın əsas işini hissələrlə izah edir: A Bölmə: Əsas Layer:

1. MCU G/Ç-nin işə salınması: İlk növbədə, hardware komponentlərinin işə salınması lazımdır:- Koddan istifadə olunan sabitlər.- Portlar I/O- İnterfeys.- Periferik ünsiyyət bəyannamələri.

2. Əsas Ümumi Funksiyalar: Bəzi funksiyalar ayrı-ayrı kod blokları tərəfindən istifadə olunur, proqram tərəfindən idarə olunan sancaqlardakı əməliyyatları təyin edir:- RTC və ekran lövhəsi ünsiyyətini aktiv edin/söndürün. yuxarı/Saat funksiyaları.- Xarakter yaratmaq funksiyalarını göstər.3. Periferik Başlanğıc: I/O portları konfiqurasiya edildikdən sonra sxemlərin funksiyalarının tərifi arasında əlaqə yaranır. Bitirdikdə - MCU, yuxarıda təyin olunan funksiyalardan istifadə edərək RTC və ekran dövrələrini işə salmağa başlayır.

4. Əsas funksiyaların tərifi: Bu mərhələdə cihaz qurulur və bəzi periferik sxemlərlə ünsiyyət qurmağa hazırdır. Bu funksiyalar aşağıdakıları müəyyən edir:- Keçid düyməsini idarə et- RGB LED işləmə (Xüsusilə PWM)- Buzzer kvadrat dalğa generatoru

5. Ekran funksiyaları: İnternetdə istifadə etdiyim HSMS IC -lər haqqında çox şey tapmadım, buna görə də kitabxanasını özüm yazdım. Ekran funksiyaları, ASCII simvollarının və hər hansı bir tam ədədin göstərilməsi də daxil olmaqla tam xarakter göstərmə funksiyasını təmin edir. Funksiyalar ümumiləşdirilmiş şəkildə yazılmışdır, buna görə də kodun hər hansı bir hissəsindən ekran funksiyalarının çağırılmasına ehtiyac olarsa, əməliyyatla ümumiləşdirildikləri üçün onlardan istifadə etmək asandır (Məsələn: String displeyi, tək simvollu ekran və s.).

6. RTC əməliyyat funksiyaları: Bütün RTC funksiyaları DS1302 IC -nin işinə uyğun olaraq ümumiləşdirilmiş şəkildə (Ekran funksiyalar dəstinə bənzər) yazılmışdır. Kod, gitHub -da bir çox variantda mövcud olan yazılı kitabxanaya əsaslanır. Son kodda gördüyünüz kimi, ekran və RTC funksiyalar dəsti ayrı.c və.h fayllarına daxil edilir.

1. Əsas funksiya: void main () bölməsində bütün əsas başlanğıc funksiyalarının elanı var. Bütün komponentlərin işə salınmasından dərhal sonra MCU cihaz funksionallığının istifadəçi tərəfindən idarə olunduğu sonsuz döngəyə daxil olur.

2. Real vaxt açarları, Arxa işıq və Ekran Nəzarəti: Sonsuz bir döngədə işləyərkən MCU cihazın hər bir hissəsini yeniləyir. Hansı məlumatların göstəriləcəyini, hansı düyməyə basıldığını və hansı arxa işıq rejiminin seçildiyini seçir.

3. İstifadəçi menyu funksiyaları: Bu funksiyaların ağaca bənzər forması vardır (Bax Şəkil X), burada menyu sistemi və iyerarxiyası bir dövlət maşını olaraq təyin olunur. İstifadəçi girişi tərəfindən idarə olunan hər bir dövlət maşını - düymə açar, buna görə də müvafiq düyməyə basıldıqda - dövlət maşını dəyərini dəyişəcək. Menyuda edilən cihazdakı hər hansı bir dəyişiklik anında dəyişdirilə biləcək şəkildə dizayn edilmişdir.

4. İstifadəçi Menyu Kommutasiyası: İstifadəçi girişi təmin edildikdə, menyu vəziyyəti vəziyyətini dəyişməlidir. Beləliklə, bu funksiyalar bir dövlət maşını üzərində istifadəçidən asılı olaraq nəzarət təmin edir. Bu xüsusi vəziyyətdə: sonrakı, əvvəlki və tamam.

Addım 8: Son Kod və Faydalı Fayllar

Və bu qədər! Bu addımda sizə lazım ola biləcək bütün faylları tapa bilərsiniz:- Elektrik Şematikası- Tam Mənbə Kodu- Ekran xarakter qurucusu İsteğe bağlı xüsusiyyət: Ekranın IC kitabxanasında nümayiş etdirilə bilən müxtəlif simvollar var, lakin bəziləri daxil deyil. Simvolları özünüz qurmaq istəyirsinizsə, Print_Character ('') funksiyasına ASCII istinadı ilə hal vəziyyəti əlavə edin (bax display.c funksiyalarına). Ümid edirəm bu Təlimatlandırmanı faydalı tapacaqsınız:) Oxuduğunuz üçün təşəkkürlər!

Tövsiyə: