Mündəricat:

Neopikseldən istifadə edən LED Saat: 4 Addım (Şəkillərlə birlikdə)
Neopikseldən istifadə edən LED Saat: 4 Addım (Şəkillərlə birlikdə)

Video: Neopikseldən istifadə edən LED Saat: 4 Addım (Şəkillərlə birlikdə)

Video: Neopikseldən istifadə edən LED Saat: 4 Addım (Şəkillərlə birlikdə)
Video: Сериал - "Сваты" (1-й сезон 1-я серия) фильм комедия для всей семьи 2024, Noyabr
Anonim
Neopikseldən istifadə edən LED Saat
Neopikseldən istifadə edən LED Saat
Neopikseldən istifadə edən LED Saat
Neopikseldən istifadə edən LED Saat
Neopikseldən istifadə edən LED Saat
Neopikseldən istifadə edən LED Saat
Neopikseldən istifadə edən LED Saat
Neopikseldən istifadə edən LED Saat

60 Neopikseldən istifadə edərək bir LED saatının necə hazırlanacağına dair göstərişlərimə xoş gəldiniz.

Tapdığınız 3 PDF -nin biri saat seqmentləri üçün, digəri baza üçün və son olaraq bölmələri bir -birinə yapışdırmağa kömək edəcək bir şablondur.

Buna görə bunu tamamlamaq üçün aşağıdakılara ehtiyacınız olacaq

  • 60 neopiksellik halqa 4 rübdə gəlir. "ws2812 üzük 60" üçün axtarış (£ 12.00)
  • "DS3231 modulu" üçün RTC axtarışı (£ 2.50)
  • Arduino Nano (4 funt)
  • 3 mm/1/8 "kontrplak.
  • tel parçaları. inşallah ətrafınızda bir az olacaq?
  • 5v USB enerji təchizatı vahidi. Övladlarınızın konnektoru məhv edəcəyi tip.

Aşağıda Lipo batareyası ilə işləyən əşyalar var, amma testdən sonra saat çox güc sərf etdi, buna görə də batareya USB PSU -nun lehinə düşdü.

  • dc-dc çevirici axtarışı "gücləndirici çevirici" (3 funt)
  • Şarj dövrəsi TP4056 axtarış "tp4056" (£ 2)
  • LiPo 1000Mah tək hüceyrəli. "1000mah lipo 3.7" və ya "503450 lipo" (8.00 funt) axtarın

LiPo nömrəsi 503450 -dir və bunun 50 mm uzunluğunun 34 mm enində və 5,0 dərinliyində olduğunu bilmək xoş ola bilər.

Addım 1: Taxta Uçlar

Ağac Uçları
Ağac Uçları
Ağac Uçları
Ağac Uçları
Ağac Uçları
Ağac Uçları

Dizaynı çap etdiyimi və kontrplakdan yapışdırdığımı şəkillərdə görə bilməlisən. Açıq görünməyən şey, bir anda 3 hissəni kəsdim və alt hissə əvvəlcə perimetrin ətrafında kəsildi, sonra bir hissə (arxadan) çıxarıldı, sonra qalan iki hissədə deşik kəsildi, sonra başqa bir hissədə yalnız ön hissəsini buraxaraq çıxardıqdan sonra tellər üçün yuva kəsildi.

Bütün bitlər kəsildikdə əvvəlcə hamısının bir -birinə necə uyğun olduğunu yoxlamalı, sonra hamısını yapışdırmalısınız. Hər şeyin düzgün dairəvi olduğundan əmin olmaq üçün saat planının üstünə 3 qat qoydum. Həm də alt hissələri düzgün istiqamətdə aldığınızdan və tam orta dilimin tərsinə quraşdırıldığından əmin olun ki, oynaqların üstündən keçin.

Ön hissələrdəki çuxurlar, dörddə bir hissədə lehimlənmiş birləşmələrin oturmasına imkan verir, aşağı hissəsi isə tellərin keçməsinə imkan verir.

Şəkillər silsiləsi də bazanın necə birləşdirildiyini göstərir.

Addım 2: LED halqasının naqilləri

LED halqasının çəkilməsi
LED halqasının çəkilməsi
LED halqasının çəkilməsi
LED halqasının çəkilməsi
LED halqasının çəkilməsi
LED halqasının çəkilməsi
LED halqasının çəkilməsi
LED halqasının çəkilməsi

Bu addım haqqında çox şey söyləmək olmaz, ancaq WS2812LED zolağını istifadə etməmisinizsə, ağıllıdırlar, buna görə hər birinin daxilində və xaricində bir məlumat var. 15 LED -in qövslərində PCB bütün əlaqələri idarə edir, ancaq bölmələrə qoşulmağa gəldikdə güc əlaqələrini və məlumatları etməlisiniz. Bağlantıları bir dairədə olduqları üçün səhv başa düşə bilməzsiniz, ancaq dairəni bitirdikdən sonra telləri IN girişinə bağlamağa imkan verən IN/OUT məlumatlarında bir keçid çatışmazlığı olmalıdır. Kabellərin məlumatlara qoşulduğu yerdə IN ilk LED olacaq və ya sıfıra düzgün yazıldığından.

LED üzüklərini taxta üzüyə necə düzəltməyin ən yaxşı yolu olduğunu düşündüm. amma sonda hər dəfə bir LED atlayaraq ətrafdakı kordon və dəzgahdan istifadə etmək qərarına gəldim.

Addım 3: Arduino Nano və Gücün naqilləri

Arduino Nano və Gücün naqilləri
Arduino Nano və Gücün naqilləri
Arduino Nano və Gücün naqilləri
Arduino Nano və Gücün naqilləri
Arduino Nano və Gücün naqilləri
Arduino Nano və Gücün naqilləri

Əvvəlcə bu layihədə bir LiPo istifadə etmək qərarına gəldim, amma sınadığımda batareya bir gecədə boşaldı. Əvvəlcə batareyanın boş olduğunu düşündüm, buna görə cərəyanı ölçdüm və dövrənin 73mA çəkdiyini kəşf etdim ki, bu da batareyada daha çox olacaq. Əslində batareyadakı cərəyanı ölçdüm (gücləndirici çeviricidən əvvəl) və 110mA -dan çox olduğunu kəşf etdim. Bu saatın batareya ilə işləməyəcəyi aydın oldu.

Bunun əvəzinə 5V USB şarj cihazı istifadə etməyi seçirəm. Bağlayıcıların iki kiçik uşaqdan sui -istifadə etməsi səbəbindən ətrafımda çoxlu ölü USB şarj cihazı var.

WS2812 LED -ləri istifadə etdiyimiz üçün Arduino Nano ilə cəmi 3 əlaqəmiz var.

  • Güc
  • Zəmin
  • Məlumat IN. Nano -da D2 -ə qədər narıncı

Sonra RTC -yə sahibik, bunun yalnız 4 teli var.

  • Güc 5 volt
  • Zəmin
  • SCL (I2C Saatı) Nanoda A5 -dən maviyə qədər
  • SDA (I2C Məlumatları) Nanoda sarıdan A4 -ə qədər

Nəhayət, gücə ehtiyacımız var və bu, Nano üzərindəki 5 V güc terminalına gedir.. Vin, 5 voltdan (yəni 7-12 Volt) daha böyük bir gərginliyə və torpağa sahib olmaq üçün hazırlanmışdır.

Addım 4: Proqram

Proqramlaşdırmağı çox sevirəm, sadəcə o qədər də yaxşı deyiləm.

Problem 1

Saniyə və dəqiqələr düzgün olaraq 0-59 arasında bir rəqəm olaraq təqdim olunur. Ancaq ilk LED və buna görə sıfır altındadır. Buna görə də bunu düzəltmək lazım idi.

void correctPos (int A)

{əgər (A 30) {A = A - 31; }} temp = A; }

Problem 2

Yeni mövqeyi göstərməzdən əvvəl bütün LED -ləri silməyə çalışdım, lakin bu LED -lərin yanıb sönməsinə səbəb oldu. Buna görə də növbəti LED -i yandırıb əvvəlki lampanı söndürmək qərarına gəldim. Bu yaxşı işlədi ?? YOX, çünki yeni mövqe sıfır olsaydı, cəhd edib -1 -i söndürərdi. buna görə də eyni vaxtda həll edildi.

void deletePrevious (int B)

// əvvəlki ledi silin, sıfır olsaydı // 59 -u söndürün, yalnız 1 -i çıxarın və o birini söndürün. {if (B == 0) {strip.setPixelColor (59, 0, 0, 0); // Hamısı off} başqa {strip.setPixelColor (B - 1, 0, 0, 0); // hamısı off}}

Problem 3

Yuxarıdakıları etmək, ikinci ikinci mövqe köhnə dəqiqənin yerinə gələnə qədər çox yaxşı işləyirdi. Bu o demək idi ki, saniyələrdən sonra yenilənən dəqiqə onu söndürdü! Saat/dəqiqə üçün də eyni

əgər (saniyə == dəq-1)

{strip.setPixelColor (dəqiqə-1, 0, 30, 0); }

Problem 4

İşlər yaxşı görünməyə başlayır, buna görə eyni vəziyyətdə düşəndə rəngləri qarışdıraq?

əgər (dəqiqə == saniyə)

{strip.setPixelColor (dəq, 15, 13, 0); // sarı etmək üçün yaşıl və qırmızı. }

Problem 5

Saat 24 saat formatında başlayır. buna görə ilk növbədə bunun düzəldilməsi lazımdır

əgər (saat> 12)

{saat = saat -12; }

Problem 6

Gündə 24 saat olduğunu və 60 LED -in olduğunu unutma. Həqiqətən 5 -ə bərabərdir

saat = saat * 5;

Problem 7

Yuxarıda göstərilənləri etdikdə, indi 4 LED -lə bir saat tullanırıq, bütün LED -lərdən istifadə etsəniz və bir saatın fraksiyalarını düzgün göstərsəydiniz daha yaxşı olardı? Yenə bu asan bir düzəliş idi, yalnız orijinal dəqiqələrin sayını 12 -ə bölünmüş saata əlavə etdim.

saat = saat + (addMin/12);

Problem 8

Saat və ya dəqiqə ledinin altındakı saniyələr bir saniyə əvvəl yox olur.

saat = əgər (dəqiqə == 0)

{if (secs == 59) {strip.setPixelColor (59, 0, 30, 0); // green}} if (hours == 0) {if (secs == 59) {strip.setPixelColor (59, 0), 30, 0); // yaşıl}}

Problem 9

Vaxtın təyin edilməsi. Bu quruluşu çox sadə saxlamağa qərar verdim, buna görə vaxtı tənzimləmək üçün düymələr daxil edilmədi. Yəni yalnız saatı kompüterinizə bağlamaq və yeni bir zaman yükləmək məsələsi var. Sadəcə aşağıdakı bölməni şərhdən çıxarın və tələb olunan vaxtı təyin edin və sonra proqramı yükləyin. Xətti düzgün şərh etdikdən və proqramı yenidən göndərdikdən sonra, gücünü itirsəniz, yenidən qurulacaq və köhnə vaxtı yenidən yükləyəcək.

// 12 aprel 2020 -ci il saat 23: 20 -də zəng edərdiniz:

//rtc.adjust (Tarix Zamanı (2020, 4, 12, 23, 20, 0)));

Tövsiyə: