INHOUDSOPGAWE:

Starry Sky Led Tie: 9 stappe (met foto's)
Starry Sky Led Tie: 9 stappe (met foto's)

Video: Starry Sky Led Tie: 9 stappe (met foto's)

Video: Starry Sky Led Tie: 9 stappe (met foto's)
Video: Штукатурка стен - самое полное видео! Переделка хрущевки от А до Я. #5 2024, November
Anonim
Image
Image
Sterrehemel Led Tie
Sterrehemel Led Tie
Sterrehemel Led Tie
Sterrehemel Led Tie

'N Rukkie gelede het ek 'n kinderspeelgoed met veseloptika in 'n dollarwinkel gekry en begin dink wat ek daarmee kan doen.

Een van die gekke idees wat ek gehad het, was om 'n das te maak met die effek van 'n sterrehemel.

Ek het nog 'n paar arduino pro mini's, adafruitborde en batterye laat lê wat waarskynlik by hierdie projek sou pas.

Dus, toe ek 'n mooi breë das in 'n pandjieswinkel in my stad kry en 'n boks vind wat by die hardeware pas, besluit ek om dit te probeer en te bou.

Hierdie instruksie wys jou hoe ek dit gemaak het.

Dit werk op 'n arduino pro mini, adafruit powerboost 500 laaier, emmerich icr 18650nh-sp en 5 wit LED's. Die kode maak die LED se helderheid van die willekeurige verandering. (Die eerste 40 sekondes van die video is 3x spoed)

Stap 1: Skema's en hardeware

Skema's en hardeware
Skema's en hardeware
Skema's en hardeware
Skema's en hardeware

Ek gebruik die volgende hardeware:

- PCB met yswit LED's en 220 Ohm weerstande.

-Arduino pro mini (ek het 'n knockoff gebruik)

-Adafruit Powerboost 500 laaier

-Emmerich Li-ion accu ICR-18650NH-SP

- Optiese vesels (in verskillende groottes)

Stap 2: Maak die PCB die gasheer van die LED's

Maak die PCB die gasheer van die LED's
Maak die PCB die gasheer van die LED's
Maak die PCB die gasheer van die LED's
Maak die PCB die gasheer van die LED's
Maak die PCB die gasheer van die LED's
Maak die PCB die gasheer van die LED's

Ek het 'n strook van 'n PCB afgesny om die LED's vas te hou en die LED -penne gebruik om dit aan die hoof PCB te soldeer.

Al die katodes (-) is gekoppel aan GND en die helfte van die penne gebruik om dit aan die hoof PCB vas te soldeer.

Al die anodes (+) is gekoppel aan weerstande en met kabels na die arduino.

LED's moet elk aan een van die volgende PWM -poorte gekoppel word: 3, 5, 6, 9, 10, 11

Ek het baie foute met hierdie projek gemaak en ek het vergeet om die korrekte PWM -poorte na te gaan, so ek moes later 'n paar keer oplos. Getoets met hoog/laag, so ek het dit eers later opgemerk.

Ek het begin met 7 LED's, maar daar was slegs 6 PWM -poorte en een van die LED's wat ek opgelos het, het gesterf. Ek het net die 5 werkende LED's gehou en gebruik nie die 6de nie.

Stap 3: Maak die boks

Die maak van die boks
Die maak van die boks
Die maak van die boks
Die maak van die boks
Die maak van die boks
Die maak van die boks
Die maak van die boks
Die maak van die boks

Ek gebruik 'n Bosch GRO (soos 'n Dremel) en 'n boor om die vorm van die battery, die knoppie, die mikro-usb-poort, die kopstukke van die Arduino en die optiese vesels uit te sny. (gebruik 'n stofmasker!)

Plak die battery met 2 bande aan die omhulsel vas.

Gebruik skroewe om die Adafruit -bord en die PCB te monteer.

Wrywing van die opening en sluiting beskadig sommige drade. Ek moes hulle oplos en gom gebruik om te verhoed dat dit weer gebeur.

Stap 4: Berei die das voor

Berei die das voor
Berei die das voor
Berei die das voor
Berei die das voor
Berei die das voor
Berei die das voor

Die stikwerk is van die onderste gedeelte van die das verwyder om by die rubbervel te pas.

Om die hardeware weg te steek en nog steeds toegang daartoe te verkry, het ek besluit om 'n rits te gebruik.

Ek is nie goed met 'n naaimasjien nie, so my lieflike ma het 'n rits aan die agterkant van die das gesit.

Nadat dit klaar was, het ek die rubbervel in die das vasgeplak. Ek was bang om te veel gom te gebruik wat die stof sou versadig en van voor af sigbaar was, so ek het probeer om dit gelyk te maak en nie te veel te gebruik nie. Oor die algemeen lyk dit goed, maar op 'n paar plekke het ek te veel of te min gom opgemerk omdat dit deur die stof gekom het of nie baie goed vasgesteek het nie. Gelukkig is dit net skaars van naby af in helder lig sigbaar.

Die boks en das is nou klaar. Tyd om die veseloptika vas te plak!

Stap 5: Plak die veseloptika vas

Plak die veseloptika vas
Plak die veseloptika vas
Plak die veseloptika vas
Plak die veseloptika vas
Plak die veseloptika vas
Plak die veseloptika vas
Plak die veseloptika vas
Plak die veseloptika vas

Die speelding het een groot bondel veseloptiese drade gehad wat maklik uitmekaar kon breek. Ek het dit eers een vir een probeer plak, maar het gou agtergekom dat dit beter is om klein bondels te maak en dit dadelik aan die LED vas te plak. Dit sal dit makliker maak om dit stabiel te hou totdat die gom droog is. Het die eerste LED deurmekaar geraak om dit uit te vind.

Gebruik 'n deursigtige gom! Die een wat ek gebruik het, het baie stadig gedroog en die vinnig droog gom wat ek op die eerste LED probeer het, het wit geword, wat 'n paar vesels van die eerste LED minder helder gemaak het.

Ek het klein swart rubberblaaie vasgeplak om te verhoed dat lig bo -op lek en om die LED's te skei.

Een van die velle het verhoed dat die boks toemaak, sodat ek 'n rekkie bygevoeg het om die deksel toe te hou.

Stap 6: Maak veseloptika deur die band

Maak veseloptika deur die band
Maak veseloptika deur die band
Maak veseloptika deur die band
Maak veseloptika deur die band
Maak veseloptika deur die band
Maak veseloptika deur die band

Aan die onderkant knyp ek gate met 'n naald en sit die vesels een vir een deur. Elke LED se vesels versprei willekeurig oor die das.

Ek het 'n swart strook aan die agterkant vasgeplak wat veronderstel was om tot by die kleiner deel van die das te gaan om die gewig van die boks te behou, maar nadat ek al die drade deurgesit het en die spanning van die drade gevoel het, het ek besluit om dit te plak alles aan die das was 'n beter idee en sny die strook af.

Aangesien die veseloptiese drade van die speelding so kort was, was dit moeilik om dit oor die hele das te pas. Ek was beperk in die posisionering van die boks en het dit moeilik gehad om alles so plat te maak as wat ek wou.

Stap 7: Plak veseloptika aan die das

Plak veseloptika aan die das
Plak veseloptika aan die das
Plak veseloptika aan die das
Plak veseloptika aan die das
Plak veseloptika aan die das
Plak veseloptika aan die das
Plak veseloptika aan die das
Plak veseloptika aan die das

Ek het al die veseloptiese drade aan die rubberplaat vasgeplak om te verhoed dat die drade uit die rubberblad getrek word en om die das plat te maak.

Om seker te maak dat ek nie die klem aan die das vasgeplak het toe ek druk daarop geplaas het nie, het ek 'n bietjie papier tussenin gesit. Dit lyk nie so wonderlik nie, maar werk goed. En jy sien dit nie as dit gesluit is nie.

Nadat die gom droog was, het ek die drade aan die voorkant afgesny en 'n bietjie van die rubberblad net bokant die hoogste draad afgesny, want die das was 'n bietjie te lank.

Foto's met die wit hemp word gemaak voordat ek die laaste stukkie rubber afsny.

Stap 8: Die kode

Onder die kode wat ek vir die das geskryf het.

Alle LED's het 'n vaste "gemiddelde" (eintlik nie 'n gemiddelde nie, maar 'n middelhelderheid).

Sodra dit die gemiddelde bereik het, besluit dit met 'n kans 3/4 om na 'n laer helderheid te gaan. Dit stel ook lukraak 'n nuwe minimum helderheid, maksimum helderheid, wagtyd vir minimum en maksimum helderheid in, en die snelheid wat dit elke ronde (1-255) verhoog of verlaag van 5 vooraf ingestelde waardes. Dan sal dit 'n siklus doen totdat dit weer die gemiddelde bereik. Slegs 2 LED's kan gelyktydig in 'n hoë siklus wees.

Elke toestand word voorgestel deur 'n heelgetalwaarde (1-7) wat bepaal of dit gemiddeld laag, laag gemiddeld, laag wag, opdateer, ens.

Besoek www.arduino.cc vir meer inligting oor die oplaai van kode na die arduino

/ * Starry Sky Tie * * Dit is 'n draaiboek om 5 LED's lukraak te vervaag van 'n gemiddelde tot 'n laer * of hoër helderheid met ewekansige laer, hoër en tydsinstellings * om soos 'n sterrehemel te lyk wanneer dit met veseloptika gebruik word. * In hierdie geval word hierdie in 'n staking van stappe geïmplementeer. * * Op/af kans = 1/4 op, 3/4 af, met 'n maksimum van 2 * terselfdertyd tot maksimum. * * Gemiddeld bly dieselfde. * Minimum, maksimum en tydsberekening verander ewekansig * van 5 opsies elke keer as 'n LED weer die gemiddelde bereik. * * Geskep deur Billy Jaspers, Mei 2019. *

/ Verklaar penne

int LED01 = 3; int LED02 = 5; int LED03 = 6; int LED04 = 9; int LED05 = 11;

// Tyd veranderlikes

ongetekende lang huidige tyd; ongetekende lang wagtyd [5]; ongetekende lang laasteRonde;

// LED veranderlikes

int brightMin [5] = {10, 10, 10, 10, 10}; // Minimum helderheid int brightAvg [5] = {200, 200, 200, 200, 200}; // Gemiddelde helderheid int brightMax [5] = {240, 240, 240, 240, 240}; // Maksimum helderheid int timeWaitLow [5] = {1000, 1000, 1000, 1000, 1000}; // Wagtyd int timeWaitAvg [5] = {5000, 5000, 5000, 5000, 5000}; // Wagtyd int timeWaitMax [5] = {4000, 3000, 3000, 3000, 3000}; // Wagtyd int inkrement [5] = {2, 5, 4, 5, 2}; // Toename in helderheid int currentBright [5] = {200, 230, 210, 210, 235}; // Huidige helderheid

// LED veranderlikes moontlikhede

int brightMinPos [5] = {5, 20, 40, 5, 20}; // Minimum moontlikhede vir helderheid int brightMaxPos [5] = {240, 245, 230, 225, 245}; // Maksimum helderheidsmoontlikhede int timeLowPos [5] = {3000, 5000, 4000, 2000, 1000}; // Wagtyd op lae helderheidsmoontlikhede int timeHighPos [5] = {3000, 1000, 500, 2000, 4000}; // Wagtyd op hoë helderheidsmoontlikhede int timeAvgPos [5] = {3000, 5000, 4000, 7000, 8000}; // Wagtyd op gemiddelde helderheidsmoontlikhede int incrementPos [5] = {2, 4, 5, 3, 1}; // toename in helderheidsmoontlikhede

// Veranderlikes

bool opstart = waar; // Moet die begininstellings begin word?

// Direksionele veranderlikes

/* 0 = Wag gemiddeld 1 = gaan gemiddeld na laag 2 = wag laag 3 = gaan laag na gemiddelde 4 = gaan gemiddeld na maksimum 5 = wag op maksimum 6 = gaan hoog na gemiddelde 7 = verander veranderings*/ int statusLED [5] = {0, 0, 0, 0, 0}; int amountHighLED = 0; int refreshRate = 50; bool statusWaiting [5] = {vals, vals, vals, vals, vals}; // Wag die Led?

// Willekeurige veranderlikes

lang randomNumber; // Lank om ewekansige getal lank randomNumberTwo op te slaan; // Lank om die tweede ewekansige getal te stoor

// tellers

int i = 0; // Teller vir hooflus

ongeldige opstelling () {

Serial.begin (115200); // Begin seriële randomSeed (analogRead (A0)); // Stel ewekansige saad in

// Verklaar uitsette

pinMode (LED01, OUTPUT); pinMode (LED02, UITGANG); pinMode (LED03, UITGANG); pinMode (LED04, UITGANG); pinMode (LED05, UITGANG); }

// Skryf data aan LED's

void writeToLED () {analogWrite (LED01, currentBright [0]); analogWrite (LED02, currentBright [1]); analogWrite (LED03, currentBright [2]); analogWrite (LED04, currentBright [3]); analogWrite (LED05, currentBright [4]); }

// Hooflus

nietige lus () {if (opstart) {// opstartinstellings lastRound = millis (); // Stel lastRound in vir boot writeToLED (); // Skryf begindata na LED opstart = vals; // Skakel opstart} currentTime = millis () af; // Stel huidige tyd in

if (currentTime - lastRound> = refreshRate) {

vir (i = 0; i <5; i ++) {if (statusLED == 7) {// -7- Opdatering van Led randomNumber = random (5); brightMin = brightMinPos [randomNumber]; // Stel ewekansige waarde in vir minimum helderheid randomNumber = random (5); brightMax = brightMaxPos [randomNumber]; // Stel ewekansige waarde in vir maksimum helderheid randomNumber = random (5); timeWaitLow = timeLowPos [randomNumber]; // Stel ewekansige waarde in vir lae wagtyd randomNumber = random (5); timeWaitMax = timeHighPos [randomNumber]; // Stel ewekansige waarde in vir hoë wagtyd randomNumber = random (5); timeWaitAvg = timeAvgPos [randomNumber]; // Stel ewekansige waarde in vir die gemiddelde wagtyd randomNumber = random (5); inkrement = incrementPos [randomNumber]; // Stel ewekansige waarde in vir inkrementwaarde randomNumber = random (2); // Stel ewekansige waarde vir rigting randomNumberTwo = random (2); // Stel ewekansige waarde vir rigting in as (randomNumber == 1 && randomNumberTwo == 0 && amountHighLED = brightAvg ) {statusLED = 0; // As op die laagste punt: Gaan na Waiting Avg} anders {currentBright = currentBright +inkrement ; // Anders: Hoër helderheid}} anders as (statusLED == 2) {// -2- Waiting Low if (! StatusWaiting ) {// If not waiting: waitingTime = millis (); // Stel wagtydstatus in Wag = waar; // Begin wag} anders as (statusWaiting && currentTime-waitingTime > = timeWaitLow ) {// As wag EN timeWaitAvg geslaag het: statusWaiting = false; // Stop wag statusLED = 3; // Stel statusLed in op Waiting for update}} anders as (statusLED == 1) {// -1- Gemiddeld na laag gaan as (currentBright <= brightMin ) {statusLED = 2; // As op die laagste punt: Gaan na Waiting Low} anders {currentBright = currentBright -verhoging ; // Anders: Laer helderheid}} anders as (statusLED == 6) {// -6- Gaan maksimum na gemiddelde as (currentBright = timeWaitMax ) {// As wag EN tydWaitAvg verby is: statusWaiting = vals; // Stop wag statusLED = 6; // Stel statusLed in op Waiting for update}} anders as (statusLED == 4) {// -4- Gem. Na Max gaan as (currentBright > = brightMax ) {statusLED = 5; // As op die laagste punt: Gaan na Waiting High} anders {currentBright = currentBright +inkrement ; // Anders: Hoër helderheid}} anders as (statusLED == 0) {// -0- Wag gemiddeld as (! StatusWaiting ) {// As nie wag nie: waitingTime = millis (); // Stel wagtydstatus in Wag = waar; // Begin wag} anders as (statusWaiting && currentTime-waitingTime > = timeWaitAvg ) {// As wag EN timeWaitAvg geslaag het: statusWaiting = false; // Stop wag statusLED = 7; // Stel statusLed in op Wag vir opdatering}}} i = 0; lastRound = millis (); // Stel wanneer die laaste rondte klaar is. writeToLED (); // Skryf alle data by die LED's}}

Stap 9: Finale produk

Image
Image
Finale produk
Finale produk
Finale produk
Finale produk

Ek dink dit het goed uitgewerk. Die das is nie te dik, styf, lank of swaar nie en die ster -effek lyk ongelooflik.

Aanbeveel: