Innehållsförteckning:

Holiday Ornament PCB: 3 steg (med bilder)
Holiday Ornament PCB: 3 steg (med bilder)

Video: Holiday Ornament PCB: 3 steg (med bilder)

Video: Holiday Ornament PCB: 3 steg (med bilder)
Video: A Christmas Ornament PCB 2024, November
Anonim
Holiday Ornament PCB
Holiday Ornament PCB
Holiday Ornament PCB
Holiday Ornament PCB
Holiday Ornament PCB
Holiday Ornament PCB

Hej allihopa!

Det är den tiden på året och säsongen för att byta gåvor snart. Jag tycker personligen om att få göra saker och dela dem med familjen. I år bestämde jag mig för att göra semesterprydnader med hjälp av Atting85 och några WS2812C 2020 lysdioder. Prydnaden är cirka 80 mm i diameter så det är en lagom stor prydnad för trädet. Om du inte är en trädperson vet du vad, det är också en bra skrivbordsprydnad. WS2812C 2020 -lysdioderna är otroligt ljusa små buggers så oroa dig inte för att det är för svagt haha. Jag har testat den på 3,3 volt med en strömförbrukning på 0,013 ampere och sedan för 5 volt var strömförbrukningen 0,023 ampere. Du kan antingen driva detta kort med en direkt 5 volt på baksidan eller via mikro -USB -kontakten på baksidan. Jag kan ansluta detta till min bärbara dator och driva den. Det finns också ett alternativ på baksidan för att driva den med andra strömkällor med högst 30 volt, men det litar på databladet för 78L05 5V -regulatorn, jag skulle inte driva det så långt.

Läs igenom hela guiden innan du bygger detta. Lär dig av mina misstag eftersom du litar på mig, jag gör vanligtvis mycket och kan dela med mig av visdomspärlor.

Om du är intresserad av att köpa ett färdigt kretskort eller bara själva kretskortet, besök min tindie -butik.

Tillbehör

Låt oss börja med alla verktyg du behöver för att bygga ett av dessa smycken själv. Detta är faktiskt ett av mina få projekt som inte kräver en betydande mängd verktyg, vilket är bra för dig!

Verktyg

- Värmepistol (primärt verktyg)/lödkolv (felkorrigering)

- ESD -pincett

- Isopropylalkohol

- SMT stencil (rekommenderas starkt)

- Lödpasta (jag använder en Lågtemp blyfri lodpasta som säljs på Amazon)

Tillbehör

- x10 WS2812 2020 lysdioder

- x1 Attiny85 mikrokontroller

- x11 0.1uf 0603 kondensatorer

- x1 0.1uf 0402 Kondensator (Du kan komma undan med en 0603 Cap)

- x1 SMD Micro USB -kontakt

- x1 1,5K Ohm motstånd

- x1 4.7uf 0805 kondensator

- x1 78L05 5V Regulator

- x1 SOD123 -diod (jag använde en tråd som ersättning eftersom detta inte är nödvändigt, men jag glömde ta bort det när jag designade kortet)

- x2 SOD323 Dioder

- x2 66,5 Ohm motstånd (Du kan också använda x2 24 -Ohm motstånd här också, jag tror att alla matchande par faktiskt kommer att göra - citera inte mig)

Frivillig

- x1 24 Ohm motstånd

- x1 30 Ohm motstånd

(Dessa är för en spänningsdelare om du ville mäta ingångsspänningen för en lågspänningsmonitor - bara ett alternativ)

Steg 1: Montering

hopsättning
hopsättning
hopsättning
hopsättning
hopsättning
hopsättning
hopsättning
hopsättning

Monteringsprocessen är ganska rak framåt. Se till att du orienterar delar korrekt och att du inte ska stöta på problem. Du vet vad, om du är som jag och absolut ingenting fungerar första gången … bokstavligen ingenting, jag slänger in några felsökningssteg i slutet.

Först och främst, du behöver den schablonen nu … Jag har bifogat en 1: 1 -PCB -PDF -fil så att du kan rasta den på din egen laserskärare. Om du behöver en snitt åt dig, meddela mig, jag gör det också. Annars gör du detta för hand för dig till en skicklig bada $$.

Om du har erfarenhet av att göra PCB är det här du ska gå vidare och säkra din stencil, sprida din lödpasta bla bla bla du får det. För dem som aldrig har gjort detta, oroa dig inte, titta på en YouTube -video eller två. Se till att din inriktning är perfekt innan du sprider din lödpasta och lätt citronpressad.

Ta försiktigt bort din stencil och låt oss börja placera delar !!

Observera min noggrant ritade bild för dig, gjord med kärlek och öm omsorg.

- Mörk lila = 0.1uf 0603

- Blå = dioder

- Lime Green = 4,7 uf 0805 (Kan antagligen använda 0603)

- Lila = Wire bridge

- Rosa = Spänningsdelningsmotstånd

- Röd = WS2812C lysdioder (Observera deras riktning, den mörkare delen kommer att vara på undersidan)

- Gul = 78L05 5V regulator 100mA

Vill du veta vad den andra gula märkningen är till för? Är du säker? Tja … DET är ett misstag OK! Jag lägger en freakin mark via i signal spåret, bokstavligen smack dab i mitten OK. VARFÖR … JAG VET INTE.

Jag avviker. Efter timmar av smärtsamt att dra ut mitt hår insåg jag mitt misstag. För att fixa det var jag tvungen att inte bara borra ut marken via utan borra ett otroligt litet hål genom brädet och ansluta signalspåret med en liten tråd. Jag använde lite flytande eltejp för att säkra och täcka mitt misstag. Du kan inte se det så bra när det är täckt tack och lov.

Jag kommer också att fixa detta om du köper en bräda av mig så inga bekymmer där.

Steg 2: Kodning

Kodning
Kodning
Kodning
Kodning

Så innan jag designade detta tänkte jag, "Åh små WS2812 lysdioder, de måste använda samma kod som WS2812b: s, detta kommer att bli en promenad i parken!" FEL

Dessa använder inte samma timing som WS2812b lysdioder så det finns en inlärningskurva eller berg beroende på din komfort med kodning.

Efter ett mindre "Oh $ hit" -moment hittade jag den här bloggen av Josh Levin. Så ropa till honom för att han hjälpte mig att ta reda på det här. Jag använde en betydande mängd av hans kod och modifierade den för att fungera med dessa kort. Kolla in hans blogg om du vill förstå hur den här koden fungerar. Koden jag postade får en regnbåge att påverka. Det är möjligt så gör enfärgade färger om det är din grej.

En mindre sak är att jag inte kan räkna ut hur jag ska dimma dessa lysdioder eftersom de är riktigt ljusa. Kanske någon kan lämna en kommentar och hjälpa mig.

#inkludera #define PIXELS 3000 #define PIXEL_PORT PORTB #define PIXEL_DDR DDRB #define PIXEL_BIT 0 #define T1H 700 #define T1L 320 #define T0H 320 #define T0L 700 #define RES 300000 #define NS_PER_SEC_PER_SEC_CER_SEC_SER_100_definiera NS_PER_SEC_SERCER_SERCER_SERV #define NS_PER_CYCLE (NS_PER_SEC / CYCLES_PER_SEC) #define NS_TO_CYCLES (n) ((n) / NS_PER_CYCLE)

inline void sendBit (bool bitVal) {

if (bitVal) {asm volatile ("sbi %[port], %[bit] n / t" ".rept %[onCycles] n / t" "nop / n / t" ".endr / n / t "" cbi %[port], %[bit] n / t "".rept %[offCycles] n / t "" nop / n / t "".endr / n / t ":: [port]" I "(_SFR_IO_ADDR (PIXEL_PORT)), [bit]" I "(PIXEL_BIT), [onCycles]" I "(NS_TO_CYCLES (T1H) - 2), [offCycles]" I "(NS_TO_CYCLES (T1L) - 2));

} annat {

asm flyktig ("sbi %[port], %[bit] n / t" ".rept %[onCycles] n / t" "nop / n / t" ".endr / n / t" "cbi %[port], %[bit] n / t "".rept %[offCycles] n / t "" nop / n / t "".endr / n / t ":: [port]" I "(_SFR_IO_ADDR (PIXEL_PORT)), [bit] "I" (PIXEL_BIT), [onCycles] "I" (NS_TO_CYCLES (T0H) - 2), [offCycles] "I" (NS_TO_CYCLES (T0L) - 2));

} }

inline void sendByte (osignerad charbyte) {för (unsigned char bit = 0; bit <8; bit ++) {sendBit (bitRead (byte, 7)); byte << = 1; }}

void ledsetup () {

bitSet (PIXEL_DDR, PIXEL_BIT); }

inline void sendPixel (osignerat tecken, osignerat tecken, osignerat tecken b) {

sendByte (g); // Neopixel vill ha färger i grönt, sedan rött och blått, beställ sendByte (r); sendByte (b); }

void show () {

_delay_us ((RES / 1000UL) + 1); // Avrunda eftersom fördröjningen måste vara _at_minst_ så lång (för kort kanske inte fungerar, för lång inte ett problem)}

void showColor (osignerad tecken, osignerad tecken, osignerad tecken b) {

cli (); för (int p = 0; p

8;

osignerat char step = currentPixelHue & 0xff; switch (fas) {case 0: sendPixel (~ steg, steg, 0); ha sönder; fall 1: sendPixel (0, ~ steg, steg); ha sönder;

fall 2:

sendPixel (steg, 0, ~ steg); ha sönder; } currentPixelHue+= pixelAdvance; } sei (); show(); firstPixelHue += frameAdvance; }}

void setup () {

ledsetup (); }

void loop () {

rainbowCycle (1000, 10, 10); lämna tillbaka; }

Steg 3: Allt klart

Klart
Klart
Klart
Klart
Klart
Klart

Förhoppningsvis fungerar allt just nu men om det inte är det, låt oss avsluta med lite felsökning.

1. Kortet känns inte igen av Arduino - se till att du har digispark -biblioteket installerat och att du läser hur du använder digispark -kort.

2. Koden laddas inte upp - Du måste trycka på uppladdning och sedan ansluta modulen till datorn, dum vet jag, men det är så det fungerar.

3. Kortet fungerar fortfarande inte - Se till att din mikro -USB -kabel tillåter data såväl som ström, inte alla kablar gör det. Du kan föreställa dig att jag kom på det här på den hårda vägen.

4. Fortfarande ingenting - Dina dioder kan vara bakåt - kontrollera med en multimeter för korrekt orientering.

5. Konstiga blinkande lysdioder - Antingen är detta ett kodproblem eller så sitter en av dina lysdioder inte ordentligt på signalplattan.

6. De tre senaste lysdioderna är förstörda - Ah! du har stött på mitt designfel. Se till att marken via borrades ut - kontrollera med en multimeterkontinuitet mellan signalen och marken. Se sedan till att din brotråd också är isolerad från marken.

7. Fortfarande trasig - jag är ärligt slut på lösningar, meddela mig.

Tja, jag hoppas att du har haft min Instructable! Lämna en kommentar om du gjorde det.

Bäst, Nick

Rekommenderad: