Агуулгын хүснэгт:

Аливаа төслийн шилдэг RGB LED (WS2812, Aka NeoPixels): 6 алхам (зурагтай)
Аливаа төслийн шилдэг RGB LED (WS2812, Aka NeoPixels): 6 алхам (зурагтай)

Видео: Аливаа төслийн шилдэг RGB LED (WS2812, Aka NeoPixels): 6 алхам (зурагтай)

Видео: Аливаа төслийн шилдэг RGB LED (WS2812, Aka NeoPixels): 6 алхам (зурагтай)
Видео: ТОП-5 САМЫХ ИННОВАЦИОННЫХ ЭЛЕКТРОМОБЕКОВ 2021 года 2024, Долдугаар сарын
Anonim
Аливаа төслийн шилдэг RGB LED (WS2812, Aka NeoPixels)
Аливаа төслийн шилдэг RGB LED (WS2812, Aka NeoPixels)
Аливаа төслийн шилдэг RGB LED (WS2812, Aka NeoPixels)
Аливаа төслийн шилдэг RGB LED (WS2812, Aka NeoPixels)
Аливаа төслийн шилдэг RGB LED (WS2812, Aka NeoPixels)
Аливаа төслийн шилдэг RGB LED (WS2812, Aka NeoPixels)

Бид LED -тэй ажиллахдаа ихэвчлэн тэдний төлөв (асаах/унтраах), гэрэл, өнгийг хянах дуртай байдаг. Үүнийг хийх олон янзын арга байдаг боловч WS2812 RGB LED шиг авсаархан шийдэл байдаггүй. WS2812 нь 5мм х 5мм хэмжээтэй жижигхэн багцад 3 супер тод LED (Улаан, Ногоон, Цэнхэр), авсаархан драйверын хэлхээ (WS2811) багтсан бөгөөд 3 LED -ийн төлөв байдал, гэрэл гэгээ, өнгийг хянахад зөвхөн нэг өгөгдөл оруулах шаардлагатай.. 3 LED -ийг удирдахын тулд зөвхөн нэг өгөгдлийн шугам шаардагдах тул WS2811 -тэй харилцах маш нарийн цаг шаардагдана. Ийм учраас бодит цагийн микроконтроллер (жишээ нь AVR, Arduino, PIC) шаардлагатай. Харамсалтай нь, Линукс дээр суурилсан микро компьютер эсвэл Netduino эсвэл Basic Stamp гэх мэт тайлбарлагдсан микроконтроллер нь шаардлагатай цаг хугацааны нарийвчлалыг хангаж чадахгүй байна. Тиймээс энэхүү зааварчилгаанд би эдгээр LED -ийн аль нэгийг Arduino Uno ашиглан тохируулах, удирдах үйл явцыг үзэж байна. Дараа нь гайхалтай гэрэлтүүлгийн дэлгэцийг бий болгохын тулд тэдгээрийн хэдийг хооронд нь холбох нь хичнээн хялбар болохыг би харууллаа! Хэцүү байдлын түвшин: Анхан үе

Алхам 1: Материалын жагсаалт

Материалын жагсаалт
Материалын жагсаалт

Энэхүү гайхамшигтай RGB LED нь 5050 (5мм х 5мм) хэмжээтэй 6 ширхэг дэвсгэртэй бөгөөд тэдгээрийг самбар дээр гагнахад хялбар байдаг. Шаардлагатай цорын ганц нэмэлт бүрэлдэхүүн хэсэг бол салгах конденсатор тул WS2812 нь RGB LED-ийн өнгө, гэрлийг хянах хамгийн сайн шийдлийг санал болгодог. Тогтмол гүйдлийн LED драйвер (WS2811) нь хоёр шалтгаанаар ашиг тустай байдаг: ~ 18mA тогтмол гүйдэл нь хүчдэл харилцан адилгүй байсан ч LED бүрийг жолооддог. - Цахилгаан хангамж ба LED хооронд гүйдэл хязгаарлах эсэргүүцэл (багалзуурдах эсэргүүцэл) нэмэх шаардлагагүй. Бидэнд нэг л биш, бүхэл бүтэн RGB LED -ээс бүрдсэн гайхалтай гэрэлтүүлгийн дэлгэцийг бий болгохын тулд Power, Ground, 1 Control Input -ийг хангах маш энгийн загвар хэрэгтэй. Яг зөв! Эдгээр LED -ийн аль нэгнийх нь өгөгдлийн гаралтын зүүг нөгөө өгөгдлийн зүү рүү холбосноор бид хоёуланг нь ижил хяналтын оролтоор бие даан удирдах боломжтой болно! Хэрэв үүнийг яаж хийх нь ойлгомжгүй байгаа бол санаа зовох хэрэггүй, энэ зааварчилгааны төгсгөлд та хүссэн төсөлдөө WS2812 -ийг нэмж оруулах боломжтой болно. Энэхүү зааварчилгааны хувьд бид дараахь зүйлийг ашиглах болно: Материал: 3 x WS2812 RGB LED (жижиг хагарах самбар дээр урьдчилан гагнаж) 1 гагнуургүй талхны хатуу цөмт утас (төрөл бүрийн өнгө; 28 AWG) 1 x Arduino Uno R3 1 x Таслах зүү холбогч, 0.1 "давирхай, 8 зүү эрэгтэй (баруун өнцөг) 1 х зүү холбогч, 0.1" давирхай, 8 зүү эмэгтэй (баруун өнцөг) 1 x салгах зүү холбогч, 0.1 "давирхай, 8 зүү MaleTools: PC USB A/B кабель утас хуулагч гагнуурын төмөр Тэмдэглэл: Таны төслөөс хамааран WS2812 RGB LED-ийг тус бүр нь 0.40 долларын үнэтэй самбаргүйгээр авах боломжтой боловч урьдчилан гагнах сонголтын тав тухтай байдал нь энгийн хэрэглээнд сонирхолтой байдаг.

Алхам 2: Пин толгойг холбох

Пин толгойг холбож байна
Пин толгойг холбож байна
Пин толгойг холбож байна
Пин толгойг холбож байна
Пин толгойг холбож байна
Пин толгойг холбож байна

Өмнөх алхамд жагсаасан бүх материалын тусламжтайгаар WS2812 RGB LED -ийг асаах нь маш хялбар юм. Нэгдүгээрт, бид WS2812 Breakout хавтангуудыг гагнуургүй талхны тавцан дээр байрлуулахад бэлтгэхийг хүсч байна. Үүнийг хийхийн тулд бид утас таслагч ашигладаг (хамгийн түгээмэл зүсэх хэрэгслүүд мөн адил ажиллах болно) 8 зүү бүхий тууз бүрийг 2 х 3 зүү болгон хуваадаг. Зүсэлт хийх нь жаахан төвөгтэй гэдгийг санаарай; Ихэнхдээ би хоёр эрэгтэй толгойн хоорондох ховилыг зүсэлт хийх гарын авлага болгон ашиглахыг оролдсон бөгөөд би хадгалах гэж байсан толгойноосоо хэтэрхий их хуванцар хайчилж дуусгасан. Зүсэхийг хүссэн зүүгээ "золиослох" замаар бид асуудлаас бүрэн зайлсхийдэг. Хос бахө ашиглан бид тайрахыг хүссэн зүүгээ сугалж авдаг (энэ тохиолдолд 4, 8 -р зүү). Зүүг авсны дараа бид одоо хоосон байгаа толгойн дунд хэсгийг амархан огтолж чадна. Энэ техник нь эмэгтэй толгойтой адил сайн ажилладаг. Хутгаж, хайсны дараа бид 6 x 3-pin толгойтой байх ёстой, өөрөөр хэлбэл 2 x стандарт, 4 x тэгш өнцөгт (2 x эрэгтэй, 2 x эмэгтэй). Гагнуурын төмрийн тусламжтайгаар бид гурван таслах самбар тус бүрийг дараах байдлаар холбож болно. Нэг самбар нь 2х стандарт толгойтой байх ёстой бол нөгөө хоёр самбар тус бүр 1х тэгш өнцөгт толгойтой байх ёстой. Стандарт зүү толгойтой самбар дээр бид тээглүүрийг хавтангийн доод гадаргуу дээр байрлуулна (LED байгаа хэсгийн эсрэг талд). Нөгөө хоёр дээр зөв өнцгийн толгойнуудыг (хүйс тус бүрээс нэг) дээд ба доод гадаргуу дээр байрлуулж болно. Эрэгтэй, эмэгтэй толгойг байрлуулахдаа нэг самбараас нөгөө самбар хүртэл тууштай байх нь чухал гэдгийг анхаарна уу. Самбарыг чиглүүлэхийн тулд гадаргуу дээр суурилуулах конденсаторыг ашиглах нь ашигтай байдаг; Үүнийг лавлагаа болгон ашиглаж, эрэгтэй толгойг конденсатортой хамгийн ойрхон төгсгөл хүртэл гагнах ёстой. Зүүг гагнаж дууссаны дараа бид тэдгээрийн нэгийг Arduino руу холбоход бэлэн байна!

Алхам 3: WS2812 Breakout Board -ийг Arduino руу холбох

WS2812 Breakout Board -ийг Arduino -той холбож байна
WS2812 Breakout Board -ийг Arduino -той холбож байна
WS2812 Breakout Board -ийг Arduino -той холбож байна
WS2812 Breakout Board -ийг Arduino -той холбож байна
WS2812 Breakout Board -ийг Arduino -той холбож байна
WS2812 Breakout Board -ийг Arduino -той холбож байна

Энэ алхамд бид Arduino болон WS2812 Breakout самбаруудын хооронд шаардлагатай холболтыг хийх болно. Энэ зорилгоор бид гагнуургүй талхны хавтан, 3 ширхэг холбогч утас ашиглах болно. Хэрэв та дамар утас ашиглаж байгаа бол одоо тус бүр нь 4 инч урттай 3 ширхэг хайчлах цаг боллоо. Бид одоо WS2812 Breakout Board (стандарт толгойтой самбар) -ыг талхны хавтангийн хуваагдал дээр байрлуулж болно. Arduino нь тэжээлийн эх үүсвэр болон USB хоёулаа салгагдсан тул бид холболтыг үргэлжлүүлнэ. WS2812 Breakout Board -ийн доод талд бид зүү бүрийн нэрийг олж болно: VCC, DI (DO), GND. Үүнийг гарын авлага болгон бид Arduino -аас 5V ба GND зүүг WS2812 хавтангийн VCC ба GND зүү рүү холбож, дараа нь Arduino -ийн дижитал талын 8 -р зүүг WS2812 хавтангийн DI зүүтэй холбоно. конденсатортой хамгийн ойрхон талын гол зүү юм. Одоо бид програмаа Arduino руу ачаалж, WS2812 -ийг анивчихад бэлэн боллоо!

Алхам 4: Arduino IDE ашиглан анивчих

Arduino IDE -ийн тусламжтайгаар үүнийг анивчих
Arduino IDE -ийн тусламжтайгаар үүнийг анивчих
Arduino IDE ашиглан үүнийг анивчих
Arduino IDE ашиглан үүнийг анивчих

Та Arduino IDE-ийг компьютер дээрээ аль хэдийн суулгасан гэж бодож байна-вэб дээрх олон гарын авлага нь энэ үйл явцыг маш сайн тайлбарлаж өгдөг. Бидний Arduino руу ачаалах шаардлагатай програмыг эндээс татаж авах боломжтой. Програм хангамж> жишээнүүд> праймер хавтас доторх primer.ino файлыг давхар товшоод Arduino IDE дээр ачаална уу (1.0.5 хувилбарын хувьд wirtten). Багц нь кодыг эмхэтгэхэд шаардлагатай номын сангуудыг агуулдаг тул ямар ч алдаа гарах ёсгүй, хэрэв та эмхэтгэхэд ямар нэгэн асуудал гарвал сэтгэгдэл бичнэ үү. Tools цэсийн сонголтыг ашиглан Arduino самбарын төрөл болон USB портыг сонгосны дараа кодыг байршуулснаар WS2812 нь Улаан, Ногоон, Цэнхэрийн хооронд ээлжлэн анивчиж эхлэх ёстой. Эдгээр WS2812 RGB LED-ийн хамгийн цэвэр онцлог нь эдгээр олон LED-ийг агуулсан урт тууз, массив үүсгэхийн тулд тэдгээрийг "Daisy-оосор" -оор гинжлэхэд хялбар байдаг. Дараагийн алхамд бид үүнийг бэлтгэсэн 3 самбар ашиглан яг үүнийг хийдэг.

Алхам 5: RGB LED зурвас хийх

RGB LED зурвас хийх
RGB LED зурвас хийх
RGB LED зурвас хийх
RGB LED зурвас хийх

Суулгасан LED драйверын хэлхээ (WS2811) нь зөвхөн 1 өгөгдлийн шугам (!) Ашиглан нэг LED-ийг нөгөө рүү нь "гинжлэх" боломжийг олгодог. Нэг WS2812 -ийн өгөгдлийн гаралтыг нөгөө өгөгдлийн оролтод холбосноор бид Arduino дээр 500 хүртэлх LED -ийн бүх массивын гэрэл, өнгийг хянах боломжтой болно! Мэдээжийн хэрэг, олон LED жолоодохын тулд дараахь зүйлийг анхаарч үзэх хэрэгтэй. - Arduino нь RAM -аа дээд тал нь 30 Гц давтамжтайгаар 500 LED хөтлөх болно. - Хоёр самбарыг хооронд нь холбохын тулд цахилгаан тасалдал, өгөгдлийн эвдрэлээс урьдчилан сэргийлэхийн тулд санал болгож буй хамгийн их зай нь 6 "юм. Эдгээрийг анхаарч үзвэл бид бүх LED-ийг 24 битийн өнгөний нягтралтай, гэрэлтүүлгийн түвшинд тогтвортой, батерейны тэжээлийн өөрчлөлтийн хувьд маш уян хатан байдаг. Энэхүү зааварчилгаанд зориулж бэлтгэсэн самбарыг "Daisy-chain" болгохын тулд бид эмэгтэй хавтангийн нэгээс нөгөө эрэгтэй үзүүрийг нөгөө хавтангийн баруун талд холбож эхэлнэ. өнцгийн толгой. Дараа нь манай Arduino самбарыг Power болон USB-ээс салгаснаар бид эрэгтэй хавтанг хоёр хавтангийн гинжгүй талхны тавцан дээр байрлуулна. Ийм тохируулга нь шулуун толгойн самбар ба гинжний аль алиных нь VCC ба GND тээглүүрийг талхны нэг эгнээнд байрлуулна. А Бүх зүйл холбогдсон тохиолдолд бид Arduino IDE -ийг асааж, Текст засварлагчийг ашиглан "#NUM_LEDS 1 -ийг тодорхойлох" -ыг "NUM_LEDS 3 -ыг тодорхойлох" болгож өөрчилж болно. Самбарыг Power ба/эсвэл USB -д буцааж холбосны дараа бид шинэ програмыг байршуулж болно … ба … BAM! Гурван LED нь яг ийм байдлаар анивчих ёстой!

Алхам 6: Харанхуйд гэрэл байх болтугай

Харанхуйд гэрэл байг!
Харанхуйд гэрэл байг!
Харанхуйд гэрэл байг!
Харанхуйд гэрэл байг!

Энэхүү зааварчилгаа нь жижиг хагарах самбар дээр урьдчилан гагнасан WS2812 RGB LED-ийг хэрхэн ашиглахыг танд хурдан харуулав. Бид LED -ийн гэрэл, өнгийг хянахын тулд Arduino -ийг ашигласан. Бага зэрэг урам хугарсан нэг зүйл бол бидний ашигласан код нь LED -ийг нэгэн зэрэг анивчихад ижил өнгө, өнгөөр будсан явдал юм. Энэ горим нь энэхүү багцад суулгасан 'ухаалаг' LED драйвер (WS2811) -ийн бүрэн боломжийг харуулахгүй. Тиймээс анхны кодын дараах өөрчлөлтүүдийг туршиж үзье. Урьдын адил та файлыг татаж аваад задалсны дараа Arduino дээр ачаалагдах програмыг нээнэ үү (firmware> effects> effects.ino). Энэ демо хийхэд шаардлагатай бүх файлууд багтсан тул гуравдагч талын libaries нэмэх шаардлагагүй болно; кодыг ямар ч өөрчлөлтгүйгээр эмхэтгэх ёстой --- энэ нь 3 LED-ийг зохицуулахаар тохируулагдсан болно. Эдгээр маш ашигтай, авсаархан, RGB LED нь гэрлээ гэрэлтүүлж болох дараагийн төслийг боловсруулах нь таны төсөөллөөс хамаарна. WS2812 -ийг ашиглан өөрийн хийсэн зарим бүтээлээ сэтгэгдлүүдийн хэсэгт нийтлэхийг хүсээрэй!

Зөвлөмж болгож буй: