Mündəricat:

Mexanik yeddi seqmentli ekran saatı: 7 addım (şəkillərlə)
Mexanik yeddi seqmentli ekran saatı: 7 addım (şəkillərlə)

Video: Mexanik yeddi seqmentli ekran saatı: 7 addım (şəkillərlə)

Video: Mexanik yeddi seqmentli ekran saatı: 7 addım (şəkillərlə)
Video: Alfa Romeo Tonale 2023 // Yeni // 45.000 dollar ! // pul 2024, Dekabr
Anonim
Mexaniki Yeddi Segmentli Ekran Saatı
Mexaniki Yeddi Segmentli Ekran Saatı
Mexaniki Yeddi Segmentli Ekran Saatı
Mexaniki Yeddi Segmentli Ekran Saatı

Bir neçə ay əvvəl geri sayım sayğacına çevirdiyim iki rəqəmli mexaniki 7 seqmentli ekran qurdum. Çox yaxşı çıxdı və bir çox insan saatı düzəltmək üçün ekranda ikiqat artırmağı təklif etdi. Problem, Arduino Mega -da PWM IO -nun tükənməyim və ikinci və ya üçüncü rəqəmlər üçün kifayət qədər boş yerim olmaması idi. Daha sonra I2C interfeysi üzərində işləyən bu PCA9685 16 kanallı PWM sürücülərinin istiqamətini göstərdim. Bunlar, Arduino üzərindəki iki I2C sancağından istifadə edərək ehtiyac duyduğum 28 servo idarə etməyi mümkün etdi. Beləliklə, vaxt saxlamaq üçün DS1302 real vaxt saat modulu və ekranı düzəltmək üçün istifadə olunan 28 servo idarə etmək üçün iki 16 kanallı servo sürücüdən istifadə edən bir saat qurmaqla məşğul oldum, hamısı Arduino Uno ilə işləyir.

Bu Təlimatdan zövq alırsınızsa, Saat Müsabiqəsində ona səs verməyi düşünün

Təchizat:

Saat qurmaq üçün bəzi əsas vasitələrə əlavə olaraq aşağıdakı təchizatlara ehtiyacınız olacaq:

  • Arduino Uno - Buradan Alın
  • DS1302 Saat Modulu - Buradan Alın
  • 2 x PCA9685 16Ch Servo Sürücüləri - Buradan Alın
  • 28 x Mikro Servo - Buradan Alın
  • Şerit Kabeli - Burada Alın
  • Kişi Pin Başlıq Zolaqları - Buradan Alın
  • Dişi Pin Başlıq Zolaqları - Buradan Alın
  • 3 mm MDF - Buradan Alın
  • Qara Sprey Boya - Buradan Alın
  • 5V 5A Batareya Eliminasiya Dövrü - Buradan Alın
  • 12V Güc Təchizatı - Burada Alın

Bu layihə üçün bəzi 3D çaplı hissələrə də ehtiyacınız olacaq. Hələ 3D printeriniz yoxdursa və bir şey etməkdən zövq alırsınızsa, mütləq satın almağı düşünməlisiniz. Burada istifadə olunan Creality Ender 3 Pro əlverişlidir və qiymətinə görə olduqca keyfiyyətli çaplar istehsal edir.

  • İstifadə olunan 3D Printer - Burada Alın
  • Filament - Burada Alın

Addım 1: Plastik Komponentləri 3D Çap edin

Plastik komponentləri 3D çap edin
Plastik komponentləri 3D çap edin
Plastik komponentləri 3D çap edin
Plastik komponentləri 3D çap edin
Plastik komponentləri 3D çap edin
Plastik komponentləri 3D çap edin

7 seqmentli displeyləri mümkün qədər sadə etmək üçün hazırladım. Servo da yuxarıdakı seqmenti tutmaq üçün dəstək dirəyidir. Hər bir seqment üçün iki ədəd 3D çaplı komponent tələb olunur, servonun alt tərəfini dəstəkləyən boşluq bloku və birbaşa servo qoluna yapışan ekran seqmenti.

3D Çap Fayllarını Yükləyin - Mexanik 7 Segment Ekran Saatı 3D Çap Faylları

Parlaq rəngli PLA istifadə edərək servo seqmentləri və nöqtələri çap edin. Şəffaf yaşıl istifadə etdim, amma qırmızı, narıncı və ya sarı da yaxşı işləməlidir. Aralıq blokları və nöqtə dayaqları üçün qara PLA istifadə etdim ki, seqmentlər söndürüldükdə görünməsinlər.

3D printerə çıxışınız yoxdursa, onlayn çap xidmətlərindən birini sınayın. Komponentləri çap edərək bir neçə gün ərzində qapınıza çatdıracaq bir çox əlverişli xidmətlər mövcuddur.

Addım 2: İdarəetmə lövhələrini və naqillərini hazırlayın

Nəzarət lövhələrini və naqillərini hazırlayın
Nəzarət lövhələrini və naqillərini hazırlayın
Nəzarət lövhələrini və naqillərini hazırlayın
Nəzarət lövhələrini və naqillərini hazırlayın
Nəzarət lövhələrini və naqillərini hazırlayın
Nəzarət lövhələrini və naqillərini hazırlayın
Nəzarət lövhələrini və naqillərini hazırlayın
Nəzarət lövhələrini və naqillərini hazırlayın

28 saatlıq servolarınızı idarə etmək üçün iki PCA9685 16 kanallı PWM sürücüsündən istifadə etməlisiniz. Servoları saat və dəqiqə rəqəmlərinə ayırdım, hər cüt rəqəm bir lövhə ilə idarə olunurdu. Beləliklə, iki saatlıq rəqəmlər üçün servoları idarə edən bir lövhəm var və ikincisi iki dəqiqəlik rəqəmlər üçün servoları idarə edir.

İkisini bir -birinə bağlamaq üçün 6 telli lentli bir kabel konnektoru düzəltməlisiniz və birinci servo idarə kartının digər ucuna ikinci bir başlıq şeridi lehimləməlisiniz. İkinci lövhədəki I2C ünvanını dəyişdirmək lazımdır ki, birincisindən fərqlənsin və bənzərsiz şəkildə tanınsın.

Üç lövhəni (iki servo lövhə və saat modulu) Arduino -ya bağlamaq üçün kabel kəmərini də düzəltməlisiniz. Hər bir lövhədə 5V və GND, həmçinin Arduino pinlərinizə A2 və A5 (Arduino Uno -da I2C) ilə I2C əlaqələri və Arduino -da 6, 7 və 8 sancaqlar üçün CLK, DAT & RST saat modul pinləri lazımdır. müvafiq olaraq.

Güc Arduino -ya birbaşa 12V enerji mənbəyindən və 5V 5A BEC -dən istifadə edərək servolara verilir, daha sonra PWM sürücüsünün üstündəki iki terminala qoşulur. Gücə yalnız bir servo sürücüsünü bağlamalısınız və 6 telli lentli kabel bağlantısı ilə ikincisini güclə təmin edəcək.

Addım 3: Servoları yığın

Servoları yığın
Servoları yığın
Servoları yığın
Servoları yığın
Servoları yığın
Servoları yığın

Segmentlərinizi çap etdikdən sonra arxa və yan tərəfləri qara rəngə səpmək lazımdır ki, 90 dərəcə söndürüldükdə daha az görünsünlər.

Sonra seqmentləri servo qollarınıza isti əriyən yapışqan ilə yapışdırmalısınız. Onları artıq servoda olan servoya yapışdırmağa kömək edir, beləliklə onları düz və düz bir şəkildə yapışdırdığınızı yoxlaya bilərsiniz.

Hər servonun altına bir boşluq bloku yapışdırmalısınız.

Kiçik bir dübel və ya kabab çubuğunu nöqtələrin arxasına, sonra da əsas bloklara yapışdıraraq nöqtələri yığın. Bu çubuqları qara rəngdə də səpdim ki, bir bucaqdan baxsanız daha az görünsünlər.

Addım 4: Quraşdırın və Test edin

Quraşdırma və Test
Quraşdırma və Test
Quraşdırma və Test
Quraşdırma və Test

Bütün servoları nömrələdim və hər bir qurğunun üzərinə nömrəni yazdım ki, onları izləmək daha asan olsun. Vahid rəqəmində yuxarı seqmentdən başladım və onlarla rəqəmdə orta seqmentə qədər çalışdım. Lövhələrdəki identifikatorların 1 -dən 14 -ə deyil, 0 -dan 13 -ə qədər olduğunu xatırlayaraq, onları servo idarəetmə lövhələrinə bağladığım qaydadır.

Daha sonra seqmentləri test üçün aralarında kifayət qədər boşluq olan bir masaya qoydum ki, səyahət məhdudiyyətləri və istiqamətləri qurularkən bir -birinə keçməsinlər. Onları bir -birinə yaxın bir şəkildə qurmağa çalışsanız, çox güman ki, bir və ya iki dəfə yanlış istiqamətdə hərəkət etməli və ya bir mərhələdə seqmentə, servo qoluna və ya servonun dişlilərinə zərər verə biləcək digərinə vura bilərsiniz.

Addım 5: Kodun Yüklənməsi

Kod yüklənir
Kod yüklənir
Kod yüklənir
Kod yüklənir
Kod yüklənir
Kod yüklənir

Kod ilk baxışdan mürəkkəb görünür, amma istifadə olunan iki kitabxana sayəsində əslində nisbətən sadədir. Yeniləməyə ehtiyacı olan 4 fərqli 7 seqmentli ekran olduğu üçün çoxlu təkrarlamalar da var.

Kodun qısa bir təsviri, daha ətraflı bir izahat üçün tam bələdçiyə və kodu yükləmək üçün bir linkə baxın - Mexanik 7 Segment Ekran Saatı

Saat kitabçası üçün virtuabotixRTC.h və servo sürücülər üçün Adafruit_PWMServoDriver.h adlı iki kitabxananı idxal etməklə başlayırıq. Adafruit kitabxanası birbaşa IDE -də kitabxana meneceri vasitəsi ilə endirilə və quraşdırıla bilər.

Daha sonra hər bir idarəetmə lövhəsi üçün müvafiq ünvanı olan bir saat rəqəmləri üçün və bir dəqiqə rəqəmləri üçün bir obyekt yaradırıq.

Daha sonra hər bir servo üçün açma və söndürmə mövqelərini saxlamaq üçün dörd massivimiz var. Gələn addımlarda servolarınızın dik vəziyyətdə, söndürüldükdə 90 dərəcə döndüyündən və səyahətdən artıq olmadığından əmin olmaq üçün bu nömrələrdə düzəlişlər etməlisiniz.

Rəqəmli bir sıra, göstəriləcək hər bir rəqəm üçün hər seqmentin mövqelərini saxlayır.

Daha sonra saat modulunu qururuq və cari və keçmiş fərdi rəqəmləri saxlamaq üçün dəyişənlər yaradırıq.

Quraşdırma funksiyasında PWM idarəetmə lövhələrini işə salırıq və qururuq, lazım olduqda saat vaxtını da yeniləyirik. Daha sonra ekranı 8 8: 8 8 olaraq təyin etmək üçün bir döngədən keçirik ki, bütün servoların başlanğıc mövqeyini bilək. Bu, servoların hamısını yuxarıya doğru doğru baxacaq şəkildə qurmaq üçün istifadə olunur.

Əsas döngədə, saat modulundan yenilənmiş vaxtı alırıq, dörd rəqəmə tökürük və sonra vaxtın son yoxlamadan dəyişib dəyişmədiyini yoxlayırıq. Vaxt dəyişibsə, ekranı yeniləyirik, sonra əvvəlki rəqəmləri yeniləyirik.

Yeniləmə ekran funksiyasında əvvəlcə orta seqmentləri hərəkət etdiririk. Bu, ilk növbədə edilir, çünki orta seqmentə bitişik olan iki üst seqmenti orta seqmenti hərəkət etdirməzdən əvvəl bir az kənara çıxarmaq üçün lazım olan bir məntiq var, əks halda onlara çarpacaq. Orta seqmentlər köçürüldükdən sonra qalan seqmentlər düzgün mövqelərə köçürülür.

Addım 6: Saatı arxa taxtaya yığmaq

Saatı arxa taxtaya yığmaq
Saatı arxa taxtaya yığmaq
Saatı arxa taxtaya yığmaq
Saatı arxa taxtaya yığmaq
Saatı arxa taxtaya yığmaq
Saatı arxa taxtaya yığmaq

Testi bitirdikdən sonra, yuxarıdakı düzeni bələdçi olaraq arxa taxtaya yığdım.

Ağ sahə ümumi lövhənin ölçüsüdür, açıq boz, servo seqmentlərinin hərəkət etdiyi hər bir rəqəmi əhatə edən sahədir və tünd boz sahədəki kontur hər rəqəm üçün xarici 6 seqmentin mərkəzi xəttidir.

Lövhəni kəsdim, düzeni qeyd etdim və sonra saat üzünü düzəltmək üçün rəqəmləri yerə yapışdırdım.

Daha sonra hər bir servonun yanında deliklər qazdım və telləri lövhənin arxasına keçirtdim ki, daha az görünsünlər.

Elektronikanı saatın arxasına iki tərəfli lentlə bağladım.

Addım 7: Son Quraşdırma və Əməliyyat

Son Quraşdırma və Əməliyyat
Son Quraşdırma və Əməliyyat
Son Quraşdırma və Əməliyyat
Son Quraşdırma və Əməliyyat
Son Quraşdırma və Əməliyyat
Son Quraşdırma və Əməliyyat
Son Quraşdırma və Əməliyyat
Son Quraşdırma və Əməliyyat

Servoların hamısı hazır olduqdan sonra, seqmentlərin mövqelərində son düzəlişlər etmək üçün bütün servo qollarını çıxardım. Arduino'yu bu vəziyyətdə işə salmalısınız ki, 8 8: 8 8 göstərilsin və sonra gücünü kəsəsiniz, bu servo qollarınızı yenidən şaquliə yaxın olan seqmentlər ilə yenidən taxmaq üçün yenidən mərkəzləşdirsin. mümkün qədər.

Arduino -nu ardıcıl olaraq işə salmalı və seqmentlərinizi dörd serialda açma və söndürmə mövqelərinizə düzəltməlisiniz ki, servolar açıldıqda mükəmməl şəkildə şaquli olsun və çox səyahət etmədən söndürüldükdə 90 dərəcə dönsün. Bu addım çox vaxt aparır və bir az səbr tələb edir, amma son nəticə buna dəyər!

Saat 12V enerji təchizatı və ona qoşulan 5V BEC istifadə edərək işləyə bilər. Güc azalırsa, RTC modulundakı batareya vaxtı saxlayacaq, belə ki, güc bərpa edildikdə, saat avtomatik olaraq düzgün vaxta qayıdır.

Bu Təlimatlardan zövq almısınızsa, zəhmət olmasa Saat müsabiqəsində ona səs verin və aşağıdakı şərhlər bölməsində irəli sürə biləcəyiniz təkmilləşdirmələr və ya təkliflər barədə mənə bildirin.

Saat Müsabiqəsi
Saat Müsabiqəsi
Saat Müsabiqəsi
Saat Müsabiqəsi

Saat Yarışmasında İkinci Mükafat

Tövsiyə: