Turinys:

RGB LED rašiklis šviesiam dažymui: 17 žingsnių (su paveikslėliais)
RGB LED rašiklis šviesiam dažymui: 17 žingsnių (su paveikslėliais)

Video: RGB LED rašiklis šviesiam dažymui: 17 žingsnių (su paveikslėliais)

Video: RGB LED rašiklis šviesiam dažymui: 17 žingsnių (su paveikslėliais)
Video: RGB подсветка на звуковом управлении 2024, Lapkritis
Anonim
RGB LED rašiklis šviesiam dažymui
RGB LED rašiklis šviesiam dažymui
RGB LED rašiklis šviesiam dažymui
RGB LED rašiklis šviesiam dažymui
RGB LED rašiklis šviesiam dažymui
RGB LED rašiklis šviesiam dažymui

Tai yra visa instrukcija, skirta šviesos dažymo įrankiui, kuriame naudojamas RGB LED valdiklis. Aš daug naudoju šį valdiklį savo pažangiuose įrankiuose ir maniau, kad dokumentinis filmas apie tai, kaip jis sukurtas ir užprogramuotas, gali padėti kai kuriems žmonėms.

Šis įrankis yra modulinis RGB šviesos rašiklis, skirtas lengvam rašymui, lengvam piešimui ir grafiti apšvietimui. Jį lengva naudoti, nes rankoje turite tik rašiklį ir galite greitai pakeisti spalvą.

Įrankį sudaro:

  • dėklas, atspausdintas 3D
  • „Arduino Micro“
  • WS2816B šviesos diodas
  • du potenciometrai (10K arba 100K)
  • du jungikliai
  • mygtukas
  • ir kai kurie kabeliai.

Tam puikiai tinka „Arduino Micro“, nes jis yra labai mažas ir puikiai valdo RGB šviesos diodus. Taip pat galite naudoti dar mažesnius mikrovaldiklius, tokius kaip „LilyPad“ar net „ATtiny85“, bet aš dažnai naudoju „Micro“, nes juo lengva naudotis, nes jame yra paruošta naudoti USB jungtis. Tiek „Arduino“, tiek šviesos diodas yra maitinami 5 V įtampa, todėl turite pasirūpinti tinkamu maitinimo palaikymu. Šis įrankis skirtas naudoti keturias AAA įkraunamas baterijas, nes jos paprastai turi 1,2 V ir kartu 4,8 V, kurių pakanka tiek „Arduino“, tiek šviesos diodams maitinti. Saugokitės, kad nenaudotumėte įprastų AAA tipo baterijų, nes jos turi 1,5 V įtampą, o bendra įtampa gali būti per didelė komponentams ir gali jas pažeisti. Jei norite naudoti įprastas baterijas, naudokite tik tris, įtampos vis tiek turėtų pakakti. Akumuliatoriaus dėklui, kurį galite rasti čia, panaudojau kitą puikią 3D spausdintą dalį iš kito asmens: „Lankstūs akumuliatoriaus laikikliai“.

1 žingsnis: programavimas

Pirmiausia jums reikia „Arduino IDE“programuoti mikrovaldiklį, kurį galima nemokamai atsisiųsti ir naudoti. Iš pirmo žvilgsnio tai skamba gana sudėtingai, bet iš tikrųjų yra gana paprasta. Įdiegę programinę įrangą, gausite paprastą teksto rengyklės langą, kuris naudojamas koduoti eskizą, įkeltą į „Arduino“. Šis įrankis taip pat naudoja „FastLED“biblioteką, kuri yra puiki ir paprasta naudoti biblioteka, valdanti beveik bet kokį RGB šviesos diodą, kurį galite nusipirkti. Atsisiuntę biblioteką turite įdiegti, įdėdami failus į „Arduino IDE“sukurtą bibliotekos aplanką. Paprastai tai galite rasti skiltyje „C: / Users {User Name} Documents / Arduino / libraries“, jei to nepakeitėte. Įdėję biblioteką į šį aplanką, turite iš naujo paleisti IDE, jei ji jau veikia. Dabar esame pasiruošę sukurti valdiklio kodą.

2 žingsnis: kodas

Norėdami naudoti „FastLED“biblioteką, pirmiausia turime ją įtraukti į savo kodą. Tai daroma kodo viršuje prieš ką nors kitą šioje eilutėje:

#įtraukti

Toliau nustatysime keletą konstantų. Tai daroma todėl, kad šios vertės nesikeis, kol kodas veikia, taip pat, kad jis būtų lengviau skaitomas. Šias vertes galite įdėti tiesiai į kodą, bet jei jums reikės ką nors pakeisti, turėsite pereiti per visą kodą ir pakeisti kiekvieną eilutę, kurioje naudojama vertė. Naudodami apibrėžtas konstantas, turite jas pakeisti tik vienoje vietoje ir nereikia liesti pagrindinio kodo. Pirmiausia mes apibrėžiame kaiščius, kuriuos naudoja šis valdiklis:

#define HUE_PIN A0

#define BRIGHT_PIN A1 #define LED_PIN 3 #define LIGHT_PIN 6 #define COLOR_PIN 7 #define RAINBOW_PIN 8

Skaičiai ar pavadinimai yra tie patys, kurie spausdinami ant „Arduino“. Analoginiai kaiščiai prieš numerį yra pažymėti A, skaitmeniniai kaiščiai naudoja tik kodą, bet kartais ant lentos atspausdinami su pirmaujančia D.

A0 kaiščio potenciometras naudojamas spalvos atspalviui valdyti, A1 kaiščio potenciometras - ryškumui valdyti. Smeigtukas D3 naudojamas kaip signalas šviesos diodui, kad „Arduino“galėtų siųsti duomenis spalvai valdyti. Smeigtukas D6 naudojamas šviesai perjungti, o kaištis D7 ir D8 - valdiklio režimui nustatyti. Aš įdiegiau šio valdiklio režimus, vienas tiesiog įdeda spalvų potenciometro apibrėžtą spalvą į šviesos diodą, o kitas išnyks per visas spalvas. Be to, mums taip pat reikia kelių „FastLED“bibliotekos apibrėžimų:

#define COLOR_ORDER GRB

#define CHIPSET WS2811 #define NUM_LEDS 5

Lustų rinkinys naudojamas bibliotekai pasakyti, kokį šviesos diodą naudojame. „FastLED“palaiko beveik visus galimus RGB šviesos diodus (pvz., „NeoPixel“, APA106, WS2816B ir kt.). Mano naudojamas šviesos diodas parduodamas kaip WS2816B, tačiau atrodo šiek tiek kitoks, todėl geriausiai veikia naudojant WS2811 mikroschemų rinkinį. Baitų tvarka, siunčiama į šviesos diodą, kad būtų nustatyta spalva, taip pat gali skirtis tarp gamintojų, todėl taip pat turime baitų tvarkos apibrėžimą. Čia pateiktas apibrėžimas tik liepia bibliotekai nusiųsti spalvą žalia, raudona, mėlyna tvarka. Paskutinis apibrėžimas skirtas prijungtų šviesos diodų kiekiui. Jūs visada galite naudoti mažiau šviesos diodų, nei jūs nustatote kodu, todėl aš nustatiau skaičių 5, nes su šiuo įrankiu aš nesukursiu rašiklių su daugiau nei 5 šviesos diodais. Galite nustatyti daug didesnį skaičių, tačiau dėl našumo laikau jį tiek, kiek man reikia.

Pagrindiniam kodui mums taip pat reikia kelių kintamųjų:

int ryškumas = 255;

unsigned int pot_Reading1 = 0; unsigned int pot_Reading1 = 0; unsigned long lastTick = 0; unsigned int wheel_Speed = 10;

Šie kintamieji naudojami ryškumui, potenciometrų rodmenims, prisimenant paskutinį kartą įvykdytą kodą ir kaip greitai išbluks spalva.

Toliau mes nustatome šviesos diodų masyvą, kuris yra paprastas būdas nustatyti spalvą. Apibrėžtas šviesos diodų skaičius naudojamas masyvo dydžiui nustatyti:

CRGB šviesos diodai [NUM_LEDS];

Pasirūpinę apibrėžimais, dabar galime parašyti sąrankos funkciją. Ši programa yra gana trumpa:

void setup () {

FastLED.addLeds (šviesos diodai, NUM_LEDS).setCorrection (TypicalLEDStrip); pinMode (LIGHT_PIN, INPUT_PULLUP); pinMode (COLOR_PIN, INPUT_PULLUP); pinMode (RAINBOW_PIN, INPUT_PULLUP); }

Pirmoje eilutėje inicijuojama „FastLED“biblioteka, naudojant anksčiau nustatytas apibrėžtis. Paskutinės trys eilutės nurodo „Arduino“, kad šie kaiščiai naudojami kaip įvestis ir kad jei jie nėra prijungti prie nieko, jų įtampa turėtų būti nustatyta aukšta (PULLUP). Tai reiškia, kad mes turime prijungti šiuos kaiščius prie GND, kad kažką suaktyvintume.

Dabar galime pasirūpinti pagrindine programa. Tai atliekama naudojant ciklo funkciją. Pirmiausia nustatome keletą kintamųjų ir perskaitome potenciometrus:

void loop () {

statinis uint8_t atspalvis = 0; statinis uint8_t ratas_Hue = 0; pot_Reading1 = analogRead (HUE_PIN); atspalvis = žemėlapis (pot_Reading1, 0, 1023, 0, 255); pot_Reading2 = analogRead (BRIGHT_PIN); ryškumas = žemėlapis (puodelis_Skaitymas2, 0, 1023, 0, 255);

Pirmosios dvi eilutės nustato kintamuosius, kurie vėliau naudojami spalvai. Šie du blokai rūpinasi potenciometro reikšmių nuskaitymu. Kadangi jūs gaunate vertę nuo 0 iki 1023, jei skaitote kaištį naudodami „analogRead“, bet atspalviui ir ryškumui reikia reikšmės nuo 0 iki 255, mes naudojame „žemėlapio“funkciją, norėdami išversti rodmenis iš vienos vertės srities į kitą. Pirmasis šios funkcijos parametras yra vertė, kurią norite išversti, o paskutiniai keturi yra mažiausias ir didžiausias regionų, kuriuos norite naudoti vertimui, skaičius.

Toliau mes įvertinsime mygtuką:

if (digitalRead (LIGHT_PIN) == LOW) {

Mes tikriname rodmenį pagal LOW, nes mes nustatėme, kad kaištis yra aukštas, jei jis nėra suaktyvintas. Taigi, paspaudus mygtuką, kaištis bus prijungtas prie GND ir rodys žemą. Jei kaiščiai nespaudžiami, nėra ką veikti.

Pirmiausia pasirūpinkime, kad šviesos diodas būtų apšviestas viena spalva:

if (digitalRead (COLOR_PIN) == LOW) {

if (atspalvis <2) {FastLED.showColor (CRGB:: Balta); FastLED.setBrightness (ryškumas); } else {FastLED.showColor (CHSV (atspalvis, 255, ryškumas)); FastLED.setBrightness (ryškumas); } uždelsimas (10);

Turime įvertinti spalvų kaištį, kad žinotume, jog norime naudoti šį režimą. Tada galime patikrinti, kokios spalvos reikia. Kadangi čia naudojamas HSV spalvų modelis, mums reikia tik atspalvio, kad galėtume apibrėžti spalvą. Tačiau tai taip pat sukuria problemą, kad neturime galimybės nustatyti baltos spalvos. Kadangi atspalvis 0 ir atspalvis 255 abu verčiami į raudoną spalvą, čia naudoju nedidelį triuką ir patikrinu, ar atspalvio potenciometro rodmenys yra mažesni nei 2. Tai reiškia, kad potenciometras yra pasuktas iki vienos pusės ir mes galime tai naudoti baltos spalvos nustatymui. Kitoje pusėje vis dar turime raudonos spalvos, todėl nieko čia neprarasime.

Taigi arba nustatome spalvą į baltą, o tada ryškumą, arba spalvą nustatome pagal atspalvio rodmenis ir ryškumą.

Vėliau pridėjau nedidelį vėlavimą, nes kur kas geriau duoti valdikliui šiek tiek prastovos, kad sutaupytumėte energijos, o 10 milisekundžių vėlavimas nebus jaučiamas.

Toliau koduojame spalvų išblukimą:

else if (digitalRead (RAINBOW_PIN) == LOW) {

rato greitis = žemėlapis („pot_Reading1“, 0, 1023, 2, 30); if (lastTick + wheel_Speed 255) {wheel_Hue = 0; } lastTick = milis (); } FastLED.showColor (CHSV (rato atspalvis, 255, ryškumas)); }

Pirmiausia patikrinamas šio režimo perjungimo kaištis. Kadangi nenorėjau pridėti trečio potenciometro, kad valdytų išblukimo greitį, ir kadangi atspalvio potenciometras šiuo režimu nenaudojamas, greičiui nustatyti galime naudoti tą potenciometrą. Dar kartą naudodamiesi žemėlapio funkcija, mes galime išversti rodmenis į vėlavimą, kuris paverčiamas išblukimo greičiu. Vėlavimui naudoju vertę nuo 2 iki 30, nes iš patirties tai yra geras greitis. Funkcija „millis“grąžins milisekundes nuo tada, kai „Arduino“buvo įjungtas, todėl galime tai naudoti laiko matavimui. Paskutinis atspalvio pakeitimas yra saugomas kintamajame, kurį mes apibrėžėme anksčiau, ir jis kiekvieną kartą lyginamas, kad pamatytume, ar turime dar kartą pakeisti atspalvį. Paskutinė eilutė tiesiog nustato spalvą, kurią reikia rodyti toliau.

Norėdami užbaigti kodą:

} Kitas {

FastLED.showColor (CRGB:: Juoda); }}

Mums tereikia išjungti šviesos diodą, jei nepaspaudžiamas mygtukas, nustatant spalvą į juodą ir uždaryti visus atidarytus skliaustus.

Kaip matote, tai yra gana trumpas ir paprastas kodas, kurį galima naudoti daugeliui įrankių, naudojančių RGB šviesos diodus.

Kai turėsite visą kodą, galėsite jį įkelti į „Arduino“. Norėdami tai padaryti, prijunkite „Arduino“prie kompiuterio naudodami USB kabelį ir pasirinkite „Arduino“tipą IDE.

Šioje instrukcijoje naudoju „Arduino Pro Micro“. Nustatę „Arduino“modelį, turite pasirinkti prievadą, kuriame IDE gali jį rasti. Atidarykite prievado meniu ir turėtumėte pamatyti prijungtą „Arduino“.

Dabar vienintelis dalykas, kurį reikia padaryti, yra įkelti kodą į „Arduino“paspaudus antrojo turo mygtuką lango viršuje. IDE sukurs kodą ir jį įkels. Po to, kai tai pavyko, galite atjungti „Arduino“ir tęsti valdiklio surinkimą.

3 žingsnis: valdiklio elektronikos surinkimas

Kadangi rūpinomės „Arduino“kodavimu, dabar galime surinkti valdiklio aparatinę įrangą. Mes pradedame sudedant komponentus į dėklo vidų. Potenciometrai eina į dvi apvalias skyles kairėje, maitinimo jungiklis yra apačioje, režimo jungiklis yra viršuje dešinėje, o „Arduino“eina į laikiklį viduryje.

4 žingsnis:

Vaizdas
Vaizdas

Pradėkite lituoti raudoną kabelį nuo maitinimo jungiklio prie „Arduino“RAW kaiščio. Šis kaištis yra pagrindinis maitinimo šaltinis, nes jis prijungtas prie įtampos reguliatoriaus, todėl net jei įtampa yra didesnė nei 5 V, šis kaištis gali būti naudojamas „Arduino“maitinti. Tada prijunkite kitą raudoną laidą prie VCC kaiščio, nes mums reikia aukšto lygio potenciometro įtampos. Lituokite du baltus laidus prie A0 ir A1 kaiščių, kurie bus naudojami potenciometro rodmenims.

5 žingsnis:

Vaizdas
Vaizdas

Dabar per angą viršuje įkiškite ilgą baltą ir ilgą žalią laidą, kurie vėliau naudojami prijungti šviesos diodą. Lituokite žalią spalvą prie 3 kaiščio, o baltą - 6 kaištį ir spauskite juos ant „Arduino“. Lituokite du juodus laidus prie GND kaiščių kairėje „Arduino“pusėje, jie naudojami potenciometrų žemo lygio įtampai. Lituokite du mėlynus laidus prie 7 kaiščio ir 8 kaiščio, kuris bus naudojamas režimo jungikliui.

6 žingsnis:

Vaizdas
Vaizdas
Vaizdas
Vaizdas

Raudoną kabelį, kurį litavome ant VCC kaiščio, dabar reikia lituoti prie vieno iš pirmojo potenciometro išorinių kaiščių. Naudokite kitą raudoną kabelį, kad tęstumėte iki antrojo potenciometro. Pasirūpinkite, kad abiejuose potenciometruose būtų naudojama ta pati pusė, kad pilna būtų abiejose pusėse. Lituokite du juodus kabelius į kitą potenciometrų pusę ir baltus kabelius nuo kaiščių A0 ir A1 ant vidurinio kaiščio. Potenciometrai veikia nustatydami įtampą ant vidurinio kaiščio į įtampą tarp įtampų, taikomų išoriniams kaiščiams, taigi, jei prijungsime aukštą ir žemą įtampą, galime gauti įtampą tarp vidurinio kaiščio. Tai užbaigė potenciometrų laidus ir juos galima šiek tiek pasukti, kad kaiščiai nebūtų nutolę.

7 žingsnis:

Vaizdas
Vaizdas

Lituokite juodą kabelį prie vidurinio režimo jungiklio kaiščio ir perkiškite ilgą juodą kabelį per angą, vedančią į maitinimo šaltinį. Įkiškite kitą ilgą juodą kabelį per viršutinę angą, kuri bus naudojama kaip šviesos diodo GND.

8 žingsnis:

Vaizdas
Vaizdas

Juodas kabelis, gaunamas iš maitinimo šaltinio, yra lituojamas prie kito juodo laido, prijungto prie paskutinio laisvo „Arduino“GND kaiščio. Lituokite laidą, vedantį į šviesos diodą, ir juodą laidą, esantį režimo jungiklyje, ir galiausiai lituokite dvi poras juodų laidų, kuriuos dabar turite kartu. Lydmetaliui izoliuoti naudokite susitraukiantį vamzdelį, kad išvengtumėte trumpojo jungimo valdiklio viduje.

9 veiksmas:

Vaizdas
Vaizdas

Paskutiniame žingsnyje dabar galime lituoti du mėlynus laidus prie režimo jungiklio. Šie jungikliai veikia prijungdami vidurinį kaištį prie vieno iš išorinių kaiščių, priklausomai nuo to, kurioje pusėje jungiklis yra. Kadangi 7 ir 8 kaiščiai yra sujungti, kai jie prijungiami prie GND, kaiščiams galime naudoti išorinius jungiklio kaiščius, o GND - vidurinį. Tokiu būdu visada suaktyvinamas vienas iš kaiščių.

Galiausiai perkiškite raudoną laidą per maitinimo angą ir prilituokite prie maitinimo jungiklio vidurinio kaiščio, o kitą ilgą raudoną laidą per angą įkiškite į šviesos diodą ir prijunkite prie to paties maitinimo jungiklio kaiščio, prie kurio prijungtas „Arduino“.

10 veiksmas:

Vaizdas
Vaizdas

Lituokite maitinimo kabelius prie akumuliatoriaus laikiklio ir įsukite spaustuką, kuriame laikomi kabeliai, vedantys į šviesos diodą. Tai užbaigia valdiklio laidus.

11 žingsnis: „Light Pen“surinkimas

Kadangi šis įrankis turi būti modulinis ir naudoti skirtingus rašiklius, mums reikia šviesos diodų laidų jungties. Aš naudojau pigią 4 gnybtų molex jungtį, kurią paprastai galima rasti ant kabelių, naudojamų kompiuterio ventiliatoriams. Šie kabeliai yra pigūs ir lengvai gaunami, todėl yra tobuli.

12 žingsnis:

Vaizdas
Vaizdas
Vaizdas
Vaizdas

Kai pradėjau jungti valdiklį, netikrinau jungčių kabelių spalvų, todėl jie šiek tiek skiriasi, bet lengvai įsimenami. Aš prijungiau juodus laidus, maitinimą prie geltonos, žalią ant žalios ir baltą mėlyną, bet galite naudoti bet kokį derinį, kuris jums patinka, tik prisiminkite tai ir kitiems rašikliams. Stenkitės izoliuoti lituotas vietas susitraukiančiu vamzdeliu, kad išvengtumėte šortų.

13 žingsnis:

Vaizdas
Vaizdas
Vaizdas
Vaizdas

Per švirkštimo priemonę įkiškite ilgą raudoną ir ilgą žalią vielą, o vienoje mygtuko pusėje lituokite juodus laidus, o kitoje - baltą laidą. Tokie mygtukai turi keturis kaiščius, iš kurių du yra sujungti poromis. Galite pamatyti, kurie kaiščiai yra prijungti, žiūrėdami į mygtuko apačią, tarp sujungtų porų yra tarpas. Jei paspausite mygtuką, abi pusės bus sujungtos su kita. Tada baltas ir vienas juodas kabelis ištraukiami iki švirkštimo priemonės galo, pradedant nuo mygtuko angos. Kitas juodas kabelis ištraukiamas į priekį. Įsitikinkite, kad abiejose pusėse yra pakankamai kabelių, su kuriais galite dirbti.

14 žingsnis:

Vaizdas
Vaizdas
Vaizdas
Vaizdas

Paspauskite mygtuką į angą ir paruoškite likusius kabelius. Kabelius geriausia lituoti prie šviesos diodo taip, kad jie būtų nukreipti į šviesos diodo vidurį, nes kabeliai eina per rašiklio vidurį. Lituokite raudoną laidą prie 5 V lydmetalio, juodą laidą prie GND litavimo kilimėlio ir žalią laidą prie Din lydmetalio. Jei turite daugiau nei vieną šviesos diodą, pirmojo šviesos diodo litavimo kilimėlis Dout yra prijungtas prie kito šviesos diodo Din ir pan.

15 žingsnis:

Vaizdas
Vaizdas
Vaizdas
Vaizdas

Dabar paspauskite švirkštimo priemonės priekyje esantį mygtuką ir už jo uždėkite lašą klijų, kad jis laikytųsi vietoje.

Dabar jums tereikia lituoti rašiklio gale esančius laidus į kitą jungties pusę, atsižvelgiant į spalvas.

Geriausia naudoti lašą klijų ir tam tikrą juostą, kad atlaisvintumėte kabelius švirkštimo priemonės gale, kad jie nesulūžtų. Tai užbaigia lengvo rašiklio surinkimą.

16 žingsnis: pavyzdžiai

Pavyzdžiai
Pavyzdžiai
Pavyzdžiai
Pavyzdžiai
Pavyzdžiai
Pavyzdžiai
Pavyzdžiai
Pavyzdžiai

Galiausiai noriu parodyti keletą pavyzdžių, kai naudojau šį įrankį. Kampinis rašiklis puikiai apšviečia grafiti linijas, o tiesus rašiklis puikiai tinka piešti ir rašyti ore (tam turiu tik nedaug talentų).

Tai yra pagrindinis šios priemonės tikslas. Kaip matote, galimybės yra nuostabios, jei su šiuo įrankiu derinate ilgas ekspozicijas.

Norėdami pradėti nuo šios rūšies fotografijos, pabandykite naudoti mažiausią fotoaparato palaikomą ISO nustatymą ir didelę diafragmą. Geras būdas rasti tinkamus nustatymus yra įjungti fotoaparatą į diafragmos režimą ir uždaryti diafragmą, kol fotoaparatas parodys ekspozicijos laiką maždaug tiek laiko, kiek reikia nupiešti tai, ką norite pridėti prie nuotraukos. Tada perjunkite į rankinį ir naudokite tą ekspozicijos laiką arba naudokite lemputės režimą.

Smagu juos išbandyti! Tai nuostabi meno forma.

Šią instrukciją pridėjau prie išradėjų ir neįprasto naudojimo iššūkio, taigi, jei jums patinka, palikite balsavimą;)

17 žingsnis: failai

Aš taip pat pridėjau diržų laikiklių modelių, skirtų klijuoti valdiklio korpuso apačioje, kad galėtumėte pririšti jį prie rankos, ir spaustuką rašikliui, kurį galima priklijuoti prie dangtelio, kai jums to nereikia tavo rankoje.

Taip pat yra difuzoriaus dangteliai, kuriais galima sklandžiau apšviesti šviesą ir užkirsti kelią pliūpsniams, kai rašiklis nukreipiamas tiesiai į fotoaparatą.

Rekomenduojamas: