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, Juli
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

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

Naći ćete 3 PDF -a u prilogu jedan je za segmente sata, drugi je za bazu i na kraju jedan je predložak za pomoć pri lijepljenju dijelova.

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

  • Prsten od 60 neopiksela dolazi u 4 četvrtine. potražite "ws2812 prsten 60" (12,00 £)
  • RTC pretraživanje "DS3231 modula" (£ 2.50)
  • Arduino Nano (£ 4)
  • 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 "pretvarač pojačanja" (3 GBP)
  • Krug punjenja 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

The Wood Bits
The Wood Bits
The Wood Bits
The Wood Bits
The Wood Bits
The Wood Bits

Na slikama biste trebali vidjeti da sam odštampao dizajn i zalijepio i šperploču. Ono što možda nije očito je 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 drugi 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 u ispravnoj orijentaciji i da je kompletna srednja kriška postavljena naopako kako biste prevrnuli zglobove.

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

Serija slika takođe 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 kada 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 povežu s podacima IN će biti prva LED ili ako 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 preteći kabel i razboj po obodu preskačući svaki put LED diode.

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. U početku 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. U stvari, izmjerio sam struju u bateriji (prije pretvarača) i otkrio da je preko 110 mA. Bilo je očigledno da ovaj sat neće raditi na bateriji.

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

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

  • Snaga
  • Ground
  • Podaci IN. Narandžasto do D2 na Nano -u

Zatim imamo RTC koji ima samo 4 žice.

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

Na kraju nam je potrebno napajanje, a ovo 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 su ispravno prikazane kao broj od 0-59. Međutim, prva LED dioda i stoga nula nalaze se pri dnu. Dakle, ovo je trebalo ispraviti.

void correctPos (int A)

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

Problem 2

Pokušao sam očistiti sve LED diode prije prikaza novog položaja, međutim to je dovelo do treptanja LED dioda. Odlučio sam uključiti sljedeću LED lampicu, a zatim isključiti prethodnu. Je li ovo dobro funkcionisalo ?? NOPE jer ako je nova pozicija nula, pokušala bi isključiti -1. tako da je to riješeno u isto vrijeme.

void deletePrethodno (int B)

// brisanje prethodnog LED -a, ako je bilo nula onda // isključite 59 inače samo oduzmite 1 // i isključite ga. {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 je radila jako dobro sve dok nova druga pozicija nije bila na mjestu stare minute. Što je značilo da se minut koji je ažuriran nakon sekundi isključio! Isto i za sat/minutu

if (secs == min-1)

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

Problem 4

Stvari počinju izgledati dobro pa hajde da pomiješamo boje kada padnu u isti položaj?

ako (min == sekundi)

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

Problem 5

Radni sati počinju 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, zaista to mjerite za 5

sati = sati * 5;

Problem 7

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

sati = sati + (addMin/12);

Problem 8

Kad su prikazani 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

Podešavanje 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 sa računarom i učitavanja novog vremena. Jednostavno raskomentirajte donji odjeljak i postavite potrebno vrijeme, a zatim učitajte program. Nakon ispravnog ponovnog komentiranja linije i ponovnog slanja programa, inače će, ako izgubite struju, ponovo pokrenuti postavku i ponovo učitati staro vrijeme.

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

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

Preporučuje se: