Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino gecontroleerde kunstmatige kaarslichten

Componenten en benodigdheden

SparkFun LED - SMD RGB (WS2812)
Ik plaatste de LED's in modules van 4 en had 11 modules nodig
× 44
Arduino Nano R3
× 1
Fotoweerstand
× 1
IKEA "MONTERA" kabelkanaal
× 2
Mannelijke kop 40 positie 1 rij (0,1")
× 7
M20-1060300 Wire-To-Board Connector, M20-1 Serie, Krimp, Contactdoos, 3, 2,54 mm
Je hebt er 2 nodig per LED-module (van 4 LED's) (en mogelijk een paar extra)
× 25
M20-1180046 Contact, M20 Series, Socket, Crimp, 22 AWG, vertinde contacten, M20-serie vrouwelijke krimpbehuizing
Je hebt er 6 nodig per LED-module, maar ze worden geleverd in een pakket van 100, dus 1 pakket kan voldoende zijn
× 1

Benodigde gereedschappen en machines

Soldeerbout (algemeen)

Over dit project

Een tijdje geleden ben ik begonnen met een project om onze atriumkamer, die in de herfst- en wintertijd een beetje te somber wordt, subtiel te verlichten. Ik wilde iets natuurlijkers dan harde LED-lampen, bij voorkeur de live-look van flikkerende kaarsen.

Voor de ongeduldige mensen (die niet helemaal naar beneden willen scrollen om een ​​video te vinden), dit is het resultaat:

...en een kerstversie:

Nu, terug naar het verhaal:

Maar creëer een realistische kunstmatige vlam is geen gemakkelijke taak, dus mijn idee was om de lichten zo te plaatsen dat je de "vlam" niet direct ziet, maar alleen het licht dat het produceert, dansend op de muur.

Omdat de ruimte grotendeels uit glazen wanden bestaat, lag het voor de hand om het licht te laten projecteren op de witte balken die de ramen vasthouden. Ik besloot de lichten aan de onderkant van de horizontale straal te plaatsen, waardoor het licht naar beneden werd geprojecteerd op de verticale stralen.

Voorbereiding en planning

Omdat ik elke "kaars" afzonderlijk wilde kunnen bedienen, was de keuze voor LED-licht eenvoudig; het zou natuurlijk een set op WS2812 gebaseerde LED-modules moeten zijn, dus bestelde ik 100 individuele LED's.

Zoals je kunt zien in de afbeelding hierboven heeft elke LED zes aansluitingen – en een richting gemarkeerd met een pijl op de achterkant.

Twee van de aansluitingen zijn gemarkeerd met 5V , twee zijn GND en dan is er de Din (Data In) en de Dout (Gegevens uit). De twee 5V zijn verbonden en dat geldt ook voor de twee GND s. Dus in de praktijk zijn er vier verbindingen; 5V , GND , Din en Dout .

Na wat experimenteren met verschillende aantallen LED's per "kaars" kwam ik op een aantal van vier . Met dit aantal kon ik genoeg interessante lichtmanipulaties op elke straal maken om een ​​realistische kaarslook te krijgen zonder al te veel LED's te eisen.

Als ik het echter opnieuw zou moeten doen, zou ik een set 2-bij-2-LED-modules hebben besteld, om de montage te vereenvoudigen.

De controller hoefde niet erg geavanceerd te zijn, en mijn veronderstelling was dat een Arduino Nano zou volstaan.

De plaatsing van de Arduino lag niet voor de hand. Uiteindelijk heb ik ervoor gekozen om het op de horizontale balk zelf te plaatsen, achter de dikke pilaar die zichtbaar is op de eerste foto hierboven (ver naar links). De pilaar is geplaatst in de hoek van de kamer waar de twee glazen wanden samenkomen (waarvan de "juiste" muur op de foto is te zien). Op deze manier kon ik de LED's op twee parallelle strings hebben - één voor elke muur - om de fysieke lengte van elke string te minimaliseren. Nu zou de totale lengte van elke snaar ongeveer 4 meter (13 ft) zijn in plaats van er twee keer zoveel te hebben.

De Adafruit NeoPixel Überguide was hier heel goed te lezen; als je van plan bent om met WS2812 LED-modules te spelen, moet je deze zeker doorlezen! Het vertelde me bijvoorbeeld waarom het goed is om de fysieke lengte van de draden te beperken.

Kabels verbergen...

...was in mijn geval niet zo moeilijk aangezien de LED's aan de onderkant van de horizontale balk moesten worden geplaatst. Ik zocht naar een goedkope kabelzender en vond er een op IKEA (ik kan niet zeggen of het ironisch of duidelijk is, omdat ik uit Zweden kom).

De LED-modules zelf werden eenvoudig geplaatst met een sterke dubbelzijdige plakband.

De LED-modules maken

Omdat ik niet alles aan elkaar wilde solderen op een enkele string van volledige lengte (ik stelde me de kabeljauw voor die ik zou tegenkomen als ik het ding aan de onderkant van de balk zou installeren) besloot ik de LED-modules te bouwen met connectoren voor de kabels.

De LED-modules moesten net naast de verticale balken worden geplaatst om er zoveel mogelijk licht op te laten reflecteren. Ik wilde ook dat de kabel dicht bij de straal kwam - en ik moest de richting van de LED's respecteren. Hierdoor kreeg ik (geen woordspeling bedoeld) twee versies van de module; één opstelling geplaatst op de string die naar rechts gaat van de Arduino en een gaat links .

De twee moduleversies vereisten twee unieke soldeerlay-outs, waarbij het belangrijkste verschil was om de gegevensstroom van de juiste LED naar de volgende te laten gaan.

Omdat de LED's vrij klein zijn, ongeveer 9 millimeter in diameter (3/8"), was het niet eenvoudig om ze te solderen; en gezien mijn gebrek aan soldeerervaring is het resultaat niet zo mooi en mooi. Maar het werkte.

Het solderen

Voor het solderen heb ik een 2-bij-2 LED-module afgesneden van de originele 2-bij-5 secties. Daarna schilderde ik het ene uiteinde rood en het andere zwart om de zijkanten dicht bij de 5V en GND te markeren (om domme fouten te voorkomen).

Stap 1 De eerste soldeeroefening was om een ​​'druppel' soldeer op het kleine metalen eilandje op elke LED te plaatsen.

De volgende stap was het aansluiten van de eenvoudige rechte, nabije verbindingen.

Vervolgens moesten de volgende kabels hun isolatie behouden, omdat ze over elkaar heen gingen.

Al met al waren er vijf balken in elke richting – plus de hoekbalk – wat een totaal van elf balken opleverde. Aangezien elke LED-module vier LED's had, is het aantal individuele LED's 44.

Na een paar modules had ik het onder de knie en kon ik uiteindelijk in ongeveer 30 minuten een complete module solderen.

De "korte-kabel-truc"

Veel van de kleine kabels hadden hun isolatie nodig, maar het was moeilijk om net genoeg isolatie aan elk uiteinde af te snijden om de binnenkern bloot te leggen wanneer de totale lengte van de kabel minder dan een centimeter was.

Toen bedacht ik deze (voor de hand liggende) truc:

1. Soldeer het ene uiteinde van de kabel, buig en knip het op de gewenste lengte. (In dit voorbeeld moet het niet-gesoldeerde uiteinde worden aangesloten op de Dout van de LED rechtsonder in de afbeelding hieronder.)

2. Schuif de isolatie een beetje naar beneden.

3. Snijd de gewenste lengte af van de vrijgekomen isolatie.

4. Schuif de isolatie terug, zodat de kern aan het vrije uiteinde zichtbaar wordt. Tadaa!

Op deze manier kon de exacte lengte van de blootliggende kabelkern worden gemaakt, en het resultaat was best mooi:

Voltooien van de LED-modules

Uiteindelijk moeten de LED-modules ondersteboven op de balk worden bevestigd, dus de gesoldeerde, met kabel gevulde achterkant moet voorbereid zijn om de plakband vast te houden.

Ik kwam om wat willekeurig plat plastic te gebruiken dat ik eenvoudig in vierkanten sneed. Deze werden eenvoudig met hete lijm aan de LED-modules bevestigd.

Hier zijn alle volledige modules! Hoera!

(Op dit punt was het van vitaal belang om er een markering op te hebben, om de links te scheiden van degenen die naar rechts gaan!)

De complete modules waren eenvoudig te bevestigen met behulp van sterke plakband op hun nu platte achterkant.

De kabels maken

Gelukkig had ik nog een rol oud telefoonverlengsnoer liggen. Deze kabel had vier aparte draden, wat meer dan genoeg was, aangezien ik drie draden nodig had (5V, GND en data).

Het monteren van de vrouwelijke sockets zonder het speciale krimpgereedschap was niet zo eenvoudig, maar wel goed te doen.

Het kabelkanaal was eenvoudig te monteren; snijd het gewoon in geschikte lengtes en gebruik het vooraf bevestigde plakband om het aan de horizontale balk te bevestigen.

Zo zag een voltooide gemonteerde module eruit:

Automatische activering en deactivering

Omdat ik de lampen niet handmatig aan wil doen als het donker wordt en daarna weer uit wil doen, heb ik een fotoweerstand ingebouwd.

Ik wilde geen simpele aan/uit, maar een geleidelijke verandering van lichtintensiteit tijdens de schemering. Om deze reden moest ik de analoge waarde van mijn fotoweerstand weten op het moment dat ik 's avonds besloot dat "daglicht" in "schemering" veranderde en het punt waarop "schemering" in "duisternis" veranderde.

In de onderstaande grafiek geeft de rode curve de analoge aflezing van de fotoweerstand weer terwijl deze gedurende een dag verschuift (geen echte aflezing hieronder, alleen mijn tekening uit de vrije hand). De twee vage horizontale lijnen markeren de twee niveaus; de bovenste is de grens waar "daglicht" verandert in "schemering" en de onderste waar "twilight" verandert in "duisternis". Dus als de rode curve zich boven de bovenste horizontale lijn bevindt, beschouw ik het als DAG, en als het onder de onderste is, is het NACHT.

De groene rechter lijn is de "schoongemaakte" daglichtmeting, d.w.z. minimum (0,0) 's nachts en maximum (1,0) overdag, en een lineaire helling bij schemering.

Om de werkelijke analoge metingen te weten, heb ik vier fotoweerstanden aangesloten op een Arduino samen met een LCD-scherm om de huidige, minimale en maximale waarden van de vier weerstanden te tonen. Ik gebruikte er vier omdat ik niet wist of ik een slechte had, dus als de meeste van hen ongeveer dezelfde waarde zouden hebben, wist ik dat ze zouden werken. Uiteraard plaatste ik het apparaat op dezelfde plek waar ik van plan was om de Arduino uiteindelijk de LED's te laten aansturen. Zo zag het eruit:

Omdat het LCD-scherm vrij beperkt is, liet ik de uitlezing van één fotoweerstand tegelijk ongeveer vijf seconden lang zien. Overdag ging ik er af en toe langs en schreef de getallen op een stuk papier. (Uiteraard had ik hem aangesloten op mijn laptop kunnen houden en de nummers op de seriële verbinding laten verzenden, maar ik had mijn laptop overdag nodig en wilde niet de hele dag in het atrium zitten).

Uiteindelijk heb ik besloten dat het donker is onder "630" en licht boven "800". Maar die nummers passen duidelijk gewoon in mijn fotoweerstand samen met de 10 kΩ-weerstand die ik in serie heb gebruikt, dus het is geen absolute waarheid.

De Arduino-broncode

Ik wilde verschillende soorten lichteffecten kunnen hebben, niet alleen kaarslicht. Om deze reden heb ik de broncode modulair gebouwd, in een poging de verschillende mechanismen in verschillende bestanden te isoleren voor een gemakkelijker overzicht.

De belangrijkste .ino -bestand wordt erg klein gehouden. Ik start eigenlijk gewoon het hele ding op en roept Update() . aan op een paar helper-klassen (wat op zijn beurt de truc doet).

Momenteel ondersteunt de broncode twee verschillende effecten; het kaarslichteffect en een "kerst" effect. Op dit moment is de keuze van het effect hard-coded, wat betekent dat ik de code opnieuw moet compileren als ik wil overstappen. Uiteindelijk moet dit worden bediend met een afstandsbediening - of, nog beter, een smartphone. We zullen zien.

Code

Atriumverlichting
Alle broncode voor de Arduinohttps://github.com/emmellsoft/AtriumLighting

Schema's

2drkW5vm9e7vAdGPxOsm.fzz

Productieproces

  1. Raspberry Pi-robot bestuurd via Bluetooth
  2. Met joystick bestuurde RC-auto
  3. Arduino met Bluetooth om een ​​LED te bedienen!
  4. Nunchuk-gestuurde robotarm (met Arduino)
  5. Spraakgestuurde robot
  6. Arduino Quadruped
  7. Arduino-gestuurde pianorobot:PiBot
  8. Arduino RGB-kleurenmixer
  9. DIY Arduino RADIONICS-behandelingsmachine
  10. DMX RGB LED buiten
  11. Touch Controlled Light met Arduino