Mundarija:

Har qanday loyiha uchun eng yaxshi RGB LEDlari (WS2812, Aka NeoPixels): 6 qadam (rasmlar bilan)
Har qanday loyiha uchun eng yaxshi RGB LEDlari (WS2812, Aka NeoPixels): 6 qadam (rasmlar bilan)

Video: Har qanday loyiha uchun eng yaxshi RGB LEDlari (WS2812, Aka NeoPixels): 6 qadam (rasmlar bilan)

Video: Har qanday loyiha uchun eng yaxshi RGB LEDlari (WS2812, Aka NeoPixels): 6 qadam (rasmlar bilan)
Video: Xonaga rang tanlashda bu xatolarni aslo qilmang! 2024, Iyul
Anonim
Har qanday loyiha uchun eng yaxshi RGB LEDlari (WS2812, Aka NeoPixels)
Har qanday loyiha uchun eng yaxshi RGB LEDlari (WS2812, Aka NeoPixels)
Har qanday loyiha uchun eng yaxshi RGB LED (WS2812, Aka NeoPixels)
Har qanday loyiha uchun eng yaxshi RGB LED (WS2812, Aka NeoPixels)
Har qanday loyiha uchun eng yaxshi RGB LEDlari (WS2812, Aka NeoPixels)
Har qanday loyiha uchun eng yaxshi RGB LEDlari (WS2812, Aka NeoPixels)

Biz LEDlar bilan ishlayotganimizda, biz ularning holatini (yoqish/o'chirish), yorqinligini va rangini boshqarishni yaxshi ko'ramiz. Bu borada juda ko'p turli xil usullar mavjud, lekin ularning hech biri WS2812 RGB LED kabi ixcham echim emas. 5 mm x 5 mm o'lchamdagi kichik paketida WS2812 3 ta yorqin LEDni (Qizil, Yashil va Moviy) va 3 LEDning holatini, yorqinligini va rangini boshqarish uchun faqat bitta ma'lumot kiritishni talab qiladigan ixcham haydovchi sxemasini (WS2811) o'z ichiga oladi.. 3 ta LEDni boshqarish uchun faqat bitta ma'lumot uzatish liniyasiga ehtiyoj borligi sababli, WS2811 bilan aloqa o'rnatishda yuqori aniqlikdagi vaqt talab qilinadi. Shu sababli, real vaqtda mikrokontroller (masalan, AVR, Arduino, PIC) kerak. Afsuski, Linux asosidagi mikrokompyuter yoki Netduino yoki Basic Stamp kabi talqin qilingan mikrokontroller kerakli vaqt aniqligini ta'minlay olmaydi. Shunday qilib, men ushbu yo'riqnomada Arduino Uno yordamida ushbu LEDlardan birini sozlash va boshqarish jarayonidan o'taman. Keyin men ajoyib yoritgichli displey uchun ularning bir nechtasini birlashtirish qanchalik osonligini ko'rsataman!

1 -qadam: materiallar ro'yxati

Materiallar ro'yxati
Materiallar ro'yxati

Bu ajoyib RGB LED, 5050 (5 mm x 5 mm) hajmli paketga ega bo'lib, ular 6 ta prokladkalarga ega bo'lib, ularni kesish taxtasiga lehimlash juda oson. Yagona qo'shimcha komponentni ajratuvchi kondansatör bo'lgani uchun, WS2812 halollik bilan RGB LEDining rangi va yorqinligini nazorat qilish uchun eng yaxshi echimni taklif qiladi. O'rnatilgan doimiy oqimli LED drayveri (WS2811) ikkita sababga ko'ra juda foydali: - Har xil LEDni ~ 18mA doimiy oqim, kuchlanish o'zgarib tursa ham boshqaradi. - Quvvat manbai va LEDlar orasidagi tokni cheklovchi rezistorlarni (chok rezistorlarini) qo'shishning hojati yo'q. Bizga faqat bitta emas, balki butun RGB LED -lar majmuasidan iborat ajoyib yorug'lik displeyini yaratish uchun Quvvat, Yer va 1 Boshqaruv Kirishini ta'minlaydigan juda oddiy dizayn kerak. Bu to'g'ri! Ushbu LEDlardan birining Data Out pinini boshqasining Data In piniga ulab, biz ikkalasini bir xil Control Input yordamida mustaqil ravishda haydashimiz mumkin! Agar buni qanday qilish kerakligi aniq bo'lmasa, xavotir olmang, bu ko'rsatma oxirida siz xohlagan loyihaga WS2812 ni qo'shish yo'lida yaxshi bo'lamiz! Bu ko'rsatma uchun biz quyidagilarni ishlatamiz: Materiallar: 3 x WS2812 RGB LED (kichik taxtaga oldindan lehimlangan) 1 x lehimsiz non paneli qattiq yadroli simi (turli xil ranglar; 28 AWG) 1 x Arduino Uno R3 1 x Uzib qo'yiladigan pinli ulagich, 0,1 dyuymli, 8-pinli erkak (o'ng burchakli) 1 x pinli ulagich, 0,1 dyuymli, 8-pinli ayol (o'ng burchakli) 1 x uzuvchi pinli ulagich, 0,1 dyuymli, 8-pinli MaleTools: Kompyuter USB A/B kabelidan simlarni ajratuvchi lehim dazmollari Eslatmalar: Loyihangizga qarab, WS2812 RGB svetodiodlari har birining narxi 0,40 dollarga teng.

2 -qadam: Pin sarlavhalarini ulash

Pin sarlavhalarini ulash
Pin sarlavhalarini ulash
Pin sarlavhalarini ulash
Pin sarlavhalarini ulash
Pin sarlavhalarini ulash
Pin sarlavhalarini ulash

Oldingi bosqichda sanab o'tilgan barcha materiallar bilan, WS2812 RGB LEDini yoqish juda oson. Birinchidan, biz WS2812 Breakout platalarini lehimsiz non taxtasiga joylashtirish uchun tayyorlamoqchimiz. Buning uchun biz har bir 8-pinli tasmani 2 x 3-pinli bo'laklarga ajratish uchun sim kesgichdan foydalanamiz (eng keng tarqalgan kesish asboblari ham shunday ishlaydi). Shuni yodda tutingki, kesish biroz murakkab bo'ladi; Men tez -tez ikkita erkak boshi orasidagi yivni kesish uchun ko'rsatma sifatida ishlatishga harakat qilardim va men o'zim saqlamoqchi bo'lgan boshdan juda ko'p plastmassani qirqib tashladim. Biz kesmoqchi bo'lgan pinni "qurbon qilib", biz muammoning oldini olamiz. Bir juft pensni ishlatib, biz kesmoqchi bo'lgan pimni tortamiz (bu holda 4 va 8 -pin). Pimlarni olib tashlangandan so'ng, biz bo'sh turgan sarlavhalarning o'rtasini osongina kesib tashlashimiz mumkin. Bu uslub ayol bosh bilan bir xil darajada yaxshi ishlaydi. Qiziqish va kesishdan so'ng bizda 6 x 3-pinli sarlavhalar bo'lishi kerak, ya'ni 2 x standart va 4 x to'g'ri burchakli (2 x erkak, 2 x ayol). Lehimlash dazmolining yordami bilan biz endi pinlarni uchta bo'lak taxtaning har biriga quyidagi tarzda ulashimiz mumkin. Bitta taxtada 2 ta standart sarlavha bo'lishi kerak, qolgan ikkita taxtada har biri 1 x to'g'ri burchakli sarlavha bo'lishi kerak. Standart pim sarlavhalari bo'lgan taxtada biz pimlarni taxtaning pastki yuzasiga joylashtiramiz (svetodiodning qarama -qarshi tomoni). Qolgan ikkitasida o'ng burchakli sarlavhalar (har bir jinsdan bittasi) yuqori yoki pastki yuzasiga joylashtirilishi mumkin. E'tibor bering, erkak va ayol sarlavhalarini joylashtirishda bir taxtadan ikkinchisiga mos kelish muhim. Plitalarni yo'naltirish uchun sirtni o'rnatish kondansatkichidan foydalanish foydalidir; Buni mos yozuvlar sifatida ishlatib, erkak sarlavhasi kondansatkichga eng yaqin uchiga lehimli bo'lishi kerak. Pinlar lehimlangandan so'ng, biz ulardan birini Arduino -ga ulashga tayyormiz!

3 -qadam: WS2812 Breakout platasini Arduino -ga ulash

WS2812 Breakout Board -ni Arduino -ga ulash
WS2812 Breakout Board -ni Arduino -ga ulash
WS2812 Breakout Board -ni Arduino -ga ulash
WS2812 Breakout Board -ni Arduino -ga ulash
WS2812 Breakout Board -ni Arduino -ga ulash
WS2812 Breakout Board -ni Arduino -ga ulash

Bu bosqichda biz Arduino va WS2812 uzilish taxtalarimizdan biri o'rtasida kerakli aloqalarni o'rnatamiz. Buning uchun biz lehimsiz non paneli va 3 ta o'tish simlaridan foydalanamiz. Agar siz g'altak simidan foydalansangiz, endi har biri 4 dyuym uzunlikdagi 3 bo'lakni kesish vaqti keldi. Endi biz WS2812 uzilish taxtasini (standart sarlavhali) taxtaning bo'linmasiga joylashtirishimiz mumkin. Arduino ham quvvat manbaidan, ham USB -dan uzilganligi uchun biz ulanishni davom ettiramiz. WS2812 uzilish taxtasining pastki qismida biz har bir pinning nomini topamiz: VCC, DI (DO), GND. Bu qo'llanma sifatida biz Arduino -dan 5V va GND pinlarini mos ravishda WS2812 kartasining VCC va GND pinlariga ulashni davom ettiramiz, so'ngra Arduino -ning raqamli tomonidagi 8 -pinni WS2812 kartasining DI piniga ulaymiz. - bu kondansatkichga eng yaqin bo'lgan tomonning markaziy pimi. Endi biz o'z dasturimizni Arduino -ga yuklashga va WS2812 -ni miltillashga tayyormiz!

4 -qadam: Arduino IDE yordamida uni miltillash

Arduino IDE yordamida uni miltillash
Arduino IDE yordamida uni miltillash
Arduino IDE yordamida uni miltillash
Arduino IDE yordamida uni miltillash

Menimcha, siz Arduino IDE-ni kompyuteringizga o'rnatgansiz-Internetdagi ko'plab qo'llanmalar bu jarayonni yaxshi tushuntiradi. Arduino -ga yuklashimiz kerak bo'lgan dasturni bu erda yuklab olish mumkin. Dasturiy ta'minot> misollar> primer papkasida joylashgan primer.ino faylini ikki marta bosish orqali Arduino IDE-ga yuklashimiz mumkin (1.0.5 versiyasi uchun wirtten). Paketda kodni tuzish uchun kerakli kutubxonalar mavjud, shuning uchun hech qanday xato bo'lmasligi kerak, agar siz kompilyatsiya qilishda muammolarga duch kelsangiz, sharh qoldiring. Asboblar menyusidan foydalanib, Arduino karta turini va USB portini tanlagandan so'ng, kodni yuklang va WS2812 qizil, yashil va ko'k oralig'ida miltillay boshlaydi. Ushbu WS2812 RGB LED-larining eng o'ziga xos xususiyati shundaki, ular ko'pgina LEDlarni o'z ichiga olgan uzun chiziqlar va massivlarni yaratish uchun juda oson "romashka" bilan bog'lanishi mumkin. Keyingi bosqichda, biz tayyorlagan 3 ta taxtada aynan shunday qilamiz.

5 -qadam: RGB LED -lentalarini yaratish

RGB LED -lentalarini yaratish
RGB LED -lentalarini yaratish
RGB LED -lentalarini yaratish
RGB LED -lentalarini yaratish

O'rnatilgan LED drayverlari sxemasi (WS2811) faqat bitta ma'lumot uzatish liniyasi (!) Yordamida bitta LEDni boshqasiga "romashka bilan bog'lab qo'yish" imkonini beradi. Bir WS2812 ma'lumot chiqishini boshqasining ma'lumot kiritishiga ulab, biz Arduino -dagi 500 tagacha LED -larning yorqinligi va rangini nazorat qila olamiz! Albatta, ko'pgina LEDlarni boshqarish uchun quyidagi fikrlarni hisobga olish kerak: - Har bir piksel 60 mA gacha chiziladi (oq rang to'liq yorqinligida, har bir chizilgan ~ 20 mA bo'lishi kerak). - Arduino operativ xotirasi maksimal 30 gigagertsli yangilanish tezligida 500 ta LEDni chiqaradi. - Ikkita taxtani bir-biriga ulash uchun, tavsiya qilinadigan maksimal ajratish 6 dyuymni tashkil qiladi, bu elektr uzilishlar va ma'lumotlarning buzilishining oldini oladi. Shuni yodda tutgan holda, biz barcha LEDlarni 24 bitli rangli piksellar sonini ishlatib, ravshanlik darajasida, va batareya quvvati (kichik) o'zgarishidagi o'zgarishlarga juda chidamli. Biz bu yo'riqnomaga tayyorlagan taxtalarni "romashka zanjiri" ni boshlash uchun, ayol uchini ikkita taxtaning erkak uchidan birining erkak uchiga o'ng bilan bog'lashdan boshlaymiz. burchakli sarlavhalar. Keyin, biz Arduino kartamiz Power va USB-dan uzilib qolganida, biz ikkita bortli zanjirning erkak uchini lehimsiz non paneliga joylashtiramiz. Bunday hizalanishda VCC va GND pinlari to'g'ri chiziqli taxtadan ham, zanjirdan ham xuddi shu taxtaning qatoriga joylashtiriladi. Biz ikkita taxtali zanjirni kondansatkichga qarama-qarshi bo'lgan uchinchi taxtaning oxiriga yaqin joylashtiramiz. A. Hamma narsa bog'liq bo'lsa, biz Arduino IDE -ni o'chirib, matn muharriridan foydalanib "NUM_LEDS 1 ta ta'rifni" "NUM_LEDS 3 ta ta'rifini" o'zgartira olamiz. Kengashni quvvat va/yoki USB -ga qayta ulaganimizdan so'ng, biz yangi dasturni yuklashimiz mumkin … va … BAM! Uchta LED ham xuddi shunday miltillashi kerak!

6 -qadam: Qorong'uda, yorug'lik bo'lsin

Qorong'uda, yorug'lik bo'lsin!
Qorong'uda, yorug'lik bo'lsin!
Qorong'uda, yorug'lik bo'lsin!
Qorong'uda, yorug'lik bo'lsin!

Bu yo'riqnoma sizga WS2812 RGB LED-ni mayda bo'laklarga oldindan lehimlangan holda ishlatishni ko'rsatdi. Biz LEDlarning yorqinligi va rangini boshqarish uchun Arduino -dan foydalanganmiz. Bir oz hafsalasi pir bo'lgan narsa shundaki, biz ishlatgan kod bir xil yorug'lik va rangdagi LEDlarning birdaniga miltillashiga olib keldi. Ushbu ish rejimi ushbu paketga o'rnatilgan "aqlli" LED drayverining (WS2811) to'liq imkoniyatlarini namoyish etmaydi. Shunday qilib, keling, asl kodga quyidagi o'zgartirishlarni kiritishga harakat qilaylik. Avvalgidek, siz faylni yuklaysiz va ochasiz, keyin Arduino -ga yuklanadigan dasturiy ta'minotni ochasiz (dasturiy ta'minot> effektlar> effektlar.ino). Bu demo uchun zarur bo'lgan barcha fayllar kiritilgan, shuning uchun uchinchi tomon libariyalarini qo'shishning hojati yo'q; kod hech qanday o'zgarishsiz kompilyatsiya qilinishi kerak --- u allaqachon 3 ta LEDni boshqarish uchun o'rnatilgan. Endi sizning tasavvuringizga ko'ra, bu juda foydali, ixcham, RGB LED -lari o'z chiroqlarini yoqishi mumkin bo'lgan keyingi loyihani ishlab chiqish. Sharhlar bo'limida WS2812 yordamida o'zingiz yaratgan ba'zi asarlarni joylashtirishga jur'at eting!

Tavsiya: