Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Det här började med att jag behövde en extra förvaring bredvid ett skrivbord, men jag ville ge det lite speciell design. Varför inte använda de fantastiska LED-remsorna som kan adresseras individuellt och ta vilken färg som helst? Jag ger några anteckningar om själva hyllan i nästa steg, men här är vad du behöver för att dekorera din hylla:- några meter med LED-remsor baksida med lim, ~ $ 40- en arduino nano, ~ $ 10 (vilken som helst arduino faktiskt)- några anslutningskablar, vita eller vilken färg din hylla faktiskt är- några anslutningskablar (tillval)- en extra smarttelefonladdare (för att driva arduino usb-kontakt)- lite löd och ett lödkolv. Börja här om du inte vet hur du ska löda ännu.- en trådavlägsnare
Steg 1: En snabb anteckning om hyllan
Bara för information, här är vad jag använde för att bygga hyllan köpt på Amazon eller hemdepå:- en bokhylla, $ 50- en 4x2 kubhylla, $ 70- ytterligare en 3x2 kubhylla, $ 57 för att nå väggen som Jag ger inte mycket information om monteringen, men det handlar om att fästa de övre kuberna tillsammans och på väggen med kraftiga fästen. Gör det med någons hjälp och använd ditt sunt förnuft … eller hennes. Det kan dock vara en bra idé att placera fästena i hörnen på kuberna som du inte ser från den mest naturliga platsen i rummet.
Steg 2: Stick fast LED -remsorna
Skär LED -remsan i så många bitar som du behöver med en sax. I mitt fall var det 14 turer med 8 lysdioder.. Eftersom mina hyllor är helt över ögonhöjd placerade jag remsan på den nedre delen av kuberna. Om din är på golvet måste du placera den på den övre delen så att du inte ser dem när du står bredvid den. - Du kanske vill hålla remsan nära kanten på hyllan, eftersom saker kan sluta fylla lådorna och du vill inte att de ska blockera ljuset från lysdioderna. - respekt ("RESPEKT … !!") riktningen som anges på remsan. Pilen visar i vilken riktning informationen flyter, från arduino, till slutet av remsan. En anteckning om hur de fungerar: var och en av WS2812 LED innehåller ett mikrochip som mottar logiska 0 och 1s med en hastighet på 800 kHz. Efter påslagning lyssnar den första lysdioden på denna signal och tar bort de första 3 byten (24 bitar) från bitflödet. Den använder denna information för att ställa in sin färg och överföra resten av signalen till nästa lysdiod, som kommer att utföra samma uppgift. Varje lysdiod har en ingång och en utgång, därför är riktningen viktig. - den föregående punkten innebär att du på förhand måste tänka på var arduinoen ska mata remsan och vilken bana bandet kommer att ta. I mitt fall var det ganska enkelt, gömde arduino i den längsta kuben, där jag kan få enkel åtkomst till en dissimulerad nätsladd som går i hörnet av rummet. Remsorna går igenom alla kuber på den nivån, sedan uppåt, och genom alla kuber på den andra nivån.
Steg 3: Förbinda remsanslutningarna
Det betyder att du lägger en droppe löd på varje anslutningsände på dina LED -remsor. Med mina 14 stycken att ansluta ihop och 3 anslutningar i varje ände (mark, 5V, signal), blir 84 droppar lod. Men det kommer att göra ditt liv ungefär 84 gånger lättare i nästa steg !!!
Steg 4: Anslut remsorna
- Med trådavlägsnaren, ta bort bara 2 mm isolering från din tråd. Förforma tråden (genom att värma den med lödkolven tills den absorberar lite löd).- Löd den direkt på markanslutningen på en av remsorna som ska anslutas. Eftersom du förfärgade det är det bara att trycka på lödkolven på din tråd placerad på anslutningen.- Dra sedan tråden hårt till motsvarande anslutning av den andra remsan (marken) och klipp av tråden exakt i nivå av anslutningen.- Ta bort 2 mm isolering, för-tenn och löd den till kontakten.- Då bör du ha en kabel som förbinder dina remsor och den ska inte se lös ut. Utför detta igen för SIGNAL-kontakterna, och för 5V -kontakterna.
Steg 5: Anslut Arduino och kod
Adafruits fantastiska webbplats har mycket användbar bästa praxis angående anslutning av en Arduino till en LED-remsa (den som är märkt "Neo-Pixel"). Det är mycket tydligt och du bör läsa det: https://learn.adafruit.com/ adafruit-neopixel-uberguide/översikthttps://learn.adafruit.com/adafruit-neopixel-uberguide/best-practiceshttps://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library- anslut PIN6 (i kod exempel nedan, vi använder stift 6) till den första lysdiodens SIGNAL, - anslut Arduino Ground till den första LED GND - Driv din LED -remsa med en 5V strömförsörjning och anslut din arduino till usb -laddaren. - VARNING: Om du driver remsan genom Arduino, använd inte stiften "+5V" från arduino. Denna stift involverar vissa känsliga kretsar på Arduino och kan brinna på grund av strömmen som dras av LED -remsan. Istället kan du försöka använda "Vin" -nålen. Om du planerar att dra mer än 1A ström (~ 20 till 50 mA per LED), anslut en 5v strömförsörjning direkt till LED -remsan (och marken måste delas med Arduino). Här är koden som jag använde för en slowmotion av färger genom kuberna. Den tas direkt och anpassas från Neo_Pixel -biblioteksexemplen: #inkludera "Adafruit_NeoPixel.h" #define PIN 6 // Parameter 1 = antal pixlar i remsan // Parameter 2 = Arduino pin -nummer (de flesta är giltiga) // Parameter 3 = flaggor av pixeltyp, lägg ihop efter behov: // NEO_KHZ800 800 KHz bitström (de flesta NeoPixel -produkter med WS2812 lysdioder) // NEO_KHZ400 400 KHz (klassiska 'v1' (inte v2) FLORA -pixlar, WS2811 -drivrutiner) // NEO_GRB Pixlar är trådbunden för GRB -bitström (de flesta NeoPixel -produkter) // NEO_RGB Pixlar är anslutna för RGB -bitström (v1 FLORA -pixlar, inte v2) Adafruit_NeoPixel -remsa = Adafruit_NeoPixel (8*14, PIN, NEO_GRB + NEO_KHZ800); // VIKTIGT: För att minska NeoPixel risk, lägg till 1000 uF kondensator över // pixel strömkablar, lägg till 300 - 500 Ohm motstånd på första pixelens datainmatning // och minimera avståndet mellan Arduino och första pixel. Undvik att ansluta // på en strömkrets … om du måste, anslut GND first.void setup () {strip.begin (); strip.show (); // Initiera alla pixlar till 'off'} void loop () {rainbowCycle (20);} void rainbowCycle (uint8_t wait) {uint16_t i, j; for (j = 0; j <256; j ++) {for (i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, Wheel ((((i) * 256 / strip.numPixels ())+j) & 255));} strip.show (); fördröjning (vänta);}} // Mata in ett värde 0 till 255 för att få ett färgvärde.// Färgerna är en övergång r - g - b - tillbaka till r.uint32_t Wheel (byte WheelPos) {if (WheelPos <85) {return strip. Color (WheelPos * 3, 255 - WheelPos * 3, 0);} annars om (WheelPos <170) {WheelPos - = 85; return strip. Color (255 - WheelPos * 3, 0, WheelPos * 3);} else {WheelPos - = 170; return strip. Color (0, WheelPos * 3, 255 - WheelPos * 3);}}
Tredje priset i den utvalda författartävlingen: Tarun Upadhyaya