INHOUDSOPGAWE:
- Stap 1: skuimbord, battery en aan/uit -skakelaar
- Stap 2: Mikrobeheerder en stroombaan
- Stap 3: Veseloptiese ligte
- Stap 4: Programmering
- Stap 5: Finale produk
Video: Vesel-optiese ligte in doekafdruk: 5 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
Hierdie projek gee 'n unieke draai aan 'n standaard doekafdruk. Ek het in 4 verskillende beligtingsmodusse geprogrammeer, maar u kan maklik meer byvoeg. Die modus word verander elke keer as u dit aan- en uitskakel in plaas van 'n aparte knoppie om die raam skade te verminder. Die batterye behoort meer as 50 uur se gebruik te hou - ek is nie regtig seker nie, maar ek het 'n soortgelyke projek vir 'n vriend gemaak en dit het meer as 5 keer soveel ligte gebruik en meer as 20 uur op 'n enkele stel batterye geduur.
Materiaal
- Seilafdruk met werkbare ruimte - ek het myne by https://www.easycanvasprints.com bestel omdat hulle goeie pryse en 'n oop rug gehad het. Die dikker raam van 1,5 "was perfek en het my baie ruimte gegee om die veseloptiese drade te buig. Boonop wil u 'n prentjie hê wat u 3" by 8 "werkbare ruimte bied vir die battery en mikrobeheerder en LED -stroke
- LED -strookligte - ek het adresbare WS2812 LED -stroke gebruik. Moenie geïntimideer word nie, dit is baie maklik om te gebruik met die FastLED- of Neopixel -biblioteke! U kan ook enige standaard LED -strook gebruik; u kan nie elke liggedeelte afsonderlik beheer sonder baie meer bedrading nie.
- Mikrokontroleerder - ek het 'n Arduino Uno gebruik, maar u kan omtrent alles vir hierdie projek gebruik.
- Batterypak - ek het hierdie by eBay (uit China) bestel en dit was getiteld "6 x 1.5V AA 2A CELL Battery Battery Holder"
- Optiese veselstringe - weereens bestel uit China op eBay - "PMMA Plastic Fiber Optic Cable End Grow Led Light DIY Decor" of "PMMA End Glow Fiber Optic Cable for Star Ceiling Light Kit". Ek het groottes 1 mm en 1,5 mm gebruik, ek beveel eintlik aan om kleiner as dit te gebruik.
- Aan/uit skakelaar - "SPDT aan/aan 2 -posisie miniatuur skakelaars"
- Draadorganisasie clips - dit help om die veseloptiese stringe mooi en netjies te hou.
- Skuimbord, soliede kern -aansluitdraad, krimpbuis
Gereedskap
- Dremel - gebruik om die aan/uit -skakelaar in die prentraamwerk te maak. Dit kan miskien bereik word met 'n boor en 'n baie groot bietjie, maar ek beveel dit nie aan nie.
- Soldeerbout - heg drade aan die LED -strook
- Warm gom geweer - letterlik elke stap van hierdie projek
- Groot naald - om gate deur die doek te steek en skuimplank vir die ligte
Stap 1: skuimbord, battery en aan/uit -skakelaar
Voordat u iets anders doen, moet u 'n stuk skuimplank aan die agterkant van die doekafdruk heg. Dit gee ons 'n mooi soliede oppervlak om al die ander dinge aan te heg en help om die veseloptiese drade vas te hou. Gebruik net 'n exacto -mes of 'n doeksnyer om 'n stuk skuimbord in die regte grootte te sny en dit op baie plekke warm te plak. Ek beveel aan dat u swart skuimplank gebruik sodat dit nie deur soveel lig laat vloei nie.
Ek het die dremelboor gebruik wat soos 'n gewone boorpunt lyk, maar eintlik baie goed is om materiaal te verwyder. Dit is een van die stukkies wat by enige dremel behoort te kom. Gebruik 'n blikkie pers lug om ontslae te raak van enige saagsels van die dremel.
Warm gom alles op sy plek. Maak seker dat die battery baie goed aangeheg is, want dit verg 'n bietjie krag om 'n battery te plaas/verwyder en u wil nie hê dat die batteryhouer êrens heen moet gaan nie.
Stap 2: Mikrobeheerder en stroombaan
Ek plaas die aan / uit -skakelaar voor die Arduino UNO, sodat as u die skakelaar aanskakel, niks uit die batterye kom nie. Dit moet help om die batterye so lank as moontlik te hou as die projek nie aangeskakel is nie. Arduino -borde is berug op swak bestuur - hulle gebruik baie stroom as hulle aangeskakel is, selfs al doen hulle niks aktief nie.
Koppel die positiewe kant van die battery in die VIN (spanningsinvoer) van die mikrokontroleerder sodat dit die ingeboude spanningsreguleerder van die kontroleerder gebruik om die spanning na die 5V wat dit benodig, af te bring. As ons meer ligte aandryf, moet ons moontlik ons eie spanningsreguleerder daarvoor gebruik, maar die UNO behoort 5 LED's te kan hanteer.
Ek het 'n weerstand tussen die data -uitset en die LED -strook gebruik om die sein glad te maak - sonder die weerstand kan u willekeurige pixels flits. Die grootte van die weerstand maak nie regtig saak nie; enigiets tussen 50Ω en 400Ω behoort te werk.
Stap 3: Veseloptiese ligte
Na 'n bietjie proef en fout het ek uiteindelik 'n goeie manier gevind om die veseloptiese drade deur die doek te kry.
- Gebruik die grootste naald om 'n gat deur die voorkant van die doek en skuimplank te steek. Ek beveel aan dat u elke gat wat u wil aan die begin steek, sodat u dit kan omdraai en kyk waar u die kabelorganisasieknipsels kan/nie kan plaas nie
- Neem 'n tang met 'n naald en gryp die veseloptiese draad minder as 'n sentimeter van die einde af
- Steek die veseloptiese draad deur die gat wat u met 'n naald gemaak het
- Lei die draad deur verskillende plastiekklemme tot waar dit effens langer is as wat nodig is - ons sny dit later
- Plaas 'n druppel warm gom op die veseloptiese draad waar dit deur die skuimplank steek, met u warm lijmpistool op die lae temperatuur -instelling (as dit die opsie het). Alternatiewelik kan u die blou taai goed gebruik. Die warm gom vervorm die draad 'n bietjie, maar dit lyk nie asof dit te veel met die optiese eienskappe mors nie
- Sny die draad 'n bietjie weg van die doek met behulp van draadknipers.
Om die proses te bespoedig, kan u deur baie vesels in 'n ry steek voordat u die warm gom aanbring. Hulle moet oor die algemeen alleen bly.
Wees versigtig om nie die optiese veselstringe op die tafel te breek of te knyp nie - dit breek en as dit die snoer te kort maak, is u hartseer en moet u dit weer doen. Gebruik die battery as 'n teengewig, sodat u die raam minder as die helfte op die lessenaar kan hê.
Omdat ek wit skuimplank gebruik het in plaas van swart, skyn daar baie lig toe die LED's aan was. Ter bevestiging het ek aluminiumfoelie tussen die ligte en die doek vasgemaak.
Gebruik 'n hitte -krimpslang om elke bondel veseloptiese drade bymekaar te hou.
- Sny die drade van die bondel ongeveer dieselfde lengte
- Plaas die gedeelte deur die krimpbuis
- Gebruik 'n hittegeweer of soldeerbout om dit te krimp. As u 'n soldeerbout gebruik, laat die kant van die yster liggies aan die buis raak, dan krimp dit. Dit moet die buis nie smelt nie, want dit is ontwerp vir 'n bietjie hitte.
Uiteindelik het ek warm gom gebruik om die einde van die bondel aan elke LED -lig vas te maak. Ek het baie warm gom gebruik sodat die vesels eintlik lig kry van elke rooi/groen/blou diode in die lig - as die vesels baie naby die lig is, 'n "wit" kleur (wat eintlik rooi en groen en blou is) dan is sommige vesels net rooi en sommige groen, in plaas daarvan dat hulle wit is. Dit kan verbeter word deur 'n stuk papier of iets anders te gebruik om dit te versprei, maar warm gom het goed genoeg vir my gewerk.
Stap 4: Programmering
In die programmering hiervan het ek drie biblioteke gebruik
FastLED - 'n uitstekende biblioteek vir die beheer van WS2812 LED -stroke (en vele ander adresseerbare LED -stroke) -
Arduino Low Power - Ek weet nie hoeveel krag dit eintlik bespaar nie, maar dit was baie maklik om te implementeer en behoort 'n klein bietjie krag te bespaar op die funksie wat net wit ligte is en dan vir ewig te vertraag.
EEPROM - Word gebruik om die huidige modus van die projek te lees/op te slaan. Dit laat die projek toe om die kleurmodus te verhoog elke keer as u dit aan en weer aanskakel, wat die behoefte aan 'n aparte knoppie uitskakel om die modus te verander. Die EEPROM -biblioteek word geïnstalleer wanneer u die Arduino IDE installeer.
Ek het ook 'n skets gebruik om die ligte te laat blink wat iemand anders opgestel het. Dit lig ewekansig 'n pixel van 'n basiskleur na 'n piek kleur en dan terug. https://gist.github.com/kriegsman/88954aae22b03a66… (dit gebruik ook die FastLED -biblioteek)
Ek het ook die vMicro -inprop vir Visual Studio gebruik - dit is 'n versterkte weergawe van die Arduino IDE. Dit bevat baie handige outovoltooi -funksies en beklemtoon probleme in u kode sonder om dit op te stel. Dit kos $ 15, maar dit is die moeite werd as u meer as een Arduino -projek gaan maak, en dit sal u dwing om meer te leer oor Visual Studio, 'n baie kragtige program.
(Ek heg ook die kode.ino -lêer aan omdat die Instructable hosting van 'n Github Gist baie leë spasies in die lêer vernietig)
Die Arduino -kode bevat vier kleurmodusse op 'n Arduino UNO vir 'n paar WS2812B LED -strookligte met behulp van die FastLED -biblioteek
#insluit |
#insluit |
#insluit |
// FastLED -opstelling |
#definieerNUM_LEDS4 |
#definieerPIN3 // Dataspeld vir LED -strook |
CRGB -leds [NUM_LEDS]; |
// Twinkle -opstelling |
#defineBASE_COLORCRGB (2, 2, 2) // Basis agtergrondkleur |
#definePEAK_COLORCRGB (255, 255, 255) // Piek kleur om te blink |
// Bedrae om die kleur met elke lus te verhoog namate dit helderder word: |
#defineDELTA_COLOR_UPCRGB (4, 4, 4) |
// Bedrag om die kleur met elke lus te verminder namate dit dowwer word: |
#defineDELTA_COLOR_DOWNCRGB (4, 4, 4) |
// Die kans dat elke pixel begin opklaar. |
// 1 of 2 = 'n paar verhelderende pixels op 'n slag. |
// 10 = baie pixels wat op 'n slag helder word. |
#definieerCHANCE_OF_TWINKLE2 |
enum {SteadyDim, GettingBrighter, GettingDimmerAgain}; |
uint8_t PixelState [NUM_LEDS]; |
byte runMode; |
byte globalBright = 150; |
byte globalDelay = 20; // Vertraag spoed vir flikker |
byte adres = 35; // Adres om die uitvoermodus te stoor |
voidsetup () |
{ |
FastLED.addLeds (leds, NUM_LEDS); |
FastLED.setCorrection (TypicalLEDStrip); |
//FastLED.setMaxPowerInVoltsAndMilliamps(5, maxMilliamps); |
FastLED.setBrightness (globalBright); |
// Kry die modus om uit te voer |
runMode = EEPROM.read (adres); |
// Verhoog die run mode met 1 |
EEPROM.write (adres, runMode + 1); |
} |
voidloop () |
{ |
skakelaar (runMode) |
{ |
// Soliede wit |
case1: fill_solid (leds, NUM_LEDS, CRGB:: White); |
FastLED.show (); |
DelayForever (); |
breek; |
// Knip effens stadig |
case2: FastLED.setBrightness (255); |
globalDelay = 10; |
TwinkleMapPixels (); |
breek; |
// Glinster vinnig |
case3: FastLED.setBrightness (150); |
globalDelay = 2; |
TwinkleMapPixels (); |
breek; |
// Reënboog |
saak 4: |
RunRainbow (); |
breek; |
// Indekseer buite bereik, stel dit terug op 2 en voer dan modus 1 uit. |
// As die arduino weer begin, loop dit modus 2, maar werk tans modus 1 |
verstek: |
EEPROM.write (adres, 2); |
runMode = 1; |
breek; |
} |
} |
voidRunRainbow () |
{ |
greep *c; |
uint16_t i, j; |
terwyl (waar) |
{ |
vir (j = 0; j <256; j ++) {// 1 siklus van alle kleure op wiel |
vir (i = 0; i <NUM_LEDS; i ++) { |
c = wiel (((i * 256 / NUM_LEDS) + j) & 255); |
setPixel (i, *c, *(c + 1), *(c + 2)); |
} |
FastLED.show (); |
vertraging (globalDelay); |
} |
} |
} |
byte * wiel (byte WheelPos) { |
statiese greep c [3]; |
as (WheelPos <85) { |
c [0] = WheelPos * 3; |
c [1] = 255 - WheelPos * 3; |
c [2] = 0; |
} |
elseif (WheelPos <170) { |
WheelPos -= 85; |
c [0] = 255 - WheelPos * 3; |
c [1] = 0; |
c [2] = WheelPos * 3; |
} |
anders { |
WheelPos -= 170; |
c [0] = 0; |
c [1] = WheelPos * 3; |
c [2] = 255 - WheelPos * 3; |
} |
terugkeer c; |
} |
voidTwinkleMapPixels () |
{ |
InitPixelStates (); |
terwyl (waar) |
{ |
vir (uint16_t i = 0; i <NUM_LEDS; i ++) { |
as (PixelState == SteadyDim) { |
// hierdie pixels is tans: SteadyDim |
// sodat ons dit lukraak oorweeg om dit helderder te laat word |
as (random8 () <CHANCE_OF_TWINKLE) { |
PixelState = GettingBrighter; |
} |
} |
elseif (PixelState == GettingBrighter) { |
// hierdie pixels is tans: GettingBrighter |
// so as dit 'n maksimum kleur het, moet u dit weer dowwer maak |
as (leds > = PEAK_COLOR) { |
PixelState = GettingDimmerAgain; |
} |
anders { |
// andersins, hou net aan om dit op te helder: |
leds += DELTA_COLOR_UP; |
} |
} |
anders {// word dit weer dowwer |
// hierdie pixels is tans: GettingDimmerAgain |
// as dit terug is na die basiskleur, verander dit na 'n konstante dim |
as (leds <= BASE_COLOR) { |
leds = BASE_COLOR; // herstel na die presiese basiskleur, as ons oorskiet |
PixelState = SteadyDim; |
} |
anders { |
// andersins, hou net aan om dit te verduister: |
leds -= DELTA_COLOR_DOWN; |
} |
} |
} |
FastLED.show (); |
FastLED.delay (globalDelay); |
} |
} |
voidInitPixelStates () |
{ |
memset (PixelState, grootte van (PixelState), SteadyDim); // initialiseer al die pixels na SteadyDim. |
fill_solid (leds, NUM_LEDS, BASE_COLOR); |
} |
voidDelayForever () |
{ |
terwyl (waar) |
{ |
vertraging (100); |
LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF); |
} |
} |
voidshowStrip () { |
FastLED.show (); |
} |
voidsetPixel (int Pixel, byte rooi, byte groen, byte blou) { |
// FastLED |
leds [Pixel].r = rooi; |
leds [Pixel].g = groen; |
leds [Pixel].b = blou; |
} |
sien rawFiberOptic_ClemsonPic.ino aangebied deur ❤ deur GitHub
Stap 5: Finale produk
Ta-da! Ek hoop dat hierdie instruksies iemand anders inspireer om hul eie soortgelyke projek te maak. Dit was regtig nie moeilik nie, en ek was verbaas dat niemand dit gedoen het nie en het nog 'n deeglike instruksie daaroor geskryf.
Aanbeveel:
Disco -ligte van RGB met Arduino op TinkerCad: 3 stappe
Disco -ligte van RGB deur Arduino op TinkerCad te gebruik: sodra u die RGB aangeskakel het, is dit maklik om die kleur van die RGB te beheer met behulp van PWM -uitset of analoog -uitvoer, vir Arduino kan u analogWrite () op penne 3, 5, 6 gebruik , 9, 10, 11, A0, A1, A2, A3, A4, A5 (vir klassieke Arduinos met die Atmega328 of 1
Roterende kersboom en programmeerbare ligte met Arduino: 11 stappe
Roterende kersboom en programmeerbare ligte met Arduino: Roterende kersboom en programmeerbare ligte met Arduino Die projek sal sien hoe om 'n roterende kersboom met arduino te maak, 'n koeler, 'n geperforeerde eksperimentele bord, LED -ligte en 'n paar ander elektroniese elemente
Ligte termometer - Vitamineerde tuinlig (eNANO De Jardin): 6 stappe
Ligte termometer - Vitamineerde tuinlig (eNANO De Jardin): Vitamineerde tuinlig met arduino NANO en 'n temperatuursensor BMP180. Ons nederige tuinlig het 'n geheime krag: dit kan die buitentemperatuur aandui deur middel van 'n kleurkode en sy werking is soos volg: dit is
(UPDATE - DAAR IS 'N LIGTE KWESSIE) USB -SPELBEHEERDER VIR PC: 10 stappe (met foto's)
(UPDATE - DAAR IS 'N GELUKKIGE KWESSIE) USB -SPELBEHEERDER VIR PC:' N SPELBEHEERDER VIR ENIGE SPEL (AMPER)
Dekoratiewe RGB -ligte met 'n Arduino: 4 stappe
Dekoratiewe RGB -ligte met 'n Arduino: Aangesien Kersaand net 'n week weg is, het ek besluit om 'n eenvoudige RGB -dekoratiewe lig te bou met 'n Arduino Nano en WS2812B LED's. Ons gebruik 'n paar plastiekhouers/potte om die visuele effek te verbeter. Hierdie video gebruik 5 LED's, maar dit kan verhoog word tot