Innholdsfortegnelse:

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

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

Video: Holiday Ornament PCB: 3 trinn (med bilder)
Video: Как использовать Microsoft SharePoint 2024, November
Anonim
Holiday Ornament PCB
Holiday Ornament PCB
Holiday Ornament PCB
Holiday Ornament PCB
Holiday Ornament PCB
Holiday Ornament PCB

Hei alle sammen!

Det er den tiden på året og sesongen for utveksling av gaver nesten over oss. Jeg personlig liker å få lage ting og dele dem med familien. I år bestemte jeg meg for å lage feriepynt med Atting85 og noen WS2812C 2020 lysdioder. Ornamentet er omtrent 80 mm i diameter, så det er en rimelig størrelse ornament for treet. Hvis du ikke er en treperson, vet du hva, det er også et flott skrivebordspynt. WS2812C 2020 -lysdiodene er utrolig lyse små buggere, så ikke bekymre deg for at det blir for svakt haha. Jeg har testet den på 3,3 volt med et strømforbruk på 0,013 ampere, og for 5 volt var strømforbruket 0,023 ampere. Du kan enten drive dette kortet med en direkte 5 volt på baksiden eller gjennom mikro -USB -kontakten på baksiden. Jeg kunne koble dette til den bærbare datamaskinen min og slå den på. Det er også et alternativ på baksiden for å drive den med andre strømkilder på maksimalt 30 volt, men det er å stole på databladet for 78L05 5V -regulatoren, jeg ville ikke skyve det så langt.

Vennligst les gjennom hele guiden før du bygger denne. Lær av mine feil fordi jeg stoler på at jeg vanligvis tjener mye og kan dele visdomsperlene mine.

Hvis du er interessert i å kjøpe en ferdiglaget PCB eller bare PCB -en selv, kan du besøke min tindie -butikk.

Rekvisita

La oss starte med alle verktøyene du trenger for å bygge en av disse pyntene selv. Dette er faktisk et av mine få prosjekter som ikke krever en betydelig mengde verktøy, noe som er flott for deg!

Verktøy

- Varmepistol (primærverktøy)/loddejern (feilretting)

- ESD pinsett

- Isopropylalkohol

- SMT -sjablong (sterkt anbefalt)

- Loddemasse (jeg bruker en lavtemperatur blyfri loddemasse som selges på Amazon)

Rekvisita

- x10 WS2812 2020 lysdioder

- x1 Attiny85 mikrokontroller

- x11 0.1uf 0603 kondensatorer

- x1 0.1uf 0402 kondensator (Du kan slippe unna med en 0603 cap)

- x1 SMD Micro USB -kontakt

- x1 1,5K Ohm motstand

- x1 4.7uf 0805 kondensator

- x1 78L05 5V regulator

- x1 SOD123 Diode (jeg brukte en ledning som erstatning, da dette ikke er nødvendig, men jeg glemte å fjerne det da jeg designet kortet)

- x2 SOD323 Dioder

- x2 66,5 Ohm motstander (Du kan også bruke x2 24 -Ohm motstander her også, jeg tror at alle matchende par faktisk vil gjøre det - ikke siter meg)

Valgfri

- x1 24 Ohm motstand

- x1 30 Ohm motstand

(Disse er for en spenningsdeler hvis du ønsket å måle inngangsspenningen for en lavspenningsmonitor - bare et alternativ)

Trinn 1: Montering

montering
montering
montering
montering
montering
montering
montering
montering

Monteringsprosessen er ganske rett frem. Sørg for at du orienterer deler riktig, og at du ikke skal få problemer. Vet du hva, hvis du er som meg og absolutt ingenting fungerer første gangen … bokstavelig talt ingenting, legger jeg inn noen feilsøkingstrinn på slutten.

Først og fremst, du trenger den sjablongen nå … Jeg har lagt ved 1: 1 skala PCB PDF -fil, slik at du kan rastre den på din egen laserskjærer. Hvis du trenger et snitt til deg, send meg en melding, jeg gjør det også. Ellers gjør du dette for hånd til en dyktig bada $$.

Hvis du har erfaring med å lage PCB, er det her du skal gå videre og sikre sjablongen din, spre loddepastaen bla bla du får det. For de som aldri har gjort dette, ingen grunn til bekymring, se en YouTube -video eller to. Sørg for at justeringen din er perfekt før du sprer loddemassen og lett sitronpresset.

Fjern sjablongen din forsiktig, og la oss begynne å plassere deler !!

Observer det nøye tegnet bildet ditt for deg, laget med kjærlighet og øm omsorg.

- Mørk lilla = 0.1uf 0603

- Blå = dioder

- Limegrønn = 4,7 uf 0805 (Kan sannsynligvis bruke 0603)

- Lilla = Wire bridge

- Rosa = Spenningsdeler motstander

- Rød = WS2812C lysdioder (Vær oppmerksom på orienteringen, den mørkere delen vil være nederst)

- Gul = 78L05 5V regulator 100mA

Vil du vite hva den andre gule merkingen er til for? Er du sikker? Vel … DET ER EN FEIL OK! Jeg satte en freakin bakken i signalet spor, bokstavelig talt smekk dab i midten OK. HVORFOR … JEG VET IKKE.

Jeg går unna. Etter flere timers smertefullt trekking av håret mitt, innså jeg feilen min. For å fikse det, måtte jeg ikke bare bore ut bakken via, men bore et utrolig lite hull gjennom brettet og koble signalsporet med en liten ledning. Jeg brukte litt flytende elektrisk tape for å sikre og dekke min feil. Du kan ikke se det veldig godt når det er dekket takk og lov.

Jeg vil også fikse dette hvis du kjøper et brett av meg, så ingen bekymringer der.

Trinn 2: Koding

Koding
Koding
Koding
Koding

Så før jeg designet dette tenkte jeg: "Åh små WS2812 lysdioder, de må bruke samme kode som WS2812b, dette kommer til å bli en tur i parken!" FEIL

Disse bruker ikke samme timing som WS2812b lysdioder, så det er en læringskurve eller et fjell avhengig av komforten din med koding.

Etter et lite "Oh $ hit" -øyeblikk fant jeg denne bloggen av Josh Levin. Så rop ut til ham for å hjelpe meg å finne ut av dette. Jeg brukte en betydelig mengde av koden hans og endret den for å fungere med disse brettene. Sjekk bloggen hans hvis du vil forstå hvordan denne koden fungerer. Koden jeg la ut får en regnbue til å påvirke. Det er mulig, så lag solide farger hvis det er noe for deg.

En liten ting er at jeg ikke kan finne ut hvordan jeg skal dempe disse lysdiodene, ettersom de er veldig lyse. Kanskje noen kan legge igjen en kommentar og hjelpe meg.

#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_SER_100_define_ECER_SEC_PER_SEC_PER_SEC_PER_SECE_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 flyktig ("sbi %[port], %[bit] n / t" ".rept %[onCycles] n / t" "nei / 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));

} annet {

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 (usignert 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 (usignert karakter, usignert tegn, usignert tegn b) {

sendByte (g); // Neopixel vil ha farger i grønt og deretter rødt og deretter blått for sendByte (r); sendByte (b); }

ugid show () {

_forsinkelse_us ((RES / 1000UL) + 1); // Avrund siden forsinkelsen må være _at_least_ så lang (for kort fungerer kanskje ikke, for lang er ikke noe problem)}

void showColor (usignert tegn, usignert tegn, usignert tegn b) {

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

8;

usignert char step = currentPixelHue & 0xff; switch (fase) {case 0: sendPixel (~ trinn, trinn, 0); gå i stykker; sak 1: sendPixel (0, ~ trinn, trinn); gå i stykker;

sak 2:

sendPixel (trinn, 0, ~ trinn); gå i stykker; } currentPixelHue+= pixelAdvance; } sei (); forestilling(); firstPixelHue += frameAdvance; }}

ugyldig oppsett () {

ledsetup (); }

void loop () {

rainbowCycle (1000, 10, 10); komme tilbake; }

Trinn 3: Alt ferdig

Ferdig
Ferdig
Ferdig
Ferdig
Ferdig
Ferdig

Forhåpentligvis fungerer alt på dette tidspunktet, men hvis det ikke er det, la oss avslutte med litt feilsøking.

1. Styret blir ikke gjenkjent av Arduino - sørg for at du har digispark -biblioteket installert og at du leser hvordan du bruker digispark -tavler.

2. Koden lastes ikke opp - Du må trykke opplasting og deretter koble modulen til datamaskinen, dum vet jeg, men det er slik det fungerer.

3. Brettet fungerer fortsatt ikke - Sørg for at mikro -USB -kabelen gir både data og strøm, ikke alle kabler gjør det. Du kan forestille deg at jeg fant ut dette på den harde måten.

4. Fremdeles ingenting - Diodene dine kan være bakover - sjekk med et multimeter for riktig orientering.

5. Merkelige blinkende lysdioder - Enten er dette et kodeproblem, eller så sitter ikke en av lysdiodene dine ordentlig på signalputen.

6. De tre siste lysdiodene er rotete - Ah! du har støtt på designfeilen min. Sørg for at bakken via ble boret ut - sjekk med en multimeterkontinuitet mellom signalet og bakken. Sørg deretter for at brotråden din også er isolert fra bakken.

7. Fortsatt ødelagt - jeg er ærlig talt ute av løsninger, meld meg.

Vel, jeg håper du likte Instructable! Legg igjen en kommentar hvis du gjorde det.

Beste, Nick

Anbefalt: