Inhoudsopgave:

Holiday Ornament PCB: 3 stappen (met afbeeldingen)
Holiday Ornament PCB: 3 stappen (met afbeeldingen)

Video: Holiday Ornament PCB: 3 stappen (met afbeeldingen)

Video: Holiday Ornament PCB: 3 stappen (met afbeeldingen)
Video: Мальвы цветут_Рассказ_Слушать 2024, November
Anonim
Vakantie Ornament PCB
Vakantie Ornament PCB
Vakantie Ornament PCB
Vakantie Ornament PCB
Vakantie Ornament PCB
Vakantie Ornament PCB

Hallo iedereen!

Het is die tijd van het jaar en het seizoen van het uitwisselen van geschenken is bijna aangebroken. Persoonlijk vind ik het leuk om dingen te maken en te delen met het gezin. Dit jaar besloot ik kerstversieringen te maken met de Atting85 en enkele WS2812C 2020-leds. Het ornament is ongeveer 80 mm in diameter, dus het is een redelijk formaat ornament voor de boom. Als je geen boommens bent, weet je wat, het is ook een geweldig bureauornament. De WS2812C 2020-LED's zijn ongelooflijk heldere kleine buggers, dus maak je geen zorgen dat het te zwak is haha. Ik heb het getest op 3,3 volt met een stroomverbruik van 0,013 ampère en voor 5 volt was het stroomverbruik 0,023 ampère. Je kunt dit bord van stroom voorzien met een directe 5 volt aan de achterkant of via de micro-USB-connector aan de achterkant. Ik zou deze in mijn laptop kunnen steken en hem van stroom kunnen voorzien. Er is ook een optie op de achterkant om hem van stroom te voorzien met andere stroombronnen met een maximum van 30 volt, maar als ik de datasheet voor de 78L05 5V-regelaar vertrouw, zou ik het niet zo ver pushen.

Lees de hele handleiding door voordat u dit gaat bouwen. Leer van mijn fouten want geloof me, ik verdien meestal veel en kan mijn parels van wijsheid delen.

Als je geïnteresseerd bent in het kopen van een premade PCB of alleen de PCB zelf, bezoek dan mijn Tindie-winkel.

Benodigdheden

Laten we beginnen met alle gereedschappen die je nodig hebt om zelf een van deze ornamenten te bouwen. Dit is eigenlijk een van mijn weinige projecten waarvoor niet veel tools nodig zijn, wat geweldig is voor jou!

Gereedschap

- Heteluchtpistool (primair gereedschap)/soldeerbout (fouthersteller)

- ESD-pincet

- Isopropylalcohol

- SMT-stencil (sterk aanbevolen)

- Soldeerpasta (ik gebruik een lage temperatuur loodvrije soldeerpasta die op Amazon wordt verkocht)

Benodigdheden

- x10 WS2812 2020 LED's

- x1 Attiny85-microcontroller

- x11 0.1uf 0603 condensatoren

- x1 0.1uf 0402 condensator (je zou weg kunnen komen met een 0603 Cap)

- x1 SMD Micro USB-connector

- x1 1.5K Ohm Weerstand

- x1 4.7uf 0805 Condensator

- x1 78L05 5V-regelaar

- x1 SOD123-diode (ik heb een draad gebruikt als vervanging omdat dit niet nodig is, maar ik ben vergeten deze te verwijderen bij het ontwerpen van het bord)

- x2 SOD323 Diodes

- x2 66.5 Ohm-weerstanden (je zou hier ook x2 24-Ohm-weerstanden kunnen gebruiken, ik geloof dat elk bijpassend paar het eigenlijk zal doen - citeer me niet)

Optioneel

- x1 24 Ohm Weerstand

- x1 30 Ohm Weerstand

(Deze zijn voor een spanningsdeler als u de ingangsspanning voor een laagspanningsmonitor wilt meten - gewoon een optie)

Stap 1: Montage

samenkomst
samenkomst
samenkomst
samenkomst
samenkomst
samenkomst
samenkomst
samenkomst

Het montageproces is vrij eenvoudig. Zorg ervoor dat u de onderdelen correct oriënteert en dat u niet in de problemen komt. Weet je wat, als je net als ik bent en absoluut niets de eerste keer werkt … letterlijk niets, gooi ik aan het einde een aantal stappen voor probleemoplossing in.

Nou, eerst en vooral, je hebt dat stencil nu nodig … Ik heb het 1:1 PCB PDF-bestand bijgevoegd, zodat je het op je eigen lasersnijder kunt rasteren. Als je er een voor je nodig hebt, stuur me dan een bericht, dat zal ik ook doen. Als u dit met de hand doet, wordt u een bekwame bada$$.

Als je ervaring hebt met het maken van PCB's, dan is dit waar je doorgaat en je stencil vastzet, verspreid je soldeerpasta bla bla bla, je snapt het. Voor degenen die dit nog nooit hebben gedaan, geen zorgen, bekijk een youtube-video of twee. Zorg ervoor dat je uitlijning perfect is voordat je je soldeerpasta en easy peasy lemon squeezy verspreidt.

Verwijder voorzichtig je stencil en laten we beginnen met het plaatsen van onderdelen!!

Bekijk mijn zorgvuldig getekende foto voor jou, gemaakt met liefde en tedere zorg.

- Donkerpaars = 0.1uf 0603

- Blauw = Diodes

- Lime Green = 4.7 uf 0805 (Kan 0603 gebruiken, waarschijnlijk)

- Paars = Draadbrug

- Roze = Spanningsdelerweerstanden

- Rood = WS2812C LED's (let op hun oriëntatie, het donkere gedeelte bevindt zich aan de onderkant)

- Geel = 78L05 5V regelaar 100mA

Wil je weten waar die andere gele markering voor is? Weet je zeker dat? Nou… HET IS EEN FOUT OK! Ik heb een freakin grond via in het signaalspoor gezet, letterlijk in het midden scharrelen OK. WAAROM… IK WEET NIET.

Ik dwaal af. Na urenlang pijnlijk mijn haar uit te trekken, realiseerde ik me mijn fout. Om het te repareren, moest ik niet alleen de grond uitboren, maar ook een ongelooflijk klein gaatje door het bord boren en het signaalspoor verbinden met een kleine draad. Ik heb wat vloeibare elektrische tape gebruikt om mijn fout vast te zetten en te bedekken. Je kunt het niet zo goed zien als het is bedekt, godzijdank.

Ik zal dit ook oplossen als je een bord van mij koopt, dus maak je geen zorgen.

Stap 2: Coderen

codering
codering
codering
codering

Dus voordat ik dit ontwierp, dacht ik: "Oh kleine WS2812 LED's, ze moeten dezelfde code gebruiken als de WS2812b's, dit wordt een wandeling in het park!" MIS

Deze gebruiken niet dezelfde timing als de WS2812b LED's, dus er is een leercurve of berg, afhankelijk van uw comfort met codering.

Na een klein "Oh $hit" momentje vond ik deze blog van Josh Levin. Dus schreeuw naar hem omdat hij me heeft geholpen dit uit te zoeken. Ik heb een aanzienlijk deel van zijn code gebruikt en deze aangepast om met deze borden te werken. Check zijn blog als je wilt begrijpen hoe deze code werkt. De code die ik heb gepost, heeft een regenboogeffect. Het is mogelijk dus maak effen kleuren als dat je ding is.

Een klein ding is dat ik er niet achter kan komen hoe ik deze LED's moet dimmen, omdat ze erg helder zijn. Misschien kan iemand een reactie achterlaten en me helpen.

#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 (1000000000L_PERC) #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 vluchtig ("sbi %[poort], %[bit] n\t" ".rept %[onCycles] n\t" "nop \n\t" ".endr \n\t " "cbi %[poort], %[bit] n\t" ".rept %[offCycles] n\t" "nop \n\t" ".endr \n\t":: [poort] " I" (_SFR_IO_ADDR(PIXEL_PORT)), [bit] "I" (PIXEL_BIT), [onCycles] "I" (NS_TO_CYCLES(T1H) - 2), [offCycles] "I" (NS_TO_CYCLES(T1L) - 2));

} anders {

asm vluchtig ("sbi %[poort], %[bit] n\t" ".rept %[onCycles] n\t" "nop \n\t" ".endr \n\t" "cbi %[poort], %[bit] n\t" ".rept %[offCycles] n\t" "nop \n\t" ".endr \n\t":: [poort] "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; } }

leegte ledsetup() {

bitSet(PIXEL_DDR, PIXEL_BIT); }

inline void sendPixel (unsigned char r, unsigned char g, unsigned char b) {

sendByte(g); // Neopixel wil kleuren in groen, dan rood en dan blauw order sendByte(r); sendByte(b); }

ongeldige toon() {

_delay_us((RES / 1000UL) + 1); // Naar boven afronden aangezien de vertraging _ten minste_ zo lang moet zijn (te kort werkt misschien niet, te lang geen probleem)}

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

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

8;

niet-ondertekende tekenstap = currentPixelHue & 0xff; schakelaar (fase) {geval 0: sendPixel (~ stap, stap, 0); pauze; geval 1: sendPixel(0, ~step, step); pauze;

geval 2:

sendPixel(stap, 0, ~stap); pauze; } currentPixelHue+=pixelAdvance; } zie(); laten zien(); firstPixelHue += frameAdvance; } }

ongeldige setup() {

ledsetup(); }

lege lus() {

regenboogCycle(1000, 10, 10); opbrengst; }

Stap 3: Alles klaar

Helemaal klaar
Helemaal klaar
Helemaal klaar
Helemaal klaar
Helemaal klaar
Helemaal klaar

Hopelijk werkt alles op dit moment, maar als dat niet het geval is, laten we eindigen met wat probleemoplossing.

1. Bord wordt niet herkend door Arduino - zorg ervoor dat je de digispark-bibliotheek hebt geïnstalleerd en lees hoe je digispark-borden gebruikt.

2. Code wil niet uploaden - Je moet op upload drukken en dan de module op de computer aansluiten, stom ik weet het, maar zo werkt het.

3. Bord werkt nog steeds niet - Zorg ervoor dat uw micro-USB-kabel zowel gegevens als stroom aankan, niet alle kabels. Je kunt je voorstellen dat ik hier op de harde manier achter ben gekomen.

4. Nog steeds niets - Uw diodes kunnen achterstevoren zijn - controleer met een multimeter voor de juiste oriëntatie.

5. Vreemd knipperende LED's - Dit is een codeprobleem of een van uw LED's zit niet goed op het signaalpad.

6. De laatste 3 LED's zijn in de war - Ah! je bent tegen mijn ontwerpfout aangelopen. Zorg ervoor dat de grond via is uitgeboord - controleer met een multimeter continuïteit tussen het signaal en de grond. Zorg er dan voor dat je brugdraad ook geïsoleerd is van de grond.

7. Nog steeds kapot - ik heb eerlijk gezegd geen oplossingen, stuur me een bericht.

Nou, ik hoop dat je genoten hebt van mijn Instructable! Laat een reactie achter als je dat hebt gedaan.

Het beste, Nick

Aanbevolen: