Sadržaj:

RGB LED olovka za osvjetljavanje: 17 koraka (sa slikama)
RGB LED olovka za osvjetljavanje: 17 koraka (sa slikama)

Video: RGB LED olovka za osvjetljavanje: 17 koraka (sa slikama)

Video: RGB LED olovka za osvjetljavanje: 17 koraka (sa slikama)
Video: Светильник из вентиляционной трубы ПВХ своими руками - Сделай сам / ПВХ ночник 2024, Studeni
Anonim
RGB LED olovka za osvjetljavanje
RGB LED olovka za osvjetljavanje
RGB LED olovka za osvjetljavanje
RGB LED olovka za osvjetljavanje
RGB LED olovka za osvjetljavanje
RGB LED olovka za osvjetljavanje

Ovo je potpuna uputa za izradu alata za oslikavanje svjetla koji koristi RGB LED kontroler. Često koristim ovaj kontroler u svojim naprednim alatima i mislio sam da bi dokumentarac o tome kako je to izgrađeno i programirano mogao pomoći nekim ljudima.

Ovaj alat je modularna svjetlosna olovka RGB namijenjena svjetlosnom pisanju, svjetlosnom crtanju i osvjetljavanju grafita. Jednostavan je za upotrebu jer u ruci imate samo olovku i možete brzo promijeniti boju.

Alat se sastoji od:

  • kućište koje je 3D ispisano
  • Arduino Micro
  • LED dioda WS2816B
  • dva potenciometra (10K ili 100K)
  • dva prekidača
  • pritisni gumb
  • i neki kabeli.

Arduino Micro savršen je za to jer je izuzetno mali i odličan za upravljanje RGB LED diodama. Možete koristiti i manje mikrokontrolere poput LilyPada ili čak ATtiny85, ali ja često koristim Micro jer je jednostavan za korištenje jer dolazi s USB priključkom spremnim za uporabu. I Arduino i LED napajaju se s 5V, pa se morate pobrinuti za odgovarajuću podršku napajanja. Ovaj alat je dizajniran za korištenje četiri AAA punjive baterije jer obično imaju 1,2V i kombiniranih 4,8V što je dovoljno za napajanje i Arduina i LED diode. Pazite da ne koristite obične AAA baterije jer imaju 1,5 V, a kombinirani napon može biti previše za komponente i može ih oštetiti. Ako želite koristiti obične baterije, upotrijebite samo tri, napon bi i dalje trebao biti dovoljan. Koristio sam još jedan sjajan 3D ispisan dio od nekoga drugog za kućište baterije koji se može pronaći ovdje: "Savitljivi držači baterija".

Korak 1: Programiranje

Prvo vam je potreban Arduino IDE za programiranje mikrokontrolera koji možete besplatno preuzeti i koristiti. Na prvi pogled ovo zvuči prilično komplicirano, ali je zapravo prilično jednostavno. Nakon instalacije softvera dobit ćete jednostavan prozor za uređivanje teksta koji se koristi za kodiranje skice koja je učitana na Arduino. Ovaj alat također koristi biblioteku FastLED koja je izvrsna i laka za korištenje biblioteka koja kontrolira gotovo sve vrste RGB LED dioda koje možete kupiti. Nakon preuzimanja knjižnice morate je instalirati stavljanjem datoteka u mapu knjižnice koju je stvorio Arduino IDE. To se obično može pronaći pod „C: / Users {Korisničko ime} Documents / Arduino / libraries“ako ga niste promijenili. Nakon stavljanja knjižnice u ovu mapu morate ponovno pokrenuti IDE ako je već pokrenut. Sada smo spremni za izradu koda za kontroler.

Korak 2: Kôd

Za korištenje knjižnice FastLED prvo je moramo uključiti u svoj kôd. Ovo se radi na vrhu koda prije svega s ovim retkom:

#uključi

Zatim ćemo definirati nekoliko konstanti. To je učinjeno jer se te vrijednosti neće promijeniti dok je kôd pokrenut, a i kako bi bile čitljivije. Ove biste vrijednosti mogli staviti izravno u kôd, ali ako trebate promijeniti bilo što, morali biste proći cijeli kôd i promijeniti svaki redak u kojem se vrijednost koristi. Korištenjem definiranih konstanti trebate ga promijeniti samo na jednom mjestu i ne morate dodirivati glavni kôd. Prvo definiramo pinove koje koristi ovaj kontroler:

#define HUE_PIN A0

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

Brojevi ili nazivi su isti koji se ispisuju na Arduinu. Analogni pinovi su označeni slovom A ispred svog broja, digitalni pinovi koriste samo broj u kodu, ali se ponekad ispisuju s početnim slovom D na ploči.

Potenciometar na pin A0 koristi se za kontrolu nijanse boje, potenciometar na pin A1 se koristi za kontrolu svjetline. Pin D3 koristi se kao signal LED diodi tako da Arduino može slati podatke za kontrolu boje. Pin D6 služi za prebacivanje svjetla, a pin D7 i D8 za postavljanje načina rada kontrolera. Ja sam implementirao načine rada u ovom kontroleru, jedan jednostavno stavlja boju definiranu potenciometrom boje na LED, a drugi će izblijedjeti kroz sve boje. Zatim nam je potrebno i nekoliko definicija za FastLED biblioteku:

#define COLOR_ORDER GRB

#define CHIPSET WS2811 #define NUM_LEDS 5

Čipset se koristi da biblioteci kaže kakvu LED diodu koristimo. FastLED podržava gotovo sve dostupne RGB LED diode (poput NeoPixela, APA106, WS2816B, itd.). LED koji koristim prodaje se pod imenom WS2816B, ali čini se da je malo drugačiji pa najbolje funkcionira pomoću čipseta WS2811. Redoslijed slanja bajtova LED diodi za postavljanje boje također se može razlikovati među proizvođačima, pa imamo i definiciju za poredak bajtova. Definicija ovdje samo kaže knjižnici da pošalje boju redoslijedom zelena, crvena, plava. Posljednja definicija je količina LED dioda koje su spojene. Uvijek možete koristiti manje LED dioda nego što definirate u kodu, pa sam postavio broj na 5 jer s ovim alatom neću dizajnirati olovke s više od 5 LED dioda. Mogli biste postaviti mnogo veći broj, ali zbog performansi ga držim onoliko malim koliko mi treba.

Za glavni kôd također nam je potrebno nekoliko varijabli:

int svjetlina = 255;

nepotpisani int pot_Reading1 = 0; nepotpisani int pot_Reading1 = 0; unsigned long lastTick = 0; bez potpisa int wheel_Speed = 10;

Ove se varijable koriste za svjetlinu, očitanja s potenciometara, sjećanje na zadnji put kada je kôd izveden i koliko će brzo nestati boja.

Zatim definiramo niz za LED diode što je jednostavan način za postavljanje boje. Definirana količina LED dioda koristi se za postavljanje veličine niza ovdje:

CRGB LED diode [NUM_LEDS];

Nakon što smo se pobrinuli za definicije, sada možemo napisati funkciju postavljanja. Ovo je prilično kratko za ovaj program:

void setup () {

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

Prvi redak inicijalizira FastLED knjižnicu pomoću prethodno postavljenih definicija. Posljednja tri retka govore Arduinu da se ti pinovi koriste kao ulaz i da ako nisu povezani ni s čim njihov napon treba postaviti na visoki (PULLUP). To znači da moramo spojiti ove pinove na GND da bismo nešto pokrenuli.

Sada se možemo pobrinuti za glavni program. To se radi u funkciji petlje. Prvo postavljamo neke varijable i čitamo potenciometre:

void loop () {{100} {101}

statička uint8_t nijansa = 0; statički uint8_t kotač_Hue = 0; pot_Reading1 = analogRead (HUE_PIN); nijansa = karta (pot_Čitanje1, 0, 1023, 0, 255); pot_Reading2 = analogRead (BRIGHT_PIN); svjetlina = karta (pot_Reading2, 0, 1023, 0, 255);

Prva dva retka postavljaju varijable koje se kasnije koriste za boju. Dva sljedeća bloka brinu se o očitanju vrijednosti potenciometra. Budući da dobivate vrijednost između 0 i 1023 ako očitate pin koristeći “analogRead”, ali nijansa i svjetlina trebaju vrijednost između 0 i 255, koristimo “map” funkciju za prevođenje očitavanja iz jednog područja vrijednosti u drugo. Prvi parametar ove funkcije je vrijednost koju želite prevesti, posljednja četiri su minimalna i maksimalna regija koju želite koristiti za prijevod.

Zatim ćemo procijeniti tipku:

if (digitalRead (LIGHT_PIN) == LOW) {

Provjeravamo očitanje prema LOW jer smo definirali da je pin visok ako se ne aktivira. Dakle, ako se pritisne gumb, pin će biti spojen na GND i čitati će nisko. Ako igle nisu pritisnute, nema što učiniti.

Prvo se pobrinimo samo za osvjetljavanje LED -a u jednoj boji:

if (digitalRead (COLOR_PIN) == LOW) {

if (nijansa <2) {FastLED.showColor (CRGB:: Bijela); FastLED.setBrightness (svjetlina); } else {FastLED.showColor (CHSV (nijansa, 255, svjetlina)); FastLED.setBrightness (svjetlina); } kašnjenje (10);

Moramo procijeniti pin boje kako bismo znali da želimo koristiti ovaj način rada. Tada možemo provjeriti koja je boja potrebna. Budući da se ovdje koristi HSV model boje, za definiranje boje potrebna nam je samo nijansa. No, to također stvara problem što nemamo načina postaviti boju na bijelu. Budući da se nijanse 0 i nijanse 255 prevode u crvenu, ovdje se poslužim malim trikom i provjeravam je li očitanje potenciometra nijanse manje od 2. To znači da je potenciometar okrenut skroz na jednu stranu i to možemo upotrijebiti za postavljanje bijele boje. Još uvijek imamo crveno s druge strane pa nećemo ništa izgubiti ovdje.

Dakle, ili postavljamo boju na bijelu, a zatim svjetlinu ili postavljamo boju na temelju čitanja nijanse, a također i svjetline.

Poslije sam dodao malo kašnjenje jer je puno bolje dati kontroleru malo zastoja radi uštede energije i neće se osjetiti kašnjenje od 10 milisekundi.

Zatim kodiramo nestanak boje:

inače if (digitalRead (RAINBOW_PIN) == LOW) {

brzina kotača = karta (pot_Čitanje1, 0, 1023, 2, 30); if (lastTick + wheel_Speed 255) {wheel_Hue = 0; } lastTick = millis (); } FastLED.showColor (CHSV (wheel_Hue, 255, svjetlina)); }

Prvo se provjerava pin za prebacivanje ovog načina rada. Budući da nisam želio dodati treći potenciometar za kontrolu brzine blijeđenja i budući da se potenciometar nijanse ne koristi u ovom načinu rada, taj potenciometar možemo koristiti za podešavanje brzine. Koristeći opet funkciju karte, možemo prevesti čitanje u kašnjenje koje se prevodi u brzinu blijeđenja. Koristio sam vrijednost između 2 i 30 za kašnjenje jer je to iz iskustva dobra brzina. Funkcija "millis" vratit će milisekunde otkad je Arduino uključen, pa to možemo koristiti za mjerenje vremena. Posljednja promjena nijanse pohranjena je u varijabli koju smo ranije definirali i to se svaki put uspoređuje kako bi se vidjelo moramo li ponovo promijeniti nijansu. Zadnji redak samo postavlja boju koju je potrebno prikazati sljedeću.

Da biste dovršili kôd:

} else {

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

Moramo samo isključiti LED ako gumb nije pritisnut postavljanjem boje na crno i zatvoriti sve otvorene zagrade.

Kao što vidite, ovo je prilično kratak i jednostavan kod koji se može koristiti za mnoge alate koji koriste RGB LED diode.

Nakon što dobijete cijeli kôd, možete ga prenijeti na Arduino. Za ovo spojite Arduino na računalo USB kabelom i odaberite vrstu Arduina u IDE -u.

U ovim uputama koristim Arduino Pro Micro. Nakon postavljanja Arduino modela morate odabrati port na kojem ga IDE može pronaći. Otvorite izbornik portova i trebali biste vidjeti povezani Arduino.

Sada je jedino potrebno učitati kôd na Arduino pritiskom na gumb drugog kruga na vrhu prozora. IDE će izgraditi kôd i učitati ga. Nakon što je ovo uspjelo, možete odspojiti Arduino i nastaviti sastavljanje kontrolera.

Korak 3: Montaža elektronike za kontroler

Budući da smo se pobrinuli za kodiranje Arduina, sada možemo sastaviti hardver kontrolera. Počinjemo stavljanjem komponenti unutar kućišta. Potenciometri idu u dvije okrugle rupe s lijeve strane, prekidač za napajanje nalazi se pri dnu, prekidač za način rada nalazi se gore desno, a Arduino ide u držač u sredini.

Korak 4:

Slika
Slika

Započnite lemljenjem crvenog kabela od prekidača za napajanje na RAW pin Arduina. Ovaj pin je prijelaz na pin za napajanje jer je spojen na regulator napona, pa čak i ako je napon veći od 5V ovaj pin se može koristiti za napajanje Arduina. Zatim lemite drugu crvenu žicu na VCC pin jer nam za potenciometar treba visoki napon. Lemiti dvije bijele žice na pinove A0 i A1 koje će se koristiti za očitanja potenciometra.

5. korak:

Slika
Slika

Sada provucite dugu bijelu i dugu zelenu žicu kroz otvor na vrhu koji se kasnije koristi za spajanje LED diode. Lemiti zelenu na pin 3 i bijelu na pin 6 i pritisnuti ih ravno na Arduino. Lemite dvije crne žice na GND pinove na lijevoj strani Arduina, oni se koriste za niski napon potenciometara. Lemite dvije plave žice na pin 7 i pin 8 koje ćete koristiti za prekidač načina rada.

Korak 6:

Slika
Slika
Slika
Slika

Crveni kabel koji smo lemili na VCC pinu sada treba lemiti na jedan od vanjskih pinova prvog potenciometra. Upotrijebite drugi crveni kabel za nastavak do drugog potenciometra. Pazite da koristite istu stranu na oba potenciometra, tako da će puna biti na istoj strani na oba. Lemite dva crna kabela s druge strane potenciometara i bijele kabele s pinova A0 i A1 na srednjem pinu. Potenciometri rade postavljanjem napona na srednjem pinu na napon između napona primijenjenih na vanjskim pinovima, pa ako spojimo visoki i niski napon možemo dobiti napon između na srednjem pinu. Ovo je dovršilo ožičenje potenciometara i oni se mogu malo okrenuti tako da se igle ne miješaju.

Korak 7:

Slika
Slika

Lemiti crni kabel na srednju iglu prekidača za način rada i staviti dugački crni kabel kroz otvor koji vodi do napajanja. Provucite još jedan dugi crni kabel kroz gornji otvor koji će se koristiti kao GND za LED.

Korak 8:

Slika
Slika

Crni kabel koji dolazi iz izvora napajanja lemljen je na drugu crnu žicu koja je spojena na posljednji slobodni GND pin Arduina. Lemite žicu koja vodi do LED diode i crnu žicu na prekidaču načina rada i na kraju lemite dva para crnih žica koje sada imate zajedno. Upotrijebite skupljajuću cijev za izolaciju lemljenja kako biste spriječili kratke spojeve unutar kontrolera.

Korak 9:

Slika
Slika

Kao posljednji korak sada možemo lemiti dvije plave žice na prekidač načina rada. Ovi prekidači rade spajanjem srednjeg zatika na jedan od vanjskih pinova, ovisno o tome na kojoj je strani prekidač. Budući da su pinovi 7 i 8 postavljeni za aktiviranje kada su spojeni na GND, možemo koristiti vanjske pinove prekidača za pinove, a srednji za GND. Na taj se način uvijek aktivira jedan od pinova.

Na kraju provucite crvenu žicu kroz otvor za napajanje i lemite je na srednju iglu prekidača za napajanje, a drugu dugačku crvenu žicu provucite kroz otvor do LED diode i lemite je na isti pin na prekidaču za napajanje na koji je spojen Arduino.

10. korak:

Slika
Slika

Lemite kablove za napajanje na držač baterije i uvijte kopču koja drži kablove koji vode do LED diode. Time je ožičenje regulatora dovršeno.

Korak 11: Sklapanje olovke za svjetlo

Budući da je ovaj alat zamišljen kao modularni i koristi različite olovke, potreban nam je konektor na žicama za LED. Koristio sam jeftin molex konektor sa 4 terminala koji se obično može naći na kabelima koji se koriste za ventilatore u računalu. Ovi su kabeli jeftini i lako ih je nabaviti pa su savršeni.

Korak 12:

Slika
Slika
Slika
Slika

Kad sam počeo ožičavati kontroler, nisam provjerio boje kabela na konektorima pa su malo drugačije, ali se lako pamte. Spojio sam crne žice, napajanje na žuto, zeleno na zeleno i bijelo na plavo, ali možete koristiti bilo koju kombinaciju koja vam se sviđa, sjetite se je i ostalih olovaka. Pazite da izolirana mjesta lemljenja skupljate cijevi kako biste spriječili kratke hlače.

Korak 13:

Slika
Slika
Slika
Slika

Provucite dugu crvenu i dugu zelenu žicu kroz olovku i lemite crne žice s jedne strane gumba, a bijelu žicu s druge strane. Ove tipke imaju četiri pina od kojih su dva spojena u paru. Možete vidjeti koje su pinove spojene gledajući pri dnu gumba, postoji jaz između spojenih parova. Ako pritisnete gumb, dvije su strane povezane s drugom. Bijeli i jedan crni kabel zatim se povlače do kraja olovke, počevši od otvora za gumb. Drugi crni kabel provučen je prema naprijed. Provjerite imate li dovoljno kabela s obje strane za rad.

Korak 14:

Slika
Slika
Slika
Slika

Pritisnite gumb u otvor i pripremite ostatak kabela. Najbolje je lemiti kabele na LED diodu tako da budu okrenuti prema sredini LED diode jer kabeli prolaze kroz sredinu olovke. Lemite crvenu žicu na lemilicu 5V, crnu žicu na lemilicu GND, a zelenu žicu na lemilicu Din. Ako imate više LED dioda, Dout podloga za lemljenje prve LED diode spojena je na Din sljedeće LED i tako dalje.

Korak 15:

Slika
Slika
Slika
Slika

Sada pritisnite gumb ispred olovke i stavite kap ljepila iza nje da je drži na mjestu.

Sada samo morate lemiti žice na kraju olovke na drugu stranu konektora imajući na umu boje.

Najbolje je upotrijebiti kap ljepila i malo trake za oslobađanje kabela na kraju olovke kako biste spriječili njihovo lomljenje. Time je završeno sastavljanje svijetleće olovke.

Korak 16: Primjeri

Primjeri
Primjeri
Primjeri
Primjeri
Primjeri
Primjeri
Primjeri
Primjeri

Na kraju vam želim pokazati nekoliko primjera gdje sam koristio ovaj alat. Olovka pod kutom sjajna je za osvjetljavanje linija grafita, a ravna olovka za crtanje i pisanje u zraku (za što nemam samo malo talenta).

Ovo je glavna svrha ovog alata. Kao što vidite, mogućnosti su nevjerojatne ako kombinirate duge ekspozicije s ovim alatom.

Za početak s ovom vrstom fotografije pokušajte upotrijebiti najnižu ISO postavku koju podržava vaša kamera i veliki otvor blende. Dobar način za pronalaženje odgovarajućih postavki je stavljanje fotoaparata u način rada otvora blende i zatvaranje otvora blende sve dok fotoaparat ne pokaže vrijeme ekspozicije otprilike onoliko koliko vam je potrebno da nacrtate ono što želite dodati slici. Zatim prijeđite na ručno i upotrijebite to vrijeme ekspozicije ili upotrijebite način rada žarulje.

Zabavite se isprobavajući ove! To je nevjerojatna umjetnička forma.

Dodao sam ovo uputstvo izumiteljima i izazovima neobične upotrebe, pa ako vam se sviđa, ostavite glasovanje;)

Korak 17: Datoteke

Dodao sam i modele za držače remena koji su namijenjeni za lijepljenje na dno kućišta kontrolera tako da ga možete pričvrstiti na ruku i kopču za olovku koja se može zalijepiti za poklopac kada vam olovka ne treba u tvojoj ruci.

Postoje i poklopci za raspršivače koji se mogu upotrijebiti za ujednačavanje svjetla i sprječavanje bljeska kada olovka pokaže izravno u kameru.

Preporučeni: