INHOUDSOPGAWE:
- Stap 1: Skema's en hardeware
- Stap 2: Maak die PCB die gasheer van die LED's
- Stap 3: Maak die boks
- Stap 4: Berei die das voor
- Stap 5: Plak die veseloptika vas
- Stap 6: Maak veseloptika deur die band
- Stap 7: Plak veseloptika aan die das
- Stap 8: Die kode
- Stap 9: Finale produk
Video: Starry Sky Led Tie: 9 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
'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
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
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
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
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
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
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
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
Ek dink dit het goed uitgewerk. Die das is nie te dik, styf, lank of swaar nie en die ster -effek lyk ongelooflik.
Aanbeveel:
Grid Tie Inverter: 10 stappe (met foto's)
Grid Tie Omskakelaar: Dit is 'n vleisagtige projek, so maak vas! Omvormers met roosterbande stel u in staat om die krag in 'n netaansluiting te druk, wat 'n wonderlike vermoë is. Ek vind die kragelektronika en beheerstelsels wat by die ontwerp betrokke is, interessant, daarom het ek my eie gebou. Hierdie verslag s
Sonic Bow Tie, deur David Boldevin Engen: 4 stappe (met foto's)
Sonic Bow Tie, deur David Boldevin Engen: 'n Kompakte strikdas wat voortdurend die omliggende klank in vier verskillende frekwensies kan vertoon op sy twee gespieelde 4x5 LED -skikkings. in enige skare. Wat jy sal
Bou 'n weer -dashboard met behulp van Dark Sky API: 5 stappe (met foto's)
Bou 'n weer -dashboard met behulp van Dark Sky API: Dark Sky spesialiseer in weervoorspelling en visualisering. Die coolste aspek van Dark Sky is hul weer -API wat ons kan gebruik om die weerdata van byna oral ter wêreld op te haal. Dit is nie net reënerig of sonnig nie, maar temperatuur
Hoe om 'n rekenaar met maklike stappe en foto's uitmekaar te haal: 13 stappe (met foto's)
Hoe om 'n rekenaar uitmekaar te haal met eenvoudige stappe en foto's: dit is 'n instruksie oor hoe om 'n rekenaar uitmekaar te haal. Die meeste basiese komponente is modulêr en kan maklik verwyder word. Dit is egter belangrik dat u daaroor georganiseerd is. Dit sal u verhinder om onderdele te verloor, en ook om die montering weer
SKY CAM 'n oplossing vir lugfoto's: 10 stappe (met foto's)
SKY CAM 'n Oplossing vir lugfoto's: hierdie instruksies sal u leer hoe ek 'n afstandbeheer (semi -outonome) kabelkamstelsel vir my GCSE elektroniese produkte -projek op skool gemaak het, en u hopelik in staat sal stel om u eie stelsel te skep! Dit is bedoel as 'n rowwe gids