Mündəricat:

Asan LED Bayram İşıq Şousu: Qışda Sehrbazlar - FastLED və Arduino Dərsliyi ilə WS2812B LED Şeridi: 6 addım
Asan LED Bayram İşıq Şousu: Qışda Sehrbazlar - FastLED və Arduino Dərsliyi ilə WS2812B LED Şeridi: 6 addım

Video: Asan LED Bayram İşıq Şousu: Qışda Sehrbazlar - FastLED və Arduino Dərsliyi ilə WS2812B LED Şeridi: 6 addım

Video: Asan LED Bayram İşıq Şousu: Qışda Sehrbazlar - FastLED və Arduino Dərsliyi ilə WS2812B LED Şeridi: 6 addım
Video: Kim nə başa düşdü ❓ 2024, Iyul
Anonim
Image
Image

Bu bayram işıq şousunu hər yerdə göstərmək üçün dizayn etdim və proqramlaşdırdım. 30 piksel/ metr piksel sıxlığı olan bir WS2812B LED şeridi istifadə etdim. 5 metr istifadə etdiyim üçün cəmi 150 LED -ə sahib oldum. Kodu sadə saxladım ki, WS2812B LED şeritlərindən istifadə edən hər kəs kodu asanlıqla izləyə bilsin. Bu həm də o deməkdir ki, fərqli miqdarda piksel istifadə etsəniz, vaxt kəsiləcək, buna görə də 150 LED -ə yapışmalısınız. Bundan əlavə, musiqi sistemi Arduino tərəfindən idarə edilmir. Proqramın əvvəlində 3 yaşıl və 1 qırmızı yanıb -sönmə var, sonra əsl işıq şousu başlayır. Musiqiyə əllə başlamalı olduğunuz üçün, bu ilkin işıqlar sizə musiqinin nə vaxt çalınacağını göstərməlidir. Aşağıdakı kodu daxil etdim. Bu kodu qeyri-kommersiya məqsədləri üçün əlavə etmək və ya dəyişdirməkdən çekinmeyin.

Təchizat

- WS2812B LED şeridi

- Arduino

- Tellər

- 5V 10A enerji təchizatı | Birdən çox zolaq istifadə edirsinizsə, daha böyük bir enerji təchizatı istifadə etməlisiniz. Hər piksel 60mA istifadə edir, buna görə 150 piksel * 60mA = 9A. Ağda tam parlaqlıq istifadə etmək niyyətindəsinizsə, enerji təchizatınız bunu idarə edə bilməlidir. 5V LED şeritləri istifadə edirsinizsə 5V enerji təchizatı istifadə etməlisiniz və 12V LED şeritləri istifadə edirsinizsə, 12V enerji təchizatı istifadə etməlisiniz, həm də 5V Arduino-nu gücləndirmək üçün 12-5V çeviricidən istifadə etməlisiniz.

Addım 1: FastLED Kitabxanasını yükləyin

Bir neçə dəyişən təyin edin
Bir neçə dəyişən təyin edin

FastLED kitabxanası hələ yüklənməyibsə, ən son versiyanı github.com/FastLED/FastLED/releases saytından yükləyin.

FastLED kitabxanasını yükləyin və Arduino kitabxana qovluğuna köçürün. Bu qovluğun adını dəyişməyin. Arduino IDE -də Sketch -ə gedin, Kitabxana daxil edin və sonra. ZIP Kitabxanası əlavə edin. FastLED qovluğunu seçin.

Kitabxananız qurulduqdan sonra #include sətrini daxil edin Bu sətir həmin kitabxanadan istifadə etdiyinizi proqrama bildirir.

Addım 2: Bir neçə dəyişən təyin edin

Daha əvvəl də qeyd etdiyim kimi, kodu sadə saxlamaq üçün piksel sayının dəyişdirilməsi vaxtı və ya işıq şousunu dəyişəcək.

#Define NUM_LEDS 150 xətti, istifadə olunan piksel sayını qoyduğunuz yerdir. Bu vəziyyətdə 150 olacaq.

#Define DATA_PIN 5 xətti, məlumat telini bağladığınız rəqəmsal pimi qoyduğunuz yerdir.

#Define BRIGHTNESS 255 xətti, parlaqlığı 0-255 miqyasında qoyduğunuz yerdir, 255 ən parlaqdır.

Addım 3: Kodun Quraşdırma Bölməsi

Kodun Quraşdırma Bölməsi
Kodun Quraşdırma Bölməsi

Quraşdırma bölməsində, 2 saniyəlik bir gecikmə və xətt var

FastLED.addLeds (ledlər, NUM_LEDS).setCorrection (TipikLEDStrip);

WS2812B istifadə etdiyimiz LED şeridin növünü göstərdi və DATA_PIN əvvəlki bir addımda təyin etdiyimiz dəyişəndir. GRB rəng sifarişidir. Bu istifadə olunan LED şeridindən asılı olaraq dəyişə bilər. Kodu olduğu kimi sınayın və rənglər videodakı ilə eyni deyilsə, bunu RGB və ya BRG olaraq dəyişdirməyə çalışın. Bu sətrin qalan hissəsini eyni şəkildə tərk edə bilərsiniz. Xətlər

FastLED.setBrightness (max_bright); set_max_power_in_volts_and_milliamps (5, 8000);

LED şeridinin enerji istifadəsini məhdudlaşdırın. Bu FastLED kitabxanasından inanılmaz bir xüsusiyyətdir. 5 sayı istifadə etdiyimiz gərginlikdir və 8000 rəqəmi, LED şeridinin mA -da istifadə edə biləcəyi maksimum cərəyandır. Ömrünü uzatmaq üçün enerji təchizatı qabiliyyətinin yalnız 80% -dən istifadə etmək tövsiyə olunur. 10A enerji təchizatı olduğundan, 0.8*10 = 8A və ya 8000mA.

Addım 4: Döngü Bölməsi | Aka, Kodun Sərin hissəsi

Döngü Bölməsi | Aka, Kodun Sərin hissəsi
Döngü Bölməsi | Aka, Kodun Sərin hissəsi
Döngü Bölməsi | Aka, Kodun Sərin hissəsi
Döngü Bölməsi | Aka, Kodun Sərin hissəsi

İndi xüsusi LED şeridimiz üçün proqram qurmağı bitirdikdən sonra, şeritləri əslində işıqlandıran hissələrə daxil ola bilərik. Bu bölməni təmiz saxlamaq üçün zolaqları idarə etmək və fərqli effektlər vermək üçün yazılmış funksiyalardan istifadə etdim. Soldakı yuxarıdakı şəkil, funksiyaları işlədən loop hissəsinin bir hissəsidir. Sağdakı şəkil aşağıda və hər bir funksiyanın nə etdiyini yazdığım yerdir.

Addım 5: Kabel çəkmə

Kablolama
Kablolama

WS2812B LED şeritlərinin hər ucunda 3 terminal var. Güc üçün 2, Arduino -dan gələn məlumat siqnalı üçün 1. Sadəcə Arduinonun güc terminallarına 2 tel bağlayın və LED şeridinə 2 güc telini bağlayın. Şeridin sonuna güc enjeksiyon telləri adlanan 2 güc telini də əlavə etməlisiniz, çünki bunu etməsəniz, gərginliyin itirilməsi şeridin sonunda dim LEDlərə səbəb ola bilər. Hansı terminalın nə üçün olduğunu görmək üçün şeriddəki etiketləri yoxlayın. Qütbləri qarışdırmaq qızardılmış bir zolağa səbəb ola bilər. Daha yaxşı məlumat ötürülməsi üçün ortaq bir zəmin yaratmaq üçün Arduino -nun torpaq telini LED şeridindəki torpaq telinə bağlayın. Qeyd etdim ki, güc enjeksiyon telləri əlavə etməlisiniz, ancaq bunu məlumat teli üçün edə bilməzsiniz. Bunun səbəbi, hər bir LED məlumat siqnalını digərinə təkrar yayımladığı üçün 1 məlumat telini göstərilən Arduino pininə və LED şeridinə bağladığınızdan əmin olun. Şeritdə məlumatların hərəkət istiqamətini göstərən kiçik bir ox olmalıdır. Məlumat siqnal telinin sonuna deyil, əvvəlinə qoyulduğundan əmin olun. Bunu qarışdırmaq qızardılmış bir zolağa səbəb ola bilər.

Addım 6: LED şeridinin quraşdırılması

LED şeridimi pəncərənin içərisinə yapışdıraraq quraşdırdım. Bununla birlikdə, LED şeridinizi quraşdırmağın bir çox başqa yolu var. Zolaqları dam örtüyünüzə qoymaq üçün https://tinyurl.com/s2km4v3 kimi bir alüminium kanaldan istifadə edə bilərsiniz. LED şeridlərinizi kənara qoyursanız, alüminium bir kanal istifadə edirsinizsə, ip65 zolaqları istifadə etməyi məsləhət görürəm, çünki onlar yarı suya davamlıdır və bəzi kanallara sığmayan 1p67-dən daha incədir. Bunu kənarda bir kanal olmadan quraşdırmaq niyyətindəsinizsə, praktiki olaraq su keçirməyən ip67 zolaqlarından istifadə edin. Dam xəttinizin zirvələrində olanlar kimi bir küncdən keçmək üçün zolağı ideal şəkildə kəsməlisiniz və küncdən keçmək üçün tellərdən istifadə etməlisiniz. Şeridi əyməklə uzaqlaşa bilərsiniz, ancaq onları nə qədər bükdüyünüzdən ehtiyatlı olun, çünki bir LED söndürmək asandır.

Tövsiyə: