Sommario:

PCB per ornamenti natalizi: 3 passaggi (con immagini)
PCB per ornamenti natalizi: 3 passaggi (con immagini)

Video: PCB per ornamenti natalizi: 3 passaggi (con immagini)

Video: PCB per ornamenti natalizi: 3 passaggi (con immagini)
Video: Albero di Natale con la carta tutorial | Lavoretti di Natale fai da te | Christmas crafts ideas 2024, Dicembre
Anonim
Ornamento di festa PCB
Ornamento di festa PCB
Ornamento di festa PCB
Ornamento di festa PCB
Ornamento di festa PCB
Ornamento di festa PCB

Ciao a tutti!

È quel periodo dell'anno e la stagione dello scambio dei regali è quasi alle porte. Personalmente mi piace fare le cose e condividerle con la famiglia. Quest'anno ho deciso di realizzare decorazioni natalizie utilizzando l'Atting85 e alcuni LED WS2812C 2020. L'ornamento ha un diametro di circa 80 mm, quindi è un ornamento di dimensioni ragionevoli per l'albero. Se non sei una persona albero sai cosa, è anche un ottimo ornamento da scrivania. I LED WS2812C 2020 sono dei piccoli bastardi incredibilmente luminosi, quindi non preoccuparti che siano troppo fiochi ahah. L'ho testato a 3,3 volt con un consumo di corrente di 0,013 ampere, quindi per 5 volt il consumo di corrente era di 0,023 ampere. Puoi alimentare questa scheda con un 5 volt diretto sul retro o tramite il connettore micro USB sul retro. Potrei collegarlo al mio laptop e alimentarlo. C'è anche un'opzione sul retro per alimentarlo con altre fonti di alimentazione a un massimo di 30 volt, ma fidarsi della scheda tecnica per il regolatore 78L05 5V, non lo spingerei così lontano.

Si prega di leggere l'intera guida prima di creare questo. Impara dai miei errori perché fidati di me di solito faccio molto e posso condividere le mie perle di saggezza.

Se sei interessato all'acquisto di un PCB prefabbricato o solo del PCB stesso, visita il mio negozio Tindie.

Forniture

Iniziamo con tutti gli strumenti di cui avrai bisogno per costruire uno di questi ornamenti da solo. Questo è in realtà uno dei miei pochi progetti che non richiedono una quantità significativa di strumenti, il che è fantastico per te!

Utensili

- Pistola termica (utensile principale)/saldatore (correzione errori)

- Pinzette ESD

- Alcool isopropilico

- Stencil SMT (altamente raccomandato)

- Pasta saldante (io uso una pasta saldante senza piombo a bassa temperatura venduta su amazon)

Forniture

- x10 LED WS2812 2020

- x1 Microcontrollore Attiny85

- x11 0.1uf 0603 Condensatori

- x1 0.1uf 0402 Condensatore (potresti farla franca con un 0603 Cap)

- x1 connettore SMD Micro USB

- x1 resistenza da 1,5K Ohm

- x1 4.7uf 0805 Condensatore

- x1 78L05 Regolatore 5V

- x1 Diodo SOD123 (ho usato un filo in sostituzione poiché non è necessario, ma ho dimenticato di rimuoverlo durante la progettazione della scheda)

- x2 diodi SOD323

- x2 resistori da 66,5 Ohm (puoi anche usare x2 resistori da 24 Ohm anche qui, credo che qualsiasi coppia corrispondente andrà bene - non citarmi)

Opzionale

- x1 resistenza da 24 Ohm

- x1 Resistenza 30 Ohm

(Questi sono per un partitore di tensione se si desidera misurare la tensione di ingresso per un monitor a bassa tensione - solo un'opzione)

Passaggio 1: assemblaggio

Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea

Il processo di assemblaggio è abbastanza semplice. Assicurati di orientare le parti correttamente e non dovresti incorrere in problemi. Sai cosa, se sei come me e non funziona assolutamente nulla la prima volta … letteralmente niente, alla fine inserisco alcuni passaggi per la risoluzione dei problemi.

Bene, per prima cosa, avrai bisogno di quello stencil ora… Ho allegato il file PDF PCB in scala 1:1 in modo che tu possa rasterizzarlo sul tuo laser cutter. Se hai bisogno di un taglio per te, mandami un messaggio, lo farò anche io. Altrimenti farlo a mano ti renderà un abile bada$$.

Se hai esperienza nella creazione di PCB, è qui che andrai avanti e fisserai il tuo stencil, stendi la tua pasta saldante bla bla bla e avrai capito. Per coloro che non l'hanno mai fatto, non preoccuparti, guarda un video o due su YouTube. Assicurati che il tuo allineamento sia perfetto prima di stendere la pasta saldante e una facile spremitura di limone.

Rimuovi con attenzione lo stencil e iniziamo a posizionare le parti!!

Osserva la mia immagine disegnata con cura per te, realizzata con amore e tenera cura.

- Viola scuro = 0.1uf 0603

- Blu = Diodi

- Lime Green = 4.7 uf 0805 (potrebbe usare 0603, probabilmente)

- Viola = Ponte a filo

- Rosa = resistori partitore di tensione

- Rosso = LED WS2812C (osservare il loro orientamento, la parte più scura sarà in basso)

- Giallo = 78L05 Regolatore 5V 100mA

Volete sapere a cosa serve l'altra marcatura gialla? Sei sicuro? Ebbene… È UN ERRORE OK! Ho messo una strana via di massa nella traccia del segnale, letteralmente schiaffeggiando nel mezzo OK. PERCHE'… NON LO SO.

Io divago. Dopo ore passate a strapparmi dolorosamente i capelli, ho realizzato il mio errore. Per ripararlo, ho dovuto non solo perforare il terreno, ma praticare un foro incredibilmente piccolo attraverso la scheda e collegare la traccia del segnale con un piccolo filo. Ho usato del nastro isolante liquido per proteggere e coprire il mio errore. Non puoi vederlo molto bene una volta coperto per fortuna.

Risolverò anche questo se acquisti una scheda da me, quindi non preoccuparti.

Passaggio 2: codifica

codifica
codifica
codifica
codifica

Quindi, prima di progettare questo, ho pensato: "Oh piccoli LED WS2812, devono usare lo stesso codice dei WS2812b, sarà una passeggiata nel parco!" SBAGLIATO

Questi non usano la stessa temporizzazione dei LED WS2812b, quindi c'è una curva di apprendimento o una montagna a seconda del tuo comfort con la codifica.

Dopo un piccolo momento "Oh $hit", ho trovato questo blog di Josh Levin. Quindi grida a lui per avermi aiutato a capirlo. Ho usato una quantità significativa del suo codice e l'ho modificato per funzionare con queste schede. Controlla il suo blog se vuoi capire come funziona questo codice. Il codice che ho postato fa un effetto arcobaleno. È possibile quindi creare colori a tinta unita se questo è il tuo genere.

Una cosa minore è che non riesco a capire come attenuare questi LED perché sono davvero luminosi. Forse qualcuno potrebbe lasciare un commento e aiutarmi.

#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_CPUCYCY (100000SECCLES) #define_ #define NS_PER_CYCLE (NS_PER_SEC / CYCLES_PER_SEC) #define NS_TO_CYCLE(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 %[porta], %[bit] n\t" ".rept %[offCycles] n\t" "nop \n\t" ".endr \n\t":: [porta] " I" (_SFR_IO_ADDR(PIXEL_PORT)), [bit] "I" (PIXEL_BIT), [onCycles] "I" (NS_TO_CYCLES(T1H) - 2), [offCycles] "I" (NS_TO_CYCLES(T1L) - 2));

} altro {

asm volatile ("sbi %[porta], %[bit] n\t" ".rept %[onCycles] n\t" "nop \n\t" ".endr \n\t" "cbi %[porta], %[bit] n\t" ".rept %[offCycles] n\t" "nop \n\t" ".endr \n\t":: [porta] "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(unsigned 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(unsigned char r, unsigned char g, unsigned char b) {

sendByte(g); // Neopixel vuole i colori in verde, poi in rosso e poi in blu per sendByte(r); sendByte(b); }

spettacolo vuoto() {

_delay_us((RES / 1000UL) + 1); // Arrotonda per eccesso poiché il ritardo deve essere _almeno_ così lungo (troppo breve potrebbe non funzionare, troppo lungo non è un problema) }

void showColor(unsigned char r, unsigned char g, unsigned char b) {

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

8;

unsigned char step = currentPixelHue & 0xff; switch (phase) { case 0: sendPixel(~step, step, 0); rottura; caso 1: sendPixel(0, ~step, step); rottura;

caso 2:

sendPixel(passo, 0, ~passo); rottura; } currentPixelHue+=pixelAdvance; } sei(); mostrare(); firstPixelHue += frameAdvance; } }

void setup() {

ledsetup(); }

ciclo vuoto() {

RainbowCycle(1000, 10, 10); Restituzione; }

Passaggio 3: tutto fatto

Tutto fatto
Tutto fatto
Tutto fatto
Tutto fatto
Tutto fatto
Tutto fatto

Si spera che tutto funzioni a questo punto, ma in caso contrario, finiamo con un po' di risoluzione dei problemi.

1. La scheda non è riconosciuta da Arduino: assicurati di avere la libreria digispark installata e di leggere come usare le schede digispark.

2. Il codice non si carica - Devi premere upload e poi collegare il modulo al computer, stupido lo so, ma è così che funziona.

3. La scheda continua a non funzionare - Assicurati che il tuo cavo micro-USB consenta sia i dati che l'alimentazione, non tutti i cavi lo fanno. Puoi immaginare che l'abbia capito nel modo più duro.

4. Ancora niente - I tuoi diodi potrebbero essere al contrario - controlla con un multimetro per un corretto orientamento.

5. Strani LED lampeggianti - O si tratta di un problema di codice o uno dei tuoi LED non è posizionato correttamente sul pad del segnale.

6. Gli ultimi 3 LED sono incasinati - Ah! ti sei imbattuto nel mio errore di progettazione. Assicurarsi che la via di terra sia stata perforata, controllando con un multimetro la continuità tra il segnale e la terra. Quindi assicurati che anche il filo del ponte sia isolato da terra.

7. Ancora rotto - Sono onestamente a corto di soluzioni, inviami un messaggio.

Bene, spero che ti sia piaciuto il mio Instructable! Per favore lascia un commento se lo hai fatto.

Migliore, Nick

Consigliato: