Sadržaj:

LED sat pomoću neopiksela: 4 koraka (sa slikama)
LED sat pomoću neopiksela: 4 koraka (sa slikama)

Video: LED sat pomoću neopiksela: 4 koraka (sa slikama)

Video: LED sat pomoću neopiksela: 4 koraka (sa slikama)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Studeni
Anonim
LED sat pomoću neopiksela
LED sat pomoću neopiksela
LED sat pomoću neopiksela
LED sat pomoću neopiksela
LED sat pomoću neopiksela
LED sat pomoću neopiksela
LED sat pomoću neopiksela
LED sat pomoću neopiksela

Dobro došli u moje uputstvo o tome kako napraviti LED sat pomoću 60 neopiksela.

U prilogu ćete pronaći 3 PDF -a, jedan za segmente sata, drugi za bazu i na kraju jedan predložak za lakše lijepljenje dijelova.

Dakle, da biste ovo dovršili, trebat će vam sljedeće

  • Prsten od 60 neopiksela dolazi u 4 četvrtine. traži "ws2812 prsten 60" (12,00 kn)
  • RTC pretraživanje "DS3231 modula" (2,50 GBP)
  • Arduino Nano (4 GBP)
  • 3 mm/1/8 "šperploča.
  • komade žice. nadam se da ćete ih imati u blizini?
  • 5v USB napajanje. Vrsta na kojoj će vaša djeca uništiti konektor.

Ispod su stavke koje napaja Lipo baterija, ali nakon testiranja sat je potrošio previše energije pa je baterija pala u korist mrežnog USB napajanja.

  • dc-dc pretvarač traži "boost converter" (3 GBP)
  • Krug za punjenje TP4056 traži "tp4056" (£ 2)
  • LiPo 1000Mah jednoćelija. traži "1000mah lipo 3.7" ILI "503450 lipo" (8,00 GBP)

LiPo broj je 503450 i moglo bi biti lijepo znati da to znači 50 mm dugo 34 mm širine i 5,0 dubine.

Korak 1: Drveni komadići

Drveni komadići
Drveni komadići
Drveni komadići
Drveni komadići
Drveni komadići
Drveni komadići

Trebali biste moći vidjeti na slikama da sam ispisao dizajn i zalijepiti i šperploču. Ono što možda nije očito jest da sam izrezao 3 dijela odjednom, a donji dio se prvo izrezuje po obodu, zatim se uklanja jedan dio (sa stražnje strane), zatim je izrezana rupa u preostala dva dijela, a zatim još jedan dio uklonjen, ostavljajući samo prednji dio, a zatim je utor za žice prerezan.

Kad su svi dijelovi izrezani, prvo biste trebali provjeriti kako se svi slažu, a zatim ih sve zalijepite. Napravio sam 3 sloja na vrhu sata kako bih bio siguran da je sve ispravno kružnog oblika. Također pobrinite se da donji dijelovi budu ispravno orijentirani, a cijela srednja kriška postavljena naopako, tako da prelijećete zglobove.

Rupe u prednjim dijelovima omogućuju sjedenje lemljenih spojeva u četvrtinama, a donji dio omogućuje prolaz žica.

Serija slika također pokazuje kako je baza sastavljena.

Korak 2: Ožičenje LED prstena

Ožičenje LED prstena
Ožičenje LED prstena
Ožičenje LED prstena
Ožičenje LED prstena
Ožičenje LED prstena
Ožičenje LED prstena
Ožičenje LED prstena
Ožičenje LED prstena

O ovom koraku nema puno za reći, ali samo u slučaju da niste koristili traku WS2812LED, oni su inteligentni pa svaki ima podatke za ulaz i izlaz. U lukovima od 15 LED dioda, PCB upravlja svim vezama, ali kad se pridružite odjeljcima, morate napraviti priključke za napajanje i podatke. Ne možete pogriješiti veze jer su u krugu. Međutim, kad završite krug, trebala bi vam nedostajati jedna veza na podacima IN/OUT kako biste mogli spojiti žice na podatke IN. Tamo gdje se žice spoje na podatke IN će biti prva LED ili kako je ispravno numerirana NULA.

Pitao sam se kako je to najbolji način da pričvrstite prsten LED dioda na drveni prsten? ali na kraju sam odlučio upotrijebiti looming kabl i razboj po obodu preskačući LED svaki put.

Korak 3: Ožičenje Arduino Nano i napajanja

Ožičenje Arduino Nano i Power
Ožičenje Arduino Nano i Power
Ožičenje Arduino Nano i Power
Ožičenje Arduino Nano i Power
Ožičenje Arduino Nano i Power
Ožičenje Arduino Nano i Power

U početku sam odlučio koristiti LiPo na ovom projektu, ali kad sam ga isprobao, baterija se ispraznila preko noći. Isprva sam mislio da je baterija možda ispražnjena pa sam izmjerio struju i otkrio da krug crpi 73mA što znači da će na bateriji biti više. Zapravo sam izmjerio struju na bateriji (prije pretvarača) i otkrio da je preko 110 mA. Bilo je očito da ovaj sat neće raditi na bateriji.

Stoga se odlučujem za korištenje 5V USB punjača. Obično imam hrpu mrtvih USB punjača zbog toga što konektore zlostavlja dvoje male djece.

Zbog toga što koristimo LED svjetla WS2812 imamo samo 3 veze s Arduino Nano.

  • Vlast
  • Uzemljenje
  • Podaci IN. Narančasto do D2 na Nano -u

Zatim imamo RTC koji ima samo 4 žice.

  • Napajanje 5 volti
  • Uzemljenje
  • SCL (I2C sat) Plavo do A5 na Nano
  • SDA (I2C podaci) žuto do A4 na Nano

Na kraju nam treba napajanje, a to ide na priključak za napajanje od 5 V na Nano.. Vin je dizajniran da ima napon veći od 5 volti (tj. 7-12 volti) i uzemljenje.

Korak 4: Program

Zaista uživam u programiranju, jednostavno nisam baš dobar u tome.

Problem 1

Sekunde i minute ispravno su prikazane kao broj od 0-59. Međutim, prva LED, pa stoga i nula, nalaze se pri dnu. Stoga je ovo trebalo ispraviti.

void correctPos (int A)

{if (A 30) {A = A - 31; }} temp = A; }

Problem 2

Pokušao sam izbrisati sve LED diode prije prikaza novog položaja, no to je uzrokovalo da LED diode trepere. Zato sam odlučio uključiti sljedeću LED lampicu, a zatim isključiti prethodnu. Je li ovo dobro funkcioniralo ?? NOPE jer ako bi novi položaj bio nula, pokušao bi isključiti -1. pa se time bavilo u isto vrijeme.

void deletePrevious (int B)

// brisanje prethodnog LED -a, ako je bio nula onda // isključi 59 a drugo samo oduzmi 1 // i isključi taj. {if (B == 0) {strip.setPixelColor (59, 0, 0, 0); // Sve isključeno} else {strip.setPixelColor (B - 1, 0, 0, 0); // sve isključeno}}

Problem 3

Radnja gore navedenog djelovala je jako dobro sve dok nova druga pozicija nije bila na mjestu stare minute. Što je značilo da se minuta koja je ažurirana nakon sekundi isključila! Isto vrijedi i za sat/minutu

ako (sekunde == min-1)

{strip.setPixelColor (min-1, 0, 30, 0); }

Problem 4

Stvari počinju izgledati dobro pa pomiješajmo boje kad padnu u isti položaj?

ako (min == s)

{strip.setPixelColor (min, 15, 13, 0); // zeleno i crveno da postane žuto. }

Problem 5

Radno vrijeme počinje u formatu 24 sata. pa ovo treba prvo ispraviti

ako (sati> 12)

{sati = sati -12; }

Problem 6

I ne zaboravimo da ima 24 sata dnevno i da imam 60 LED dioda. Lako, doista mjeri 5

sati = sati * 5;

Problem 7

Nakon što smo gore učinili, sada imamo sat preskakanja 4 LED -a, izgledalo bi puno bolje da je koristio sve LED -e i ispravno pokazivao djeliće sata? Ovo je opet bilo jednostavno rješenje, samo sam dodao originalni broj minuta podijeljen sa 12 na sate.

sati = sati + (addMin/12);

Problem 8

Kad su sat ili minute na dnu, sekunde prije toga nestaju na jednu sekundu.

sati = ako (min == 0)

{if (secs == 59) {strip.setPixelColor (59, 0, 30, 0); // zeleno}} if (sati == 0) {if (secs == 59) {strip.setPixelColor (59, 0, 30, 0); // zeleno}}

Problem 9

Postavljanje vremena. Odlučio sam ovu konstrukciju učiniti vrlo jednostavnom pa nisam uključivao gumbe za podešavanje vremena. Dakle, samo je pitanje povezivanja sata s računalom i učitavanja novog vremena. Jednostavno komentirajte donji odjeljak i postavite potrebno vrijeme, a zatim učitajte program. Nakon ispravnog ponovnog komentiranja retka i ponovnog slanja programa, u protivnom će, ako izgubite struju, ponovno pokrenuti postav i ponovno učitati staro vrijeme.

// 12. travnja 2020. u 23:20 nazvali biste:

//rtc.adjust(DateTime(2020, 4, 12, 23, 20, 0));

Preporučeni: