Mündəricat:

Wort-Uhr: 5 addım
Wort-Uhr: 5 addım

Video: Wort-Uhr: 5 addım

Video: Wort-Uhr: 5 addım
Video: БОЛЯТ МЫШЦЫ? 5 МИНУТ И ВЫ ПОРХАЕТЕ КАК БАБОЧКА! 2024, Noyabr
Anonim
Wort-Uhr
Wort-Uhr

Birlikdə salam!

Bu mənim ilk təlimatım olacaq və bunu necə yaxşılaşdıracağınız və ya başa düşməyi asanlaşdıracağınız barədə fikirləriniz varsa, mənimlə əlaqə saxlamaqdan çəkinməyin!

Əvvəlcə bu cür "saat" mənim fikrim deyil! İnternetdə çox şey gördüm və onları bir neçə dollara sifariş verə bilərsiniz. Ancaq birini almaq istəmədim, özümdən birini öyrənmək və bunun necə işlədiyini başa düşmək istədim.

"Alman olmayan" üzvlərə bir söz … Bunun yalnız "Alman qoxusu Uhr" olduğu üçün üzr istəyirik. İngilis dilinə və ya başqa bir dilə asanlıqla çevrilə bilər, amma mən Alman olduğum üçün bunu öz dilimdə etdim. Diliniz üçün dəstəyə ehtiyacınız varsa mənimlə əlaqə saxlayın və mən sizə kömək etməyə çalışacağam.

Elə isə başlayaq…

Addım 1: Şematik

Şematik
Şematik

Şematik düzdür və şəkil oxumaq pisdirsə, bir PDF faylı da var.

Sol alt küncdən başlayaq. PIC, keçid qeydləri (74HC164) və DS3231 real vaxt çipi üçün sabit 5V çıxışı yaratmaq üçün LM7805 istifadə edərək sadə bir enerji təchizatı var. Bütün LEDlər də bu hissədən verilir. Sağ ucdakı D22 yalnız enerji təchizatını göstərmək üçündür və istənməsə asanlıqla ayrı buraxıla bilər.

40V -dan aşağı olan hər hansı bir DC enerji təchizatı istifadə edə bilərsiniz, ancaq C7 üçün uyğun dəyəri seçməlisiniz. Giriş gərginliyindən ən azı iki dəfə yüksək bir gərginlik dərəcəsi olmalıdır və LM7805 -də istilik yaratdığınızı unutmayın, buna görə giriş gərginliyini mümkün qədər aşağı saxlamağa çalışmalısınız, çünki qalan hər şey sadəcə enerji itkisidir. Ən yaxşı uyğunluq 9V ilə 12V DC arasında olan bir şeydir.

Enerji təchizatınızın polaritesindən narahat olmayın … P-kanallı MOSFET (Q1) saxta qütbdən qorunma rolunu oynayır və saat işləməyəcək və heç bir ziyan görməyəcək. Quraşdırıldıqda bunu "güc" LED D22 -də yoxlaya bilərsiniz.

Şematikanın sağ tərəfində paralel olaraq çıxan keçid qeydləri var. Onları istifadə etmək qərarına gəldim, çünki çoxlu I/O-Portları olan böyük bir PIC istifadə etmək istəmədim. Kiçik birini istifadə etmək istədim və evdə hələ də 16F1829 var idi, buna görə seçim artıq aydın idi. Məlumatlar (IN_1, IN_2 və IN_3) PIC (aşağıdakı kod bölməsinə baxın) və REGISTER_CLK tərəfindən də verilir. Kodumda və PCB planımda sadəlik üçün 74HC164 -dən ikisini saatlar üçün, sonunu isə "məntiq" üçün istifadə etdim.

Sol üst küncdə PIC və bütün lazımi hissələr var. Daxili saatı istifadə etdim, buna görə oszillatora ehtiyac yoxdur. SCL, SDA və MCLR üçün yalnız üç rezistor. 32 kHz -dən "dəqiq saniyələrin" göstəricisi olaraq istifadə etdiyim üçün PIC üçün olduqca sabit və dəqiq bir tezliyə ehtiyac yoxdur.

Ortada xarici hissələrdə minimumu olan DS3231 var. Əslində, I²C üzərindən ünsiyyət üçün yalnız SDA və SCL girişlərindən və 32kHZ çıxışından PIC16F1829 Timer1 üçün xarici saat istinadı olaraq istifadə etdim. Bu çıxış üçün məlumat cədvəlinə, lazım olan xarici bir çəkmə müqavimətçisi olduğu deyilir. Bu layihədə istifadə etmədiyim digər çıxışları əlaqəsiz buraxdım.

Həm də ortada, LED -lər … Şematik olaraq oxuya biləcəyiniz kimi, mavi LED -lərdən (aydın korpuslu olanlar) və 1k Ohm rezistor dəyərindən istifadə etdim. Bu layihəni özünüz etmək niyyətindəsinizsə, seçdiyiniz LEDlərin rənginə və növünə görə bu rezistorların dəyərlərini seçməlisiniz. Saatın harada qurulmasını istədiyinizi də unutmayın. Biri yataq otağımda dayanır, buna görə LED -lərin çox parlaq olmasını istəmədim və rezistorlar üçün daha böyük bir dəyər seçdim. PCB -yə montaj etməzdən əvvəl LED və rezistor dəyərləri olan bir çörək taxtasında bir az cəhd edin.

Addım 2: Layout

Layout
Layout
Layout
Layout
Layout
Layout

Sxemanı bitirdikdən sonra PCB -ni istiqamətləndirməyin vaxtıdır. Bunun üçün KiCAD -dan istifadə etdim (sxematik olaraq da). Demək çox şey yoxdur, sadəcə xətləri yönləndirin.

Saat korpusunu özüm çap etdiyim üçün üst təbəqədəki LED -lərin harada yerləşməsi olduqca vacib idi. Yalnız LEDləri və rezistorları üst təbəqəyə qoydum, çünki PCB-ni qismən quraşdırmağı (bütün SMD hissələrini) sifariş verdiyim üçün və bunun üçün seçdiyim şirkət yalnız iki tərəfli olmayan hissələri bir tərəfə yerləşdirdi.

KiCAD-dan hazırladığım iki 3 ölçülü şəklin yerləşdirilməsini görə bilərsiniz.

Əgər maraqlanırsınızsa … KiCAD PCB -ni Kartala ixrac etmək mümkündür və sonra PCB -dən bir istinadınız olduğu üçün mənzil tikmək olduqca asandır.

Addım 3: "Wort-Uhr" un "Məntiqi"

Bu layihənin ən böyük hissəsi PIC kodu idi …

Əvvəlcə Alman dilində danışma vaxtının "məntiqini" tapıb onu koda çevirmək.

Təəssüf ki, Excel faylını birbaşa yükləmək mümkün olmadı, amma ümid edirəm PDF ixracı sizin üçün kifayət qədər oxunur. Əks təqdirdə, mənimlə əlaqə saxlayın və mən sizə orijinal Excel faylını göndərəcəyəm. PDF -də saatımın məntiqini necə qurduğumu görə bilərsiniz. Fərqli zaman aralığında necə getdiyimi və yazımın necə olduğunu görə bilərsiniz. Kod daxilindəki hesablama (əsasən if-else ifadələri) cədvəlin sağ tərəfindəki məlumatlardan əldə edilə bilər. Bir hissə dəqiqə, bir hissəsi saatlar üçündür.

Gördüyünüz kimi, bu heç bir sehr deyil və C -də asanlıqla kodlaşdırıla bilər. Məntiqdəki "ən çətin" nöqtə, yalnız bir saatın əvvəlində həqiqi saatın göstərildiyi faylda gördüyünüz kimi saatı necə idarə etməkdir.. Alman dilində (bəlkə də bu yalnız Bavariya üçün xüsusi bir şey ola bilər) "növbəti saat" olduqca erkən istifadə olunur.

Kodlaşdırmaq üçün seçim IDE olaraq MPLABX istifadə etdim.

Addım 4: Kod Parçaları

Kod parçaları
Kod parçaları
Kod parçaları
Kod parçaları

Kodumu bura yerləşdirməyəcəyəm, ancaq öz kodunuzu yazmaq niyyətindəsinizsə, inkişaf zamanı "büdrədiyim" şeyləri sizə göstərəcəyəm …

Əvvəlcə "Qeydiyyat" doldurulması:

Yeni məlumatları çox tez -tez və çox qısa dövrlərdə qeydlərə köçürsəniz, təcrübə etdim ki, LED -lər yanıb -sönməyə başladı. Beləliklə, bir neçə "bloklama bayraqları" etdim ki, yalnız bir neçə dəqiqədə danışılan vaxtın yeni "hesablanması" aparılır və qeyd yeniləməsi aparılır.

Qeydləri doldurmaq üçün kod yuxarıdakı şəkildədir. Gördüyünüz kimi, bütün 3 qeydləri paralel olaraq doldururam, buna görə məlumat üçün 3 PIC pininə və CLK üçün 1 pinə ehtiyacım var. 74HC164, CLK xəttində 0 -dan 1 -ə keçidlə bağlı yeni məlumatları öz üzərinə götürür.

Kodun qalan hissəsi əsasən PIC-dən asılı olan şeylər, "danışma vaxtı" məntiqi və ünsiyyət və düymələri idarə etməkdir. MSSP modulundan istifadə etdiyim üçün ünsiyyət əsasən Microchip MPLABX tərəfindən təmin edilir.

Yaxşı bir fikir, DS3231 məlumat cədvəlini oxumaqdır, çünki məlumatlar içərisində BCD olaraq saxlanılır, buna görə kodunuzda bunu "çevirmək" lazım ola bilər. Bildiyimə görə, "öyrənərək öyrənən" bir adamam və əlbəttə ki, məlumat cədvəlini oxumadım … Mənə çox əsəblər və saatlar başa gəlir.

Gördüyünüz kimi, bu tətbiq ilə "vaxtını izləməyin" iki yolu var.

  1. DS3231 -dən əsl vaxtı oxuya bilərsiniz
  2. PIC -in özündə "saniyələri saya" bilərsiniz və zaman -zaman DS3231 ilə zaman sinxronizasiya edə bilərsiniz

Bu sizə bağlıdır və hər iki yol praktik və düzdür. Düymələr vasitəsilə (DS3231 -ə yazma vaxtı) və ya hər 24 saatda (DS3231 -dən oxu vaxtı) vaxt tənzimləyərkən ilk variantı və yalnız sinxronizasiya vaxtını istifadə etdim, çünki özüm daha çox məntiq tətbiq etmək istədim. Mən də gecəni (23: 00 -dan 05: 00 -a qədər) saatı çevirirəm, bu da mənim fikrimcə bir az daha asan idi.

Addım 5: Mənzil

Son olaraq, mənzilə qısa bir nəzər salmağın vaxtıdır.

Yuxarıda qeyd etdiyim kimi, korpusu özüm hazırladım (Eagle istifadə edərək) və 3D-Printerimlə çap etdim, buna görə də fərqli LED-lərin mövqelərinə baxmağa çalışdım.

İstifadə etmək istəsəniz STL fayllarını tapa bilərsiniz.

Ümid edirik ki, bu təlimat öz "Wort-Uhr" qurarkən sizə kömək edəcək. Hələ də "açıq suallar" varsa, mənimlə əlaqə saxlamaqdan çəkinməyin. Aşağıdakı şərhlərin ən yaxşı yolu, çünki xüsusi bir sualınız olan tək siz ola bilməzsiniz.

Tövsiyə: