Mündəricat:

LEDura - Analog LED Saat: 12 Addım (Şəkillərlə birlikdə)
LEDura - Analog LED Saat: 12 Addım (Şəkillərlə birlikdə)

Video: LEDura - Analog LED Saat: 12 Addım (Şəkillərlə birlikdə)

Video: LEDura - Analog LED Saat: 12 Addım (Şəkillərlə birlikdə)
Video: Как сделать часы с вращающимся светодиодным дисплеем 2024, Dekabr
Anonim
LEDura - Analog LED Saat
LEDura - Analog LED Saat
LEDura - Analog LED Saat
LEDura - Analog LED Saat
LEDura - Analog LED Saat
LEDura - Analog LED Saat

Tinkercad Layihələri »

Uzun müddət müxtəlif layihələr hazırladıqdan sonra özüm təlimatlandırmağa qərar verdim. Birincisi, zəhmli ünvanlı LED halqası ilə hazırlanmış öz analog saatınızı hazırlamaq prosesində sizə yol göstərəcəyəm. Daxili üzük saatı, xarici halqa dəqiqə və saniyəni göstərir.

Saatı göstərməklə yanaşı, otaq temperaturunu da göstərə bilər və otaqda çox gözəl bir bəzək ola bilər. Hər 15 dəqiqədə bir saat xüsusi effektlər verir - video hamısını göstərir, mütləq yoxlayın. İstifadəçi 2 düymə və potensiometrdən istifadə edərək öz istəyi ilə fərqli rejim və modifikasiya rəngləri arasında seçim edə bilər. Otaq qaranlıq olarsa, LED -ləri avtomatik olaraq söndürmək üçün də təkmilləşdirdim, buna görə də istifadəçi gecə narahat olmayacaq.

Saatı masaya, yataq masasına qoymaq və ya divardan asmaq olar.

Qeyd: Şəkillər yüksək parlaqlığa görə reallıqdakı mənzərə qədər yaxşı deyil.

Addım 1: Necə Oxunur?

Necə Oxunur?
Necə Oxunur?

Saatın 2 üzüyü var - saatı göstərmək üçün kiçik, dəqiqə və saniyəni göstərmək üçün daha böyük. Bəzi LED -lər hər zaman yanır - əsas saat mövqelərini göstərən kompas adlanır. Saat halqasında 3, 6, 9 və 12 saatlıq, dəqiqə halqasında 15, 30, 45 və 0 dəqiqələri təmsil edir.

Addım 2: Nə lazımdır

Nə Lazım Olacaq
Nə Lazım Olacaq

Materiallar:

  • 1x Arduino Nano (hər hansı digər Arduinodan da istifadə edə bilərsiniz)
  • 1x DS3231 RealTimeClock modulu
  • 1x Ünvanlı led üzük - 60 LED
  • 1x Ünvanlı led üzük - 24 LED
  • 2x Düymələr (YOX - normal olaraq açıqdır)
  • 1x 100kOhm potansiyometr
  • 1x 5V enerji təchizatı (1 Amper verə bilər)
  • 1x Təchizat konnektoru
  • Bəzi tellər
  • 1x 10kOhm rezistor
  • 1x Fotoresistor
  • Prefabrik (isteğe bağlı)
  • Terminal blok tel bağlayıcıları (isteğe bağlı)
  • 25 mm qalınlığında ağac, ən azı 22 sm x 22 sm
  • 1mm nazik mat PVC plastik ölçüləri 20cmx20xm

Alətlər:

  • Bina elektronikası üçün əsas alətlər (lehimləmə dəmir, pens, tornavida, …)
  • Qazma maşını
  • İsti yapışqan silahı
  • Qum kağızı və bir az ağac lak
  • CNC maşını (bəlkə də bir dostum var)

Addım 3: Elektronika Komponentləri - Fon

Elektronika Komponentləri - Fon
Elektronika Komponentləri - Fon
Elektronika Komponentləri - Fon
Elektronika Komponentləri - Fon
Elektronika Komponentləri - Fon
Elektronika Komponentləri - Fon

DS3231

Zamanı osilatördə qurulan Arduinos və taymerdən istifadə edərək təyin edə bilərdik, ancaq saatı enerji mənbəyindən ayırsaq da vaxtı izləyə bilən xüsusi Real Time Clock (RTC) modulundan istifadə etmək qərarına gəldim. DS3231 lövhəsində modul enerji təchizatına qoşulmadıqda enerji verən bir batareya var. Arduinos saat mənbəyindən daha uzun müddətlərdə daha dəqiqdir.

DS3231 RTC mikro nəzarətçi ilə ünsiyyət qurmaq üçün I2C interfeysindən istifadə edir-istifadəsi çox sadədir və onunla ünsiyyət qurmaq üçün yalnız 2 telə ehtiyacımız var. Modul eyni zamanda bu layihədə istifadə ediləcək temperatur sensoru da təmin edir.

Vacib: RTC modulu üçün doldurulmayan bir batareya istifadə etməyi planlaşdırırsınızsa, 200 ohm müqavimətini və ya 1N4148 diodunu lehimləməlisiniz. Əks halda batareyanız partlaya bilər. Ətraflı məlumatı bu linkdə tapa bilərsiniz.

WS2812 LED üzük

Dəqiqələri izləmək üçün 60 LED halqa və saatlarla 24 LED halqa istifadə etmək qərarına gəldim. Onları Adafruit (neoPixel üzük) və ya eBay, Aliexpress və ya digər internet mağazalarında bəzi ucuz versiyalarda tapa bilərsiniz. Ünvanlı led zolaqlar arasında böyük bir müxtəliflik var və onlarla ilk dəfə oynayırsınızsa, bəzi istifadə təsvirlərini oxumağı məsləhət görürəm - burada bəzi faydalı bağlantılar var:

https://www.tweaking4all.com/hardware/arduino/adr…

https://randomnerdtutorials.com/guide-for-ws2812b…

Ünvanlı LED şeridin 3 konnektoru var: 5V, GND və DI/DO. İlk ikisi LED -ləri gücləndirmək üçün, sonuncu isə məlumat üçündür. Üzüyü Arduino -ya bağlayarkən diqqətli olun - məlumat xəttiniz DI (data IN) pininə bağlanmalıdır.

Arduino

Arduino Nano'dan istifadə edirəm, çünki bu layihə üçün kifayət qədər kiçikdir. Demək olar ki, hər hansı digər Arduino -dan istifadə edə bilərsiniz, ancaq hər şeyi ona bağlayarkən diqqətli olmalısınız. Düymələr və LED üzüklər eyni sancaqlar üzərində ola bilər, lakin I2C konnektorları (RTC modulu üçün) platformadan platformaya fərqli ola bilər - məlumat cədvəlinə baxın.

Addım 4: Elektronika - Güc Təchizatı

Elektronika - Enerji təchizatı
Elektronika - Enerji təchizatı

Arduino və LED şeridi hər ikisi də 5V enerji mənbəyi ilə təchiz olunmalıdır ki, hansı gərginliyə ehtiyac olduğunu bilək. LED halqaları olduqca çox amper çəkdiyindən rəqəmsal çıxışında maksimum 20mA dayana bilən Arduino ilə birbaşa işləyə bilmərik. Ölçmələrimə görə, LED halqaları birlikdə 500 mA -a qədər çəkə bilər. Bu səbəbdən 1A -ya qədər təchiz edə bilən bir adapter aldım.

Eyni enerji təchizatı ilə Arduino və LED -ləri gücləndirmək istəyirik - burada diqqətli olmalısınız.

Xəbərdarlıq! LED şeridini sınaqdan keçirərkən çox diqqətli olun - Arduino eyni zamanda USB konnektoru ilə PC -yə qoşulduqda güc adapteri Arduino -ya bağlı olmamalıdır (kompüterinizin USB portuna zərər verə bilərsiniz).

Qeyd: Aşağıdakı sxemlərdə Arduinonun enerji təchizatı və ya USB konnektoru ilə işlədiyini seçmək üçün normal keçiddən istifadə etdim. Ancaq mükəmməl lövhədə Arduinonun hansı enerji mənbəyindən işlədiyini seçmək üçün bir pin başlığı əlavə etdiyimi görə bilərsiniz.

Addım 5: Elektronika - Lehimləmə

Elektronika - Lehimləmə
Elektronika - Lehimləmə
Elektronika - Lehimləmə
Elektronika - Lehimləmə
Elektronika - Lehimləmə
Elektronika - Lehimləmə
Elektronika - Lehimləmə
Elektronika - Lehimləmə

Bütün hissələri topladığınız zaman onları bir yerdə lehimləmə vaxtıdır.

Kabelləri səliqəli etmək istədiyim üçün, perforator lövhəsi və tellər üçün bir neçə terminal bloku bağlayıcısı istifadə etdim, buna görə də dəyişiklik olanda onları ayıra bilərəm. Bu isteğe bağlıdır - telləri birbaşa Arduinoya lehimləyə bilərsiniz.

Bir ipucu: Lehim edərkən önünüzdə olduğu üçün sxemləri çap etsəniz daha asandır. Və enerji təchizatına qoşulmadan əvvəl hər şeyi iki dəfə yoxlayın.

Addım 6: Proqram təminatı - Arxa plan

Arduino IDE

Arduino -nu xüsusi proqramı olan Arduino IDE ilə proqramlaşdıracağıq. Arduino ilə ilk dəfə oynayırsınızsa, bunu necə edəcəyinizə dair bəzi təlimatları yoxlamağı məsləhət görürəm. İnternetdə artıq çoxlu dərslər var, buna görə də təfərrüatlara getməyəcəyəm.

Kitabxana

Populyar Adafruit əvəzinə FastLED kitabxanasından istifadə etmək qərarına gəldim. Böyük effektlər verə biləcəyiniz bəzi səliqəli riyazi funksiyalara malikdir (Yaradıcılara qədər!). Kitabxananı GitHub deposunda tapa bilərsiniz, ancaq koduma istifadə etdiyim versiyanın.zip faylını əlavə etdim.

Arduino IDE -yə xarici kitabxananı necə əlavə etmək barədə maraqlanırsınızsa, əvvəllər hazırlanmış bəzi təlimatları yoxlaya bilərsiniz

Saat modulu üçün Arduino IDE-də asanlıqla quraşdıra biləcəyiniz DS3231 real vaxt saatı (RTC) üçün Arduino kitabxanasından istifadə etdim. IDE -də olduğunuzda, Eskiz → Kitabxanaya daxil et → Kitabxanaları idarə etmək üçün basın və sonra axtarışınızı yuxarıdakı adla süzün.

Qeyd: Nədənsə hal hazırda.zip faylları əlavə edə bilmirəm. Kitabxananı GitHub depomda tapa bilərsiniz.

Addım 7: Proqram təminatı - Kod

Proqram təminatı - Kod
Proqram təminatı - Kod
Proqram təminatı - Kod
Proqram təminatı - Kod

Quruluş

Tətbiq 4 sənəddən ibarətdir:

  • LEDclokc.ino Bu, bütün saatı idarə etmək üçün funksiyaları tapa biləcəyiniz əsas Arduino tətbiqidir - CLOCK_ prefiksi ilə başlayır.
  • LEDclokc.h burada pin bağlantısı tərifləri və bəzi saat konfiqurasiyalarıdır.
  • ring.cpp və ring.h burada LED halqalarını idarə etmək üçün kodumdur.

LED saat.h

Burada bütün saat təriflərini tapa bilərsiniz. Başlanğıcda naqillər üçün təriflər var. Bağlantılarınızla eyni olduğundan əmin olun. Sonra saat konfiqurasiyaları var - burada saatın rejimi üçün makro tapa bilərsiniz.

LED saat.ino

Diaqramda əsas döngə təmsil olunur. Kod əvvəlcə hər hansı bir düyməyə basıldığını yoxlayır. Açarların təbiəti səbəbindən, dəyərlərini oxumaq üçün debbouncing metodundan istifadə etməliyik (bu barədə daha çox məlumatı linkdə oxuya bilərsiniz).

1 düyməsinə basıldıqda dəyişən rejim 1 artırılır, 2 düyməsinə basıldıqda dəyişən tip qaldırılır. Bu dəyişənlərdən istifadə edərək hansı saat rejimini görmək istədiyimizi təyin edirik. Hər iki düyməyə eyni anda basılırsa, CLOCK_setTime () funksiyası çağırılır ki, saatın vaxtını dəyişə biləsiniz.

Sonrakı kod, potensiometrin dəyərini oxuyur və dəyişkən olaraq saxlayır - bu dəyişən istifadəçi saatın rənglərini, parlaqlığını və s.

Sonra bir keçid vəziyyətinin ifadəsi var. Burada saatın hansı rejimdə olduğunu müəyyənləşdiririk və bu rejimdə LEDlərin rənglərini təyin edən müvafiq funksiya çağırılır. Öz saat rejimlərinizi əlavə edə və funksiyaları yenidən yaza və ya dəyişdirə bilərsiniz.

FastLED kitabxanasında təsvir edildiyi kimi, sonunda LEDləri əvvəllər qurduğumuz rəngə çevirən FastLED.show () funksiyasına zəng etməlisiniz.

Kod xətləri arasında daha ətraflı təsvirlər tapa bilərsiniz

Bütün kod aşağıdakı fayllara əlavə olunur.

İPUCU: bütün layihəni GitHub depomda tapa bilərsiniz. Burada hər hansı bir dəyişiklik əlavə etsəm kod da yenilənəcək.

Addım 8: Saatı düzəldin

Saatı düzəldin
Saatı düzəldin
Saatı düzəldin
Saatı düzəldin
Saatı düzəldin
Saatı düzəldin

Saat çərçivəsi

Saat çərçivəsini CNC maşını və 25 mm qalınlığında taxta istifadə edərək qurdum. Çəkilmiş eskizi aşağıda ProgeCAD -da tapa bilərsiniz. LED halqası üçün yuvalar bir qədər böyükdür, çünki istehsalçılar yalnız xarici diametr ölçüsünü təmin edir - daxili çox fərqli ola bilər … Saatın arxasında elektronika və tellər üçün çox yer var.

PVC üzüklər

LEDlər olduqca parlaq olduğundan onları bir şəkildə yaymaq yaxşıdır. Əvvəlcə yayma işini yerinə yetirən şəffaf silikonla sınadım, amma olduqca qarışıqdır və üstünü hamarlaşdırmaq çətindir. Buna görə 20x20 sm ölçüdə "süd" PVC plastikdən sifariş verdim və içərisində CNC maşını ilə iki üzük kəsdim. Üzüklərin yuvalarda sürüşməsi üçün kənarları yumşaltmaq üçün zımpara kağızından istifadə edə bilərsiniz.

Yan deliklər

Sonra düymələr, potansiyometr və enerji təchizatı konnektoru üçün deliklər açmağın vaxtıdır. Əvvəlcə hər mövqeyi qələmlə çəkin, sonra çuxurda qazın. Burada hansı düymələriniz olduğuna bağlıdır - bir az əyri başlı düymələrlə getdim. Onların diametri 16 mm -dir, buna görə də bu ölçüdə taxta matkap istifadə etdim. Eyni şey potansiyometr və güc konnektoru üçün də keçərlidir. Bundan sonra bütün qələm rəsmlərini silməyinizə əmin olun.

Addım 9: Taxta çəkin

Ağacda çəkin
Ağacda çəkin
Ağacda çəkin
Ağacda çəkin
Ağacda çəkin
Ağacda çəkin

Ağacda bir neçə saat göstəricisi çəkmək qərarına gəldim - burada təsəvvürünüzdən istifadə edə və özünüz dizayn edə bilərsiniz. Ağacı lehimləmə dəmiri ilə yandırdım, maksimum temperatura qədər qızdırdım.

Dairələrin gözəl yuvarlaq olması üçün bir alüminium parçası istifadə etdim, içinə bir delik açdım və çuxurun kənarlarını lehimləmə dəmiri ilə təqib etdim (şəklə baxın). Alüminiumu möhkəm tutduğunuzdan əmin olun ki, çəkərkən sürüşməsin. Və yaralanmaların qarşısını almaq üçün bunu edərkən diqqətli olun.

Rəsmlər çəkirsinizsə və onların saat piksellərinə gözəl uyğunlaşdırılmasını istəyirsinizsə, piksellərin harada yerləşəcəyini göstərəcək "Baxım rejimi" ndən istifadə edə bilərsiniz ("Toplaşmaq" bölməsinə keçin).

Ağacı qoruyun

Saatdan razı qaldığınız zaman onu zımpara etmək və ağac lak ilə qorumaq vaxtıdır. Kenarları yumşaltmaq üçün çox yumşaq zımpara (500 dəyər) istifadə etdim. Ağacın rənginin dəyişməməsi üçün şəffaf ağac lakından istifadə etməyi məsləhət görürəm. Fırçanın üzərinə az miqdarda lak qoyun və odun içərisindəki illiklərə doğru çəkin. Ən azı 2 dəfə təkrarlayın.

Addım 10: Birləşdirin

Assambleya
Assambleya
Assambleya
Assambleya
Assambleya
Assambleya

Küknar düymələri və potansiyometrləri öz mövqelərinə qoyur - delikləriniz çox böyükdürsə, onları yerində düzəltmək üçün isti yapışqan istifadə edə bilərsiniz. Sonra üzük zolağını yuvalarına qoyun və tellərini Arduinoya bağlayın. LED halqasını yerinə yapışdırmadan əvvəl, LED piksellərinin doğru yerdə - mərkəzdə və rəsmlə hizalandığından əmin olmaq yaxşıdır. Bu məqsədlə bütün vacib pikselləri (0, 5, 10, 15,… dəqiqə halqasında və 3, 6, 9 və 12 saatlıq halqada) göstərəcək Baxım rejimi əlavə etdim. Güc mənbəyini bağlayıcıya bağlamadan əvvəl hər iki düyməni basıb basıb bu rejimə daxil ola bilərsiniz. İstənilən düyməni basaraq bu rejimdən çıxa bilərsiniz.

LED üzüklərinizi hizaladığınızda, bir az isti yapışqan tətbiq edin və yapışqan bərkiyincə saxlayın. Sonra PVC üzüklərinizi götürün: LED -lərə bir az isti yapışqan tətbiq edin, tez bir zamanda yerləşdirin və bir neçə saniyə saxlayın. Nəticədə, hər şeyin işlədiyinə əmin olduğunuzda taxtaya (və ya Arduino) taxta isti yapışdıra bilərsiniz. İpucu: çox yapışqan tətbiq etməyin. Kiçik bir miqdarı bir yerdə saxlayır, ancaq bir şeyi daha sonra dəyişdirmək istəsəniz asanlıqla silə bilərsiniz.

Ən sonunda, sikkə hüceyrə batareyasını tutucusuna daxil edin.

Addım 11: Yeniləmə - Fotoresistor

Yeniləmə - Fotoresistor
Yeniləmə - Fotoresistor
Yeniləmə - Fotoresistor
Yeniləmə - Fotoresistor
Yeniləmə - Fotoresistor
Yeniləmə - Fotoresistor

Saat effektləri qaranlıqda xüsusilə gözəldir. Ancaq bu, istifadəçisini gecə yatarkən narahat edə bilər. Buna görə də saat avtomatik parlaqlıq düzəltmə xüsusiyyəti ilə təkmilləşdirmək qərarına gəldim - otaq qaralanda; saat LED -lərini söndürür.

Bu məqsədlə işıq sensoru - foto rezistordan istifadə etdim. Müqaviməti əhəmiyyətli dərəcədə artacaq; qaranlıq olduqda bir neçə meqa ohm -a qədər və üzərində işıq saçanda yalnız bir neçə ohm olacaq. Normal bir rezistorla birlikdə gərginlik bölücü yaradırlar. İşıq sensorunun müqaviməti dəyişdikdə Arduino analoq pinindəki gərginlik də dəyişə bilər (ölçə biləcəyimiz).

Hər hansı bir dövrəni lehimləmədən və yığmadan əvvəl, əvvəlcə simulyasiya etmək ağıllıdır, buna görə davranışı görə və düzəlişlər edə bilərsiniz. Autocad Tinkercad köməyi ilə tam olaraq bunu edə bilərsiniz! Bir neçə kliklə komponentləri əlavə etdim, bağladım və kodu yazdım. Simulyasiyada fotoşəkil rezistorunun dəyərinə görə LED -lərin parlaqlığının necə dəyişdiyini görə bilərsiniz. Çox sadə və sadədir - dövrə ilə oynamaq xoş gəlmisiniz.

Simulyasiyadan sonra xüsusiyyəti saata əlavə etməyin vaxtı gəldi. Saatın mərkəzində bir delik açdım, foto rezistoru yapışdırdım, sxemdə göründüyü kimi bağladım və bir neçə kod xətti əlavə etdim. LEDclock.h faylında USE_PHOTO_RESISTOR -u 1 olaraq elan edərək bu xüsusiyyəti aktiv etməlisiniz. CLOCK_PHOTO_TRESHOLD dəyərini dəyişərək saatın hansı otaq parlaqlığında LEDləri söndürəcəyini də dəyişə bilərsiniz.

Addım 12: Zövq alın

İlk dəfə işə saldığınız zaman, saat təsadüfi bir zaman göstərəcək. Hər iki düyməni eyni anda basaraq qura bilərsiniz. Doğru vaxtı seçmək üçün düyməni çevirin və hər hansı bir düyməyə basaraq təsdiqləyin.

İnternetdəki çox səliqəli bir layihədən ilham aldım. Saatı təkbaşına qurmaq qərarına gəlsəniz, onları da yoxlayın! (NeoClock, Wol Clock, Arduino Colorful Clock) Əgər təlimatlara əməl etməyə çalışmaq qərarına gəlsəniz, ümid edirəm ki, bunu mənim etdiyim qədər əyləncəli edirsiniz.

Yaratma prosesində hər hansı bir problemlə qarşılaşsanız, şərhlərdə mənə hər hansı bir sual verməkdən çekinmeyin - məmnuniyyətlə cavab verməyə çalışacağam!

Tövsiyə: