Mündəricat:

Bayram bəzəyi PCB: 3 addım (şəkillərlə)
Bayram bəzəyi PCB: 3 addım (şəkillərlə)

Video: Bayram bəzəyi PCB: 3 addım (şəkillərlə)

Video: Bayram bəzəyi PCB: 3 addım (şəkillərlə)
Video: Bayram bəzəyi 2024, Dekabr
Anonim
Bayram bəzəyi PCB
Bayram bəzəyi PCB
Bayram bəzəyi PCB
Bayram bəzəyi PCB
Bayram bəzəyi PCB
Bayram bəzəyi PCB

Hamıya salam!

İlin o vaxtı və hədiyyə mübadiləsi mövsümü demək olar ki, qarşımızdadır. Şəxsən bir şeylər etməkdən və onları ailə ilə bölüşməkdən zövq alıram. Bu il Atting85 və bəzi WS2812C 2020 LED -lərindən istifadə edərək bayram bəzəkləri hazırlamaq qərarına gəldim. Bu bəzək təxminən 80 mm diametrdədir, buna görə də ağac üçün ağlabatan ölçüdə bir bəzəkdir. Bildiyiniz bir ağac adamı deyilsinizsə, əla bir masa bəzəyi də yaradır. WS2812C 2020 LEDləri inanılmaz dərəcədə parlaq kiçik səhvlərdir, buna görə çox qaranlıq olmasından narahat olmayın haha. 0.03 amper cərəyanla 3.3 voltda sınadım, sonra 5 volt üçün cari istehlak 0.023 amper idi. Bu lövhəni arxada birbaşa 5 voltla və ya arxadakı mikro USB konnektoru ilə gücləndirə bilərsiniz. Bunu dizüstü kompüterimə qoşub gücə qoşa bilərdim. Arxada, maksimum 30 volt gücündə digər enerji mənbələri ilə təchiz etmək üçün bir seçim də var, amma 78L05 5V tənzimləyicisinin məlumat cədvəlinə güvəndiyim üçün onu bu qədər irəli çəkməzdim.

Zəhmət olmasa bunu qurmadan əvvəl bütün bələdçini oxuyun. Səhvlərimdən öyrənin, mənə güvənirəm, ümumiyyətlə çox şey edirəm və müdrik incilərimi paylaşa bilərəm.

Hazır bir PCB və ya yalnız PCB almaq istəyirsinizsə, mənim tindie mağazamı ziyarət edin.

Təchizat

Bu bəzək əşyalarından birini özünüz tikmək üçün lazım olacaq bütün vasitələrdən başlayaq. Bu, əslində sizin üçün əla olan çoxlu alət tələb etməyən bir neçə layihəmdən biridir!

Alətlər

- İstilik silahı (əsas alət)/lehimləmə dəmiri (səhv düzəldici)

- ESD cımbızları

- İzopropil spirti

- SMT şablon (çox tövsiyə olunur)

- Lehim pastası (Amazonda satılan aşağı temperaturlu qurğusuz lehim pastasından istifadə edirəm)

Təchizat

- x10 WS2812 2020 LEDləri

- x1 Attiny85 Mikro nəzarətçi

- x11 0.1uf 0603 Kondansatörler

- x1 0.1uf 0402 Kondansatör (0603 Cap ilə qaça bilərsiniz)

- x1 SMD Micro USB konnektoru

- x1 1.5K Ohm Rezistor

- x1 4.7uf 0805 kondansatör

- x1 78L05 5V tənzimləyicisi

- x1 SOD123 Diod (əvəzedilməz bir tel istifadə etdim, çünki bu lazım deyil, amma lövhəni tərtib edərkən onu çıxarmağı unutmuşam)

- x2 SOD323 Diodlar

- x2 66.5 Ohm Rezistorlar (Burada da x2 24 Ohm rezistorlardan istifadə edə bilərsiniz, hər hansı bir uyğun cütlüyün əslində edəcəyinə inanıram - məndən sitat gətirməyin)

İsteğe bağlı

- x1 24 Ohm rezistor

- x1 30 Ohm rezistor

(Aşağı gərginlikli bir monitor üçün giriş gərginliyini ölçmək istəsəniz bunlar bir gərginlik bölücü üçündür - yalnız bir seçimdir)

Addım 1: Quraşdırma

Məclis
Məclis
Məclis
Məclis
Məclis
Məclis
Məclis
Məclis

Quraşdırma prosesi kifayət qədər irəli gedir. Parçaları düzgün istiqamətləndirdiyinizə əmin olun və problem yaşamamalısınız. Nə bilirsən, əgər mənim kimi olsan və ilk dəfə heç bir şey işləməsə … sözün əsl mənasında heç bir şey yoxdur, sonda bəzi problem giderme addımları atıram.

Yaxşı hər şeydən əvvəl, indi bu şablona ehtiyacınız olacaq … 1: 1 ölçülü PCB PDF faylını əlavə etdim ki, öz lazer kəsicinizdə raster edə biləsiniz. Sizin üçün bir kəsmə ehtiyacınız varsa, mənə də bunu edəcəyimi bildirin. Əks təqdirdə bunu əllə etmək sizi bacarıqlı bir bada $$ edəcək.

PCB hazırlamaq təcrübəniz varsa, buraya davam edərək şablonunuzu qoruyacaqsınız, lehim pastanızı bla bla bla yayacaqsınız. Heç vaxt bunu etməyənlər üçün, narahat olmayın, bir -iki youtube videosuna baxın. Lehim pastasını və asan peasy limon sıxmasını yaymadan əvvəl uyğunluğunuzun mükəmməl olduğundan əmin olun.

Trafaretinizi diqqətlə çıxarın və hissələri yerləşdirməyə başlayaq !!

Sevgi və incə qayğı ilə hazırladığım diqqətlə çəkdiyim şəklə baxın.

- Tünd Bənövşəyi = 0.1uf 0603

- Mavi = Diodlar

- Lime Green = 4.7 uf 0805 (0603 istifadə oluna bilər, yəqin ki)

- Bənövşəyi = Tel körpü

- Çəhrayı = Gərginlik bölücü rezistorlar

- Qırmızı = WS2812C LEDləri (İstiqamətlərini müşahidə edin, qaranlıq hissəsi altda olacaq)

- Sarı = 78L05 5V tənzimləyici 100mA

Digər sarı işarənin nə üçün olduğunu bilmək istəyirsiniz? Sən əminsən? Yaxşı… BU YANLIQDIR! Siqnal izi ilə qəribə bir yer qoydum, tam olaraq ortada vur. NİYƏ … Bilmirəm.

Mən kənara çəkilirəm. Saatlarla ağrılı şəkildə saçlarımı çəkdikdən sonra səhvimi başa düşdüm. Bunu düzəltmək üçün nəinki yer qazmaqla yanaşı, lövhədən inanılmaz dərəcədə kiçik bir delik açmalı və siqnal izini kiçik bir tellə bağlamalı idim. Səhvimi qorumaq və örtmək üçün bir az maye elektrik lenti istifadə etdim. Şükürlər olsun ki, onu yaxşı görə bilməzsən.

Məndən bir lövhə alsanız, narahat olmayın, bunu da düzəldəcəyəm.

Addım 2: Kodlaşdırma

Kodlaşdırma
Kodlaşdırma
Kodlaşdırma
Kodlaşdırma

Bunu tərtib etməzdən əvvəl "Oh kiçik WS2812 LEDləri, WS2812b ilə eyni kodu istifadə etməlidirlər, bu parkda gəzintiyə çıxacaq!" Səhv

Bunlar WS2812b LEDləri ilə eyni vaxtdan istifadə etmir, buna görə kodlaşdırma rahatlığınızdan asılı olaraq öyrənmə əyrisi və ya dağ var.

Kiçik bir "Oh $ hit" anından sonra bu bloqu Josh Levin tərəfindən tapdım. Bunu başa düşməyimə kömək etdiyi üçün ona qışqır. Onun kodundan xeyli miqdarda istifadə etdim və bu lövhələrlə işləmək üçün onu dəyişdirdim. Bu kodun necə işlədiyini başa düşmək istəyirsinizsə blogunu yoxlayın. Göndərdiyim kod göy qurşağı təsir edir. Mümkündür, əgər bu sizin işinizdirsə, qatı rənglər hazırlayın.

Kiçik bir şey, bu LED -lərin həqiqətən parlaq olduğu üçün necə qaralacağını anlaya bilmirəm. Bəlkə kimsə şərh yazıb mənə kömək edə bilər.

#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 300000FEFE_Fine_FEF #NS_PER_CYCLE (NS_PER_SEC / CYCLES_PER_SEC) #NS_TO_CYCLES (n) ((n) / NS_PER_CYCLE) təyin edin

inline void sendBit (bool bitVal) {

if (bitVal) {asm uçucu ("sbi %[port], %[bit] n / t" ".rept %[onCycles] n / t" "yox / n / t" ".endr / n / t "" cbi %[port], %[bit] n / t "".rept %[offCycles] n / t "" yox / 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));

} başqa {

uçucu uçucu ("sbi %[port], %[bit] n / t" ".rept %[onCycles] n / t" "yox / n / t" ".endr / n / t" "cbi %[port], %[bit] n / t "".rept %[offCycles] n / t "" yox / n / t "".endr / n / t ":: [liman]" Mən "(_SFR_IO_ADDR (PIXEL_PORT)), [bit] "I" (PIXEL_BIT), [onCycles] "Mən" (NS_TO_CYCLES (T0H) - 2), [offCycles] "I" (NS_TO_CYCLES (T0L) - 2));

} }

inline void sendByte (işarəsiz char bayt) {for (unsigned char bit = 0; bit <8; bit ++) {sendBit (bitRead (byte, 7)); bayt << = 1; }}

void ledsetup () {

bitSet (PIXEL_DDR, PIXEL_BIT); }

inline void sendPixel (işarəsiz char r, işarəsiz char g, işarəsiz char b) {

sendByte (g); // Neopixel rəngləri yaşıldan sonra qırmızıdan sonra mavi rənglə göndərmək istəyir sendByte (r); sendByte (b); }

boş şou () {

_delay_us ((RES / 1000UL) + 1); // Gecikmə _at_least_ bu qədər uzun olmalıdır (çox qısa işləməyə bilər, çox uzun bir problem deyil)}

void showColor (işarəsiz char r, işarəsiz char g, işarəsiz char b) {

cli (); üçün (int p = 0; p

8;

işarəsiz char addımı = currentPixelHue & 0xff; keçid (faz) {halda 0: sendPixel (~ addım, addım, 0); fasilə; hal 1: sendPixel (0, ~ addım, addım); fasilə;

hal 2:

sendPixel (addım, 0, ~ addım); fasilə; } currentPixelHue+= pixelAdvance; } sei (); göstərmək (); firstPixelHue += frameAdvance; }}

boş quraşdırma () {

ledsetup (); }

boşluq döngəsi () {

göy qurşağı dövrü (1000, 10, 10); qayıtmaq; }

Addım 3: Hər şey bitdi

Hər şey hazırdır
Hər şey hazırdır
Hər şey hazırdır
Hər şey hazırdır
Hər şey hazırdır
Hər şey hazırdır

Ümid edirəm ki, hər şey bu nöqtədə işləyir, amma əgər deyilsə, bəzi problemlərin həlli ilə bitirək.

1. Board Arduino tərəfindən tanınmır - digispark kitabxanasının quraşdırıldığından və digispark lövhələrindən necə istifadə olunacağını oxuduğunuzdan əmin olun.

2. Kod yüklənməyəcək - Yükləmə düyməsini basmalısınız və sonra modulu kompüterə qoşmalısınız, lal bilirəm, amma belə işləyir.

3. Lövhə hələ də işləmir - Mikro USB kabelinizin bütün kabellərin deyil, məlumatların və gücün də təmin etdiyinə əmin olun. Bunu çətin bir şəkildə başa düşdüyümü təsəvvür edə bilərsiniz.

4. Hələ heç nə - Diodlarınız geriyə doğru ola bilər - düzgün oriyentasiya üçün multimetrlə yoxlayın.

5. Qəribə yanıb -sönən LEDlər - Ya bu kod problemidir, ya da ledlərinizdən biri siqnal padində düzgün oturmur.

6. Son 3 LED çökdü - Ah! dizayn səhvimlə qarşılaşdın. Torpağın qazıldığından əmin olun - siqnal və torpaq arasındakı multimetr davamlılığını yoxlayın. Sonra körpü telinizin də yerdən təcrid olunduğundan əmin olun.

7. Hələ də pozulmuşam - vicdanla həll yollarım bitdi, mənə mesaj göndər.

Yaxşı, inşallah Təlimatımdan zövq aldınız! Etmisinizsə, şərh yazın.

Ən yaxşısı, Nik

Tövsiyə: