Innehållsförteckning:
- Steg 1: Programmering
- Steg 2: Koden
- Steg 3: Montering av elektroniken för styrenheten
- Steg 4:
- Steg 5:
- Steg 6:
- Steg 7:
- Steg 8:
- Steg 9:
- Steg 10:
- Steg 11: Montering av ljuspennan
- Steg 12:
- Steg 13:
- Steg 14:
- Steg 15:
- Steg 16: Exempel
- Steg 17: Filerna
Video: RGB LED -penna för ljusmålning: 17 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Detta är en komplett bygginstruktion för ett ljusmålningsverktyg som använder en RGB LED -kontroller. Jag använder den här kontrollern mycket i mina avancerade verktyg och tänkte att en dokumentär om hur detta är byggt och programmerat kan hjälpa vissa människor.
Detta verktyg är en modulär RGB -ljuspenna avsedd för ljusskrivning, ljusritning och belysning av graffiti. Det är lätt att använda eftersom du bara har pennan i handen och du kan snabbt ändra färg.
Verktyget består av:
- ett fodral som är 3D -tryckt
- en Arduino Micro
- en WS2816B LED
- två potentiometrar (10K eller 100K)
- två omkopplare
- en tryckknapp
- och några kablar.
En Arduino Micro är perfekt för detta eftersom det är extremt litet och bra att styra RGB -lysdioder. Du kan också använda ännu mindre mikrokontroller som en LilyPad eller till och med en ATtiny85, men jag använder ofta Micro eftersom den är lätt att använda eftersom den levereras med en USB -kontakt klar att använda. Både Arduino och lysdioden drivs med 5V, så du måste ta hand om ordentligt strömstöd. Detta verktyg är utformat för att använda fyra laddningsbara AAA -batterier eftersom de vanligtvis har 1,2V och kombinerade 4,8V, vilket är tillräckligt för att driva både Arduino och LED. Var noga med att inte använda vanliga AAA -batterier, eftersom de har 1,5V och den kombinerade spänningen kan vara för mycket för komponenterna och kan skada dem. Om du vill använda vanliga batterier, använd bara tre, spänningen ska fortfarande vara tillräcklig. Jag använde en annan stor 3D -tryckt del från någon annan för batterifodralet som finns här: "Flexing battery holders".
Steg 1: Programmering
Först behöver du Arduino IDE för att programmera mikrokontrollen som är gratis att ladda ner och använda. Det låter ganska komplicerat vid första ögonkastet, men det är verkligen ganska enkelt. Efter installation av programvaran får du ett enkelt textredigeringsfönster som används för att koda skissen som laddas upp till Arduino. Det här verktyget använder också FastLED -biblioteket som är ett fantastiskt och lättanvänt bibliotek som kan styra nästan alla typer av RGB -lysdioder du kan köpa. Efter nedladdning av biblioteket måste du installera genom att placera filerna i biblioteksmappen som skapats av Arduino IDE. Detta kan vanligtvis hittas under "C: / Users {User Name} Documents / Arduino / libraries" om du inte har ändrat det. Efter att ha placerat biblioteket i den här mappen måste du starta om IDE om det redan körs. Nu är vi redo att skapa koden för regulatorn.
Steg 2: Koden
För att använda FastLED -biblioteket måste vi först inkludera det i vår kod. Detta görs högst upp i koden innan något annat med den här raden:
#omfatta
Därefter kommer vi att definiera några konstanter. Detta görs eftersom dessa värden inte kommer att förändras medan koden körs och också för att hålla den mer läsbar. Du kan sätta in dessa värden direkt i koden, men om du behöver ändra något måste du gå igenom hela koden och ändra varje rad som värdet används i. Genom att använda definierade konstanter behöver du bara ändra det på ett ställe och behöver inte röra huvudkoden. Först definierar vi stiften som används av denna styrenhet:
#define HUE_PIN A0
#define BRIGHT_PIN A1 #define LED_PIN 3 #define LIGHT_PIN 6 #define COLOR_PIN 7 #define RAINBOW_PIN 8
Siffrorna eller namnen är desamma som trycks på Arduino. Analoga stift identifieras med ett A framför dess nummer, digitala stift använder bara numret i kod men skrivs ibland ut med ett ledande D på tavlan.
Potentiometern på stift A0 används för att styra färgtonen, potentiometern på stift A1 används för att styra ljusstyrkan. Stift D3 används som en signal till lysdioden så att Arduino kan skicka data för att styra färgen. Stift D6 används för att växla ljuset och stift D7 och D8 används för att ställa in styrningens läge. Jag har implementerat till lägen i denna styrenhet, den ena lägger helt enkelt den färg som definieras av färgpotentiometern på lysdioden, och den andra kommer att blekna genom alla färger. Därefter behöver vi också några definitioner för FastLED -biblioteket:
#define COLOR_ORDER GRB
#define CHIPSET WS2811 #define NUM_LEDS 5
Chipset används för att berätta för biblioteket vilken typ av LED vi använder. FastLED stöder nästan vilken RGB -LED som helst (som NeoPixel, APA106, WS2816B, etc). Lysdioden jag använder säljs som WS2816B men verkar vara lite annorlunda så det fungerar bäst med WS2811 -chipset. Storleken på byte som skickas till lysdioden för att ställa in färgen kan också variera mellan tillverkarna, så vi har också en definition för byteordningen. Definitionen här berättar bara för biblioteket att skicka färgen i ordningen grön, röd, blå. Den sista definitionen är för mängden lysdioder som är anslutna. Du kan alltid använda mindre lysdioder än du definierar i kod, så jag ställer in siffran till 5 eftersom jag med det här verktyget inte kommer att designa pennor med mer än 5 lysdioder. Du kan ställa in antalet mycket högre men på grund av prestanda håller jag det så litet som jag behöver det.
För huvudkoden behöver vi också några variabler:
int ljusstyrka = 255;
osignerad int pot_Reading1 = 0; osignerad int pot_Reading1 = 0; osignerad lång lastTick = 0; osignerad int wheel_Speed = 10;
Dessa variabler används för ljusstyrka, avläsningar från potentiometrarna, kommer ihåg senast koden kördes och hur snabbt färgen bleknar.
Därefter definierar vi en matris för lysdioderna som är ett enkelt sätt att ställa in färgen. Den definierade mängden lysdioder används för att ställa in storleken på matrisen här:
CRGB -lampor [NUM_LEDS];
Efter att ha tagit hand om definitioner kan vi nu skriva installationsfunktionen. Detta är ganska kort för det här programmet:
void setup () {
FastLED.addLeds (leds, NUM_LEDS).setCorrection (TypicalLEDStrip); pinMode (LIGHT_PIN, INPUT_PULLUP); pinMode (COLOR_PIN, INPUT_PULLUP); pinMode (RAINBOW_PIN, INPUT_PULLUP); }
Den första raden initierar FastLED -biblioteket med hjälp av de definitioner vi ställt in tidigare. De tre sista raderna berättar för Arduino att dessa stift används som ingång och att om de inte är anslutna till någonting bör deras spänning vara hög (PULLUP). Det betyder att vi måste ansluta dessa stift till GND för att utlösa något.
Nu kan vi ta hand om huvudprogrammet. Detta görs i loop -funktionen. Först sätter vi några variabler och läser upp potentiometrarna:
void loop () {
statisk uint8_t nyans = 0; statisk uint8_t wheel_Hue = 0; pot_Reading1 = analogRead (HUE_PIN); nyans = map (pot_Reading1, 0, 1023, 0, 255); pot_Reading2 = analogRead (BRIGHT_PIN); ljusstyrka = karta (pot_Reading2, 0, 1023, 0, 255);
De två första raderna anger variabler som senare används för färgen. De två följande blocken tar hand om avläsning av potentiometervärdena. Eftersom du får ett värde mellan 0 och 1023 om du läser ut en pin med “analogRead” men nyansen och ljusstyrkan behöver ett värde mellan 0 och 255 använder vi funktionen “map” för att översätta avläsningen från ett värdeområde till ett annat. Den första parametern för den här funktionen är det värde du vill översätta, de fyra sista är lägsta och högsta av de regioner du vill använda för översättning.
Därefter kommer vi att utvärdera tryckknappen:
if (digitalRead (LIGHT_PIN) == LOW) {
Vi kontrollerar avläsningen mot LÅG eftersom vi definierade stiftet som högt om det inte utlöses. Så om tryckknappen trycks in kommer pinnen att anslutas till GND och läsas lågt. Om stiften inte trycks in finns det inte mycket att göra.
Låt oss först ta hand om att bara tända lysdioden i en färg:
if (digitalRead (COLOR_PIN) == LÅG) {
if (nyans <2) {FastLED.showColor (CRGB:: Vit); FastLED.setBrightness (ljusstyrka); } annat {FastLED.showColor (CHSV (nyans, 255, ljusstyrka)); FastLED.setBrightness (ljusstyrka); } fördröjning (10);
Vi måste utvärdera färgstiftet för att veta att vi vill använda det här läget. Sedan kan vi kontrollera vilken färg som behövs. Eftersom HSV -färgmodellen används här behöver vi bara nyansen för att definiera en färg. Men detta skapar också problemet att vi inte har ett sätt att ställa in färgen till vit. Eftersom nyans 0 och nyans 255 båda översätts till rött använder jag ett litet trick här och kontrollerar om avläsningen från nyanspotentiometern är mindre än 2. Det betyder att potentiometern är vriden hela vägen till ena sidan och vi kan använda den för att ställa in vit. Vi har fortfarande rött på andra sidan så förlorar ingenting här.
Så antingen sätter vi färgen på vitt och sedan ljusstyrkan eller så ställer vi in färgen baserat på nyansläsningen och även ljusstyrkan.
Efteråt lade jag till en liten fördröjning eftersom det är mycket bättre att ge regulatorn lite stillestånd för att spara ström och en fördröjning på 10 millisekunder kommer inte att kännas.
Därefter kodar vi färgtonen:
annars om (digitalRead (RAINBOW_PIN) == LOW) {
wheel_Speed = map (pot_Reading1, 0, 1023, 2, 30); if (lastTick + wheel_Speed 255) {wheel_Hue = 0; } lastTick = millis (); } FastLED.showColor (CHSV (wheel_Hue, 255, ljusstyrka)); }
Först kontrolleras stiftet för att växla detta läge. Eftersom jag inte ville lägga till en tredje potentiometer för att kontrollera fadehastigheten och eftersom nyanspotentiometern inte används i det här läget kan vi använda den potentiometern för att ställa in hastigheten. Med hjälp av kartfunktionen igen kan vi översätta avläsningen till en fördröjning som översätts till fadehastigheten. Jag använde ett värde mellan 2 och 30 för fördröjningen eftersom det från erfarenheter är en bra hastighet. Funktionen "millis" kommer att returnera millisekunderna sedan Arduino slogs på, så vi kan använda detta för att mäta tid. Den senaste nyansändringen lagras i en variabel som vi definierade tidigare och detta jämförs varje gång för att se om vi måste ändra nyansen igen. Den sista raden anger bara färgen som ska visas härnäst.
För att avsluta koden:
} annat {
FastLED.showColor (CRGB:: Svart); }}
Vi behöver bara stänga av lysdioden om du inte trycker på knappen genom att ställa in färgen till svart och stänga öppna parenteser.
Som du kan se är detta en ganska kort och enkel kod som kan användas för många verktyg som använder RGB -lysdioder.
När du har hela koden kan du ladda upp den till Arduino. För att ansluta Arduino till din dator med en USB -kabel och välj Arduino -typ i IDE.
I denna instruktion använder jag Arduino Pro Micro. Efter att du har ställt in Arduino -modellen måste du välja porten där IDE kan hitta den. Öppna portmenyn och du bör se din anslutna Arduino.
Nu är det enda du behöver göra att ladda upp koden till Arduino genom att trycka på den andra runda -knappen högst upp i fönstret. IDE bygger koden och laddar upp den. När detta lyckades kan du koppla bort Arduino och fortsätta montera kontrollen.
Steg 3: Montering av elektroniken för styrenheten
Eftersom vi tog hand om att koda Arduino kan vi nu montera styrenhetens hårdvara. Vi börjar med att sätta in komponenterna i väskan. Potentiometrarna går i de två runda hålen till vänster, strömbrytaren är längst ner, omkopplaren för läget är uppe till höger och Arduino går i hållaren i mitten.
Steg 4:
Börja med att löda en röd kabel från strömbrytaren till RAW -stiftet på Arduino. Denna stift är stiftet för strömförsörjning eftersom den är ansluten till en spänningsregulator, så även om spänningen är högre än 5V kan denna stift användas för att driva Arduino. Löd sedan en annan röd tråd till VCC -stiftet eftersom vi behöver högspänningen för potentiometern. Löd två vita trådar till A0- och A1 -stiften som ska användas för potentiometeravläsningarna.
Steg 5:
Lägg nu en lång vit och en lång grön tråd genom öppningen längst upp som senare används för att ansluta lysdioden. Löd den gröna till stift 3 och den vita till stift 6 och tryck dem platt på Arduino. Löd två svarta kablar till GND -stiften på vänster sida av Arduino, dessa används för lågspänningen för potentiometrarna. Löd två blå ledningar till stift 7 och stift 8 som ska användas för lägesomkopplaren.
Steg 6:
Den röda kabeln som vi lödde på VCC -stiftet måste nu lödas till en av de yttre stiften på den första potentiometern. Använd en annan röd kabel för att fortsätta detta till den andra potentiometern. Var noga med att använda samma sida på båda potentiometrarna så full på blir samma sida på båda. Löd de två svarta kablarna på andra sidan av potentiometrarna och de vita kablarna från stift A0 och A1 på mittstiftet. Potentiometrar fungerar genom att ställa in spänningen på mittstiftet till en spänning mellan spänningarna som appliceras på de yttre stiften, så om vi ansluter hög och låg spänning kan vi få en spänning mellan på mittstiftet. Detta slutförde ledningarna för potentiometrarna och de kan vridas lite så att tapparna är ur vägen.
Steg 7:
Löd en svart kabel till lägesbrytarens mittstift och sätt en lång svart kabel genom öppningen som leder till strömförsörjningen. Sätt ytterligare en lång svart kabel genom den övre öppningen som ska användas som GND för lysdioden.
Steg 8:
Den svarta kabeln som kommer från strömförsörjningen löds till en annan svart kabel som är ansluten till den sista lediga GND -stiftet på Arduino. Löd ihop ledningen till lysdioden och den svarta ledningen på lägesomkopplaren tillsammans och slutligen löd de två par svarta ledningar som du nu har tillsammans. Använd krymprör för att isolera lödningen för att förhindra shorts inuti kontrollen.
Steg 9:
Som ett sista steg kan vi nu lödda de två blå ledningarna till lägesomkopplaren. Dessa omkopplare fungerar genom att ansluta mittstiftet till en av de yttre stiften beroende på vilken sida omkopplaren är på. Eftersom stift 7 och 8 är inställda för att utlösas när de är anslutna till GND kan vi använda brytarens yttre stift för stiften och mitten för GND. På så sätt utlöses alltid en av stiften.
Sätt slutligen en röd tråd genom strömöppningen och löd den på strömbrytarens mittstift och sätt en annan lång röd tråd genom öppningen till lysdioden och löd den till samma stift på strömbrytaren som Arduino är ansluten till.
Steg 10:
Löd strömkablarna till batterihållaren och skruva i klämman som håller kablarna som leder till lysdioden. Detta slutför kabeldragningen för regulatorn.
Steg 11: Montering av ljuspennan
Eftersom detta verktyg är tänkt att vara modulärt och använda olika pennor behöver vi en kontakt på ledningarna för lysdioden. Jag använde en billig 4 -terminal molex -kontakt som vanligtvis finns på kablar som används för fläktar i en dator. Dessa kablar är billiga och lätta att få, så de är perfekta.
Steg 12:
När jag började ansluta regulatorn kontrollerade jag inte färgerna på kablarna på kontakterna så att de är lite olika, men lätta att komma ihåg. Jag kopplade de svarta trådarna, ström till gul, grön på grön och vit på blå, men du kan använda vilken kombination du vill, kom ihåg det också för de andra pennorna. Var noga med att isolera de lödda områdena med krymprör för att förhindra shorts.
Steg 13:
Sätt en lång röd och en lång grön tråd genom pennan och löd svarta trådar till ena sidan av tryckknappen och vit tråd till andra sidan. Denna typ av tryckknappar har fyra stift varav två är parkopplade. Du kan se vilka stift som är anslutna genom att titta längst ner på knappen, det finns ett mellanrum mellan paren som är anslutna. Om du trycker på knappen är de två sidorna anslutna till en annan. Den vita och den ena svarta kabeln dras sedan igenom till slutet av pennan med början vid öppningen för knappen. Den andra svarta kabeln dras framåt. Se till att du har tillräckligt med kabel på båda sidor att arbeta med.
Steg 14:
Tryck på passformsknappen i öppningen och förbered resten av kablarna. Det är bäst att löda kablarna till lysdioden så att de är vända mot mitten av lysdioden eftersom kablarna går genom mitten av pennan. Löd den röda tråden till 5V loddynan, den svarta tråden till GND -lödkudden och den gröna tråden till Din -lödkudden. Om du har mer än en lysdiod är Dout -lödkudden på den första lysdioden ansluten till din nästa lysdiod och så vidare.
Steg 15:
Tryck nu på knappen längst fram på pennan och lägg en droppe lim bakom den för att hålla den på plats.
Nu är det bara att löda trådarna i slutet av pennan till den andra sidan av kontakten med tanke på färgerna.
Det är bäst att använda en droppe lim och lite tejp för att stressa loss kablarna i pennans ände för att förhindra att de går sönder. Detta slutför monteringen av den ljusa pennan.
Steg 16: Exempel
Slutligen vill jag visa dig några exempel där jag använde det här verktyget. Den vinklade pennan är fantastisk för att tända linjerna på ett graffiti och den raka pennan är bra att rita och skriva saker i luften (som jag bara har lite talang för).
Detta är huvudsyftet med detta verktyg. Som du kan se är möjligheterna fantastiska om du kombinerar långa exponeringar med det här verktyget.
För att börja med den här typen av fotografering, försök att använda lägsta ISO -inställning som din kamera stöder och hög bländare. Ett bra sätt att hitta rätt inställningar är att sätta din kamera i bländarläge och stänga bländaren tills din kamera visar en exponeringstid på ungefär den tid du behöver för att rita det du vill lägga till i bilden. Växla sedan till manuell och antingen använda den exponeringstiden eller använd lampan.
Ha kul att testa dessa! Det är en fantastisk konstform.
Jag lade till denna instruktion för uppfinnarna och utmaningen för ovanlig användning, så om du gillar det, lämna en omröstning;)
Steg 17: Filerna
Jag har också lagt till modeller för remhållare som är avsedda att limmas på undersidan av kontrollhöljet så att du kan fästa det på armen och ett klämma för pennan som kan limmas på locket för när du inte behöver pennan i din hand.
Det finns också diffusorkåpor som kan användas för att göra ljuset mjukare och förhindra bloss genom att pennan pekar direkt in i kameran.
Rekommenderad:
Börjande ljusmålning (ingen Photoshop): 5 steg (med bilder)
Börjande ljusmålning (ingen Photoshop): Jag köpte nyligen en ny kamera och undersökte några av dess funktioner när jag stötte på ljusmålning eller fotografering med lång exponering på internet. De flesta av oss kommer att ha sett den grundläggande formen av ljusmålning med ett foto i en stad med en väg
Väggfäste för iPad som kontrollpanel för hemautomation, med servostyrd magnet för att aktivera skärmen: 4 steg (med bilder)
Väggfäste för iPad Som kontrollpanel för hemautomation, med servostyrd magnet för att aktivera skärmen: På senare tid har jag ägnat ganska mycket tid åt att automatisera saker i och runt mitt hus. Jag använder Domoticz som min hemautomationsapplikation, se www.domoticz.com för mer information. I min sökning efter en instrumentpanelapplikation som visar all Domoticz -information tillsammans
OAREE - 3D -tryckt - hinder för att undvika robot för ingenjörsutbildning (OAREE) med Arduino: 5 steg (med bilder)
OAREE - 3D Printed - Obstacle Avoiding Robot for Engineering Education (OAREE) With Arduino: OAREE (Obstacle Avoiding Robot for Engineering Education) Design: Målet med denna instruerbara var att designa en OAR (Obstacle Avoiding Robot) robot som var enkel/kompakt, 3D -utskrivbar, enkel att montera, använder kontinuerliga rotationsservos för rörliga
Övertyga dig själv om att bara använda en 12V-till-AC-omriktare för LED-ljussträngar istället för att koppla om dem för 12V: 3 steg
Övertyga dig själv om att bara använda en 12V-till-AC-linjeomvandlare för LED-ljussträngar istället för att koppla om dem för 12V: Min plan var enkel. Jag ville klippa upp en väggdriven LED-ljussträng i bitar och sedan dra om den för att gå av 12 volt. Alternativet var att använda en kraftomvandlare, men vi vet alla att de är fruktansvärt ineffektiva, eller hur? Höger? Eller är de det?
1.5A linjär regulator för konstant ström för lysdioder för: 6 steg
1.5A linjär regulator för konstant ström för lysdioder för: Så det finns massor av instruktioner som täcker användning av LED -lampor med hög ljusstyrka. Många av dem använder den kommersiellt tillgängliga Buckpuck från Luxdrive. Många av dem använder också linjära regleringskretsar som toppar vid 350 mA eftersom de är mycket ineffektiva