Indholdsfortegnelse:

Holiday Ornament PCB: 3 trin (med billeder)
Holiday Ornament PCB: 3 trin (med billeder)

Video: Holiday Ornament PCB: 3 trin (med billeder)

Video: Holiday Ornament PCB: 3 trin (med billeder)
Video: seeing wife face for first time #shorts 2024, November
Anonim
Holiday Ornament PCB
Holiday Ornament PCB
Holiday Ornament PCB
Holiday Ornament PCB
Holiday Ornament PCB
Holiday Ornament PCB

Hey alle sammen!

Det er den tid på året og sæsonen for udveksling af gaver næsten over os. Jeg nyder personligt at komme til at lave ting og dele dem med familien. I år besluttede jeg at lave feriepynt ved hjælp af Atting85 og nogle WS2812C 2020 LED'er. Ornamentet er cirka 80 mm i diameter, så det er en rimelig størrelse ornament til træet. Hvis du ikke er en træperson, ved du hvad, det er også et godt skrivebordspynt. WS2812C 2020 LED'erne er utroligt lyse små buggers, så du skal ikke bekymre dig om, at det er for svagt haha. Jeg har testet det ved 3,3 volt med et strømforbrug på 0,013 ampere og derefter for 5 volt var det aktuelle forbrug 0,023 ampere. Du kan enten forsyne dette kort med en direkte 5 volt på bagsiden eller via mikro -USB -stikket på bagsiden. Jeg kunne tilslutte dette til min bærbare computer og tænde det. Der er også en mulighed på bagsiden til at forsyne den med andre strømkilder med maksimalt 30 volt, men det stoler på databladet til 78L05 5V -regulatoren, jeg ville ikke skubbe det så langt.

Læs venligst hele guiden igennem, før du bygger denne. Lær af mine fejltagelser, tillid til mig, jeg laver normalt meget og kan dele mine visdomsperler.

Hvis du er interesseret i at købe et færdiglavet PCB eller bare PCB'et, kan du besøge min tindie -butik.

Forbrugsvarer

Lad os starte med alle de værktøjer, du skal bruge til selv at bygge en af disse ornamenter. Dette er faktisk et af mine få projekter, der ikke kræver en betydelig mængde værktøjer, hvilket er godt for dig!

Værktøjer

- Varmepistol (primært værktøj)/loddejern (fejlfikser)

- ESD pincet

- Isopropylalkohol

- SMT stencil (kan varmt anbefales)

- Loddemasse (jeg bruger en lavtemperatur blyfri loddemasse, der sælges på Amazon)

Forbrugsvarer

- x10 WS2812 2020 LED'er

- x1 Attiny85 mikrokontroller

- x11 0.1uf 0603 Kondensatorer

- x1 0.1uf 0402 Kondensator (Du kan slippe afsted med en 0603 Cap)

- x1 SMD Micro USB -stik

- x1 1,5K Ohm modstand

- x1 4.7uf 0805 kondensator

- x1 78L05 5V regulator

- x1 SOD123 Diode (jeg brugte en ledning som erstatning, da dette ikke er nødvendigt, men jeg glemte at fjerne det, da jeg designede tavlen)

- x2 SOD323 Dioder

- x2 66,5 Ohm modstande (Du kan også bruge x2 24 -Ohm modstande også her, jeg tror, at ethvert matchende par faktisk vil gøre det - ikke citer mig)

Valgfri

- x1 24 Ohm modstand

- x1 30 Ohm modstand

(Disse er til en spændingsdeler, hvis du ville måle indgangsspændingen til en lavspændingsmonitor - bare en mulighed)

Trin 1: Montering

montage
montage
montage
montage
montage
montage
montage
montage

Monteringsprocessen er ret ligetil. Sørg for at orientere dele korrekt, og du bør ikke støde på problemer. Ved du hvad, hvis du er som mig og absolut intet virker første gang … bogstaveligt talt ingenting, smider jeg nogle fejlfindingstrin i slutningen.

Først og fremmest skal du bruge den stencil nu … Jeg har vedhæftet 1: 1 skala PCB PDF -fil, så du kan rastre den på din egen laserskærer. Hvis du har brug for et snit til dig, så skriv til mig, det gør jeg også. Ellers gør dette med hånden dig til en dygtig bada $$.

Hvis du har erfaring med at lave PCB'er, er det her du vil gå videre og sikre din stencil, spred din loddemasse bla bla bla du får det. For dem, der aldrig har gjort dette, skal du ikke bekymre dig, se en YouTube -video eller to. Sørg for, at din justering er perfekt, før du spreder din loddemasse og let citronsaft.

Fjern forsigtigt din stencil, og lad os begynde at placere dele !!

Observer mit omhyggeligt tegnede billede for dig, lavet med kærlighed og øm omhu.

- Mørk lilla = 0.1uf 0603

- Blå = dioder

- Kalkgrøn = 4,7 uf 0805 (kunne sandsynligvis bruge 0603)

- Lilla = Wire bridge

- Lyserød = Spændingsdeler modstande

- Rød = WS2812C LED'er (Vær opmærksom på deres retning, den mørkere del vil være i bunden)

- Gul = 78L05 5V regulator 100mA

Vil du vide, hvad den anden gule markering er til? Er du sikker? Tja … DET ER ET FEJL OK! Jeg satte en freakin jord via i signalet spor, bogstaveligt talt smæk dab i midten OK. HVORFOR … JEG VED IKKE.

Jeg afviger. Efter timer med smertefuldt at trække mit hår ud, indså jeg min fejl. For at fikse det, måtte jeg ikke bare bore jorden ud via, men bore et utroligt lille hul gennem brættet og forbinde signalsporet med en lille ledning. Jeg brugte noget flydende elektrisk tape til at sikre og dække min fejl. Du kan ikke se det særlig godt, når det er dækket gudskelov.

Jeg vil også rette dette, hvis du køber et bræt fra mig, så du skal ikke bekymre dig der.

Trin 2: Kodning

Kodning
Kodning
Kodning
Kodning

Så før jeg designede dette, tænkte jeg, "Åh små WS2812 lysdioder, de skal bruge den samme kode som WS2812b's, dette bliver en tur i parken!" FORKERT

Disse bruger ikke den samme timing som WS2812b LED'erne, så der er en indlæringskurve eller et bjerg afhængigt af din komfort med kodning.

Efter et mindre "Oh $ hit" -øjeblik fandt jeg denne blog af Josh Levin. Så råb til ham for at hjælpe mig med at finde ud af det. Jeg brugte en betydelig mængde af hans kode og ændrede den til at arbejde med disse tavler. Tjek hans blog, hvis du vil forstå, hvordan denne kode fungerer. Koden jeg postede får en regnbue til at påvirke. Det er muligt, så lav solide farver, hvis det er din ting.

En mindre ting er, at jeg ikke kan finde ud af at dæmpe disse lysdioder, da de er virkelig lyse. Måske kunne nogen efterlade en kommentar og hjælpe mig.

#include #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_PER_SEC_PER_SEC_PER_SEC_SEC_PER_SEC_PER_SEC_PER_SEC_PER_SEC_PER_SEC_PER_LINE #define NS_PER_CYCLE (NS_PER_SEC / CYCLES_PER_SEC) #define NS_TO_CYCLES (n) ((n) / NS_PER_CYCLE)

inline void sendBit (bool bitVal) {

hvis (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));

} andet {

asm flygtig ("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 (usigneret char -byte) {for (unsigned char bit = 0; bit <8; bit ++) {sendBit (bitRead (byte, 7)); byte << = 1; }}

void ledsetup () {

bitSet (PIXEL_DDR, PIXEL_BIT); }

inline void sendPixel (usigneret tegning, usigneret tegn, usigneret tegn b) {

sendByte (g); // Neopixel vil have farver i grønt og derefter rødt og derefter blåt for sendByte (r); sendByte (b); }

ugid show () {

_forsinkelse_us ((RES / 1000UL) + 1); // Rund op, da forsinkelsen skal være _at_least_ så lang (for kort virker muligvis ikke, for lang tid er ikke et problem)}

void showColor (usigneret tegn, usigneret tegning, usigneret tegning b) {

cli (); for (int p = 0; s

8;

usigneret char step = currentPixelHue & 0xff; switch (fase) {case 0: sendPixel (~ trin, trin, 0); pause; sag 1: sendPixel (0, ~ trin, trin); pause;

sag 2:

sendPixel (trin, 0, ~ trin); pause; } currentPixelHue+= pixelAdvance; } sei (); at vise(); firstPixelHue += frameAdvance; }}

ugyldig opsætning () {

ledsetup (); }

void loop () {

rainbowCycle (1000, 10, 10); Vend tilbage; }

Trin 3: Alt udført

Helt færdig
Helt færdig
Helt færdig
Helt færdig
Helt færdig
Helt færdig

Forhåbentlig fungerer alt på dette tidspunkt, men hvis det ikke er det, lad os afslutte med fejlfinding.

1. Boardet genkendes ikke af Arduino - sørg for, at du har digispark -biblioteket installeret, og du læser, hvordan du bruger digispark -boards.

2. Koden uploades ikke - Du skal trykke på upload og derefter tilslutte modulet til computeren, dumt ved jeg, men sådan fungerer det.

3. Board fungerer stadig ikke - Sørg for, at dit mikro -USB -kabel tillader data såvel som strøm, ikke alle kabler gør. Du kan forestille dig, at jeg fandt ud af det på den hårde måde.

4. Stadig intet - Dine dioder kan være baglæns - tjek med et multimeter for korrekt orientering.

5. Mærkelige blinkende lysdioder - Enten er dette et kodeproblem, eller en af dine lysdioder sidder ikke korrekt på signalpladen.

6. De sidste 3 lysdioder er rodet - Ah! du er løbet ind i min designfejl. Sørg for, at jorden via blev boret ud - kontroller med en multimeter kontinuitet mellem signalet og jorden. Sørg derefter for, at din brotråd også er isoleret fra jorden.

7. Stadig brudt - jeg er ærligt tømt for løsninger, besked mig.

Nå, jeg håber, at du har nydt min Instructable! Efterlad en kommentar, hvis du gjorde det.

Bedst, Nick

Anbefalede: