Cuprins:

LEDura - Ceas analogic cu LED: 12 pași (cu imagini)
LEDura - Ceas analogic cu LED: 12 pași (cu imagini)

Video: LEDura - Ceas analogic cu LED: 12 pași (cu imagini)

Video: LEDura - Ceas analogic cu LED: 12 pași (cu imagini)
Video: Sincronizare Telecomanda UPC cu Televizorul 2024, Iulie
Anonim
LEDura - Ceas analogic cu LED
LEDura - Ceas analogic cu LED
LEDura - Ceas analogic cu LED
LEDura - Ceas analogic cu LED
LEDura - Ceas analogic cu LED
LEDura - Ceas analogic cu LED

Proiecte Tinkercad »

După o lungă perioadă de timp în care am realizat diverse proiecte, am decis să fac personal un instructiv. Pentru primul, vă voi ghida prin procesul de realizare a propriului ceas analogic realizat cu un inel cu LED-uri minunat adresabil. Inelul interior arată orele, inelul exterior arată minutele și secundele.

Pe lângă afișarea orei, ceasul poate afișa și temperatura camerei și poate fi un decor foarte frumos în cameră. La fiecare 15 minute, ceasul produce și efecte speciale - videoclipurile le arată pe toate, asigurați-vă că le verificați. Cu ajutorul a 2 butoane și a potențiometrului, utilizatorul poate alege între diferite moduri și modificări de culori după propria dorință. De asemenea, l-am actualizat pentru a reduce automat LED-urile dacă camera se întunecă, astfel încât utilizatorul să nu fie deranjat în timpul nopții.

Ceasul poate fi plasat pe birou, pe masa de pat sau spânzurat de perete.

Notă: imaginile nu sunt la fel de bune ca imaginea din realitate din cauza luminozității ridicate.

Pasul 1: Cum să-l citiți?

Cum să-l citiți?
Cum să-l citiți?

Ceasul are 2 inele - unul mai mic pentru afișarea orelor și unul mai mare pentru afișarea de minute și secunde. Unele LED-uri aprind tot timpul - așa-numita busolă care indică pozițiile principale ale ceasului. Pe inelul orar reprezintă ceasul 3, 6, 9 și 12'o, pe inelul minut reprezintă 15, 30, 45 și 0 minute.

Pasul 2: De ce veți avea nevoie

De ce vei avea nevoie
De ce vei avea nevoie

Materiale:

  • 1x Arduino Nano (puteți utiliza și orice alt Arduino)
  • 1x modul DS3231 RealTimeClock
  • 1x inel cu LED adresabil - 60 de LED-uri
  • 1x inel cu LED adresabil - 24 LED-uri
  • 2 butoane (NU - normal deschis)
  • 1x 100kOhm potențiometru
  • 1x sursă de alimentare de 5V (capabilă să livreze 1 amp)
  • 1x conector de alimentare
  • Unele fire
  • 1x rezistor de 10kOhm
  • 1x fotorezistor

  • Prefboard (opțional)
  • Conectori de sârmă pentru bloc de borne (opțional)
  • Lemn gros de 25mm, dimensiune de cel puțin 22cmx22cm
  • 1mm covor subțire din PVC dimensiune 20cmx20xm

Instrumente:

  • Unelte de bază pentru electronice de construcții (lipitor, clește, șurubelniță, …)
  • Mașină de găurit
  • Pistol de lipit fierbinte
  • Hârtie de nisip și niște lac pentru lemn
  • Mașină CNC (poate o are vreun prieten)

Pasul 3: Componente electronice - Context

Componente electronice - Context
Componente electronice - Context
Componente electronice - Context
Componente electronice - Context
Componente electronice - Context
Componente electronice - Context

DS3231

Am putea determina ora folosind Arduinos build în oscilator și un cronometru, dar am decis să folosesc modulul dedicat Ceasului în timp real (RTC), care poate ține evidența timpului chiar dacă deconectăm ceasul de la sursa sa de alimentare. Placa DS3231 are o baterie, care furnizează energie atunci când modulul nu este conectat la sursa de alimentare. De asemenea, este mai precis pe perioade mai lungi de timp decât sursa de ceas Arduinos.

DS3231 RTC folosește interfața I2C pentru a comunica cu microcontrolerul - foarte simplu de utilizat și avem nevoie de doar 2 fire pentru a comunica cu acesta. Modulul oferă, de asemenea, senzor de temperatură, care va fi utilizat în acest proiect.

Important: Dacă intenționați să utilizați baterie care nu poate fi reîncărcată pentru modulul RTC, ar trebui să demontați rezistorul de 200 ohmi sau dioda 1N4148. În caz contrar, bateria ar putea exploda. Mai multe informații pot fi găsite pe acest link.

Inel cu LED WS2812

Am decis să folosesc 60 de inele cu LED-uri pentru a ține evidența minutelor și 24 de inele cu LED-uri ore întregi. Le puteți găsi pe Adafruit (neoPixel ring) sau câteva versiuni ieftine pe eBay, Aliexpress sau alte magazine web. Există o mare diversitate între benzile cu LED-uri adresabile și dacă este prima dată când te joci cu ele, îți recomand să citești câteva descrieri de utilizare - iată câteva linkuri utile:

https://www.tweaking4all.com/hardware/arduino/adr…

https://randomnerdtutorials.com/guide-for-ws2812b…

Banda LED adresabilă are 3 conectori: 5V, GND și DI / DO. Primele două sunt pentru alimentarea LED-urilor, ultima este pentru date. Aveți grijă când conectați inelul la Arduino - linia dvs. de date trebuie să fie conectată la pinul DI (date IN).

Arduino

Folosesc Arduino Nano deoarece este suficient de mic și suficient pentru acest proiect. Puteți utiliza aproape orice alt Arduino, dar atunci trebuie să aveți grijă în timp ce conectați totul la acesta. Butoanele și inelele LED pot fi pe aceiași pini, dar conectorii I2C (pentru modulul RTC) pot diferi de la platformă la platformă - consultați fișa tehnică a acestora.

Pasul 4: Electronică - Alimentare

Electronică - sursă de alimentare
Electronică - sursă de alimentare

Arduino și banda LED trebuie să fie furnizate ambele cu sursă de alimentare de 5V, astfel încât să știm ce tensiune este necesară. Deoarece LED-ul sună, acesta atrage o mulțime de amplificatoare, nu îl putem alimenta direct cu Arduino, care poate rezista la maximum 20mA la ieșirea sa digitală. După măsurătorile mele, inelele cu LED-uri pot trage împreună până la 500 mA. De aceea am cumpărat un adaptor care poate furniza până la 1A.

Cu aceeași sursă de alimentare dorim să alimentăm Arduino și LED-uri - aici trebuie să fii atent.

Avertizare! Fiți foarte atenți când testați banda LED - adaptorul de alimentare NU trebuie să fie conectat la Arduino, când Arduino este conectat și la computer cu conector USB (puteți deteriora portul USB al computerului).

Notă: În schemele de mai jos am folosit comutatorul normal pentru a selecta dacă Arduino este alimentat prin sursa de alimentare sau prin conector USB. Dar pe perfboard puteți vedea că am adăugat un antet pin pentru a selecta din ce sursă de alimentare este alimentat Arduino.

Pasul 5: Electronică - lipire

Electronică - lipire
Electronică - lipire
Electronică - lipire
Electronică - lipire
Electronică - lipire
Electronică - lipire
Electronică - lipire
Electronică - lipire

Când strângeți toate părțile, este timpul să le lipiți împreună.

Deoarece am vrut să fac cablajul îngrijit, am folosit perfboard și un conector de bloc de terminale pentru fire, astfel încât să le pot deconecta în caz de modificări. Acest lucru este opțional - puteți, de asemenea, să lipiți firele direct pe Arduino.

Un sfat: este mai ușor dacă tipăriți schemele, astfel încât să le aveți în față în timp ce lipiți. Și verificați totul înainte de a vă conecta la sursa de alimentare.

Pasul 6: Software - Context

IDE Arduino

Vom programa Arduino cu software-ul său dedicat: Arduino IDE. Dacă vă jucați cu Arduino pentru prima dată, vă recomand să verificați câteva instrucțiuni despre cum să faceți acest lucru. Există deja numeroase tutoriale pe web, așa că nu voi merge la detalii.

Bibliotecă

Am decis să folosesc biblioteca FastLED în locul popularului Adafruit. Are câteva funcții matematice îngrijite, cu care puteți face efecte grozave (degetul mare până la dezvoltatori!). Puteți găsi biblioteca în depozitul lor GitHub, dar am adăugat fișierul.zip al versiunii pe care o folosesc în codul meu.

Dacă vă întrebați, cum să adăugați o bibliotecă externă la Arduino IDE puteți verifica câteva instrucțiuni deja făcute

Pentru modulul de ceas, am folosit biblioteca Arduino pentru ceasul DS3231 în timp real (RTC) (link), pe care îl puteți instala cu ușurință în Arduino IDE. Când vă aflați în IDE, faceți clic pe Schiță → Includeți bibliotecă → Gestionați bibliotecile … și apoi filtrați căutarea cu numele de mai sus.

Notă: Din anumite motive, în prezent nu pot adăuga fișiere.zip. Puteți găsi biblioteca în depozitul meu GitHub.

Pasul 7: Software - Cod

Software - Cod
Software - Cod
Software - Cod
Software - Cod

Structura

Aplicația este construită cu 4 fișiere:

  • LEDclokc.ino Aceasta este aplicația principală Arduino, unde puteți găsi funcții pentru controlul întregului ceas - acestea încep cu prefixul CLOCK_.
  • LEDclokc.h aici sunt definirea conexiunii pin și unele configurații de ceas.
  • ring.cpp și ring.h aici este codul meu pentru controlul inelelor LED.

LEDclock.h

Aici veți găsi toate definițiile ceasului. La început, există definiții pentru cablare. Asigurați-vă că sunt la fel ca conexiunile dvs. Apoi, există configurații de ceas - aici puteți găsi macro-ul pentru numărul de moduri pe care le are ceasul.

LEDclock.ino

Pe diagramă este reprezentată bucla principală. Codul verifică mai întâi dacă este apăsat vreun buton. Datorită naturii comutatoarelor, trebuie să folosim metoda debbouncing pentru a le citi valorile (puteți citi mai multe despre acest lucru pe link).

Când butonul 1 este apăsat, modul variabil este ridicat cu 1, dacă butonul 2 este apăsat, tipul variabil este ridicat. Folosim aceste variabile pentru a determina ce mod de ceas dorim să vedem. Dacă ambele butoane sunt apăsate în același timp, funcția CLOCK_setTime () este apelată, astfel încât să puteți schimba ora ceasului.

Codul ulterior citește valoarea potențiometrului și îl stochează în variabilă - cu acest utilizator variabil poate schimba culorile ceasului, luminozitatea etc.

Apoi, există o declarație de tip case-majusculă. Aici determinăm în ce mod este în prezent ceasul și, prin acest mod, se numește funcția corespunzătoare, care setează culorile LED-urilor. Puteți adăuga propriile moduri de ceas și puteți rescrie sau modifica funcțiile.

După cum este descris în biblioteca FastLED, trebuie să apelați funcția FastLED.show () la final, care transformă LED-urile în culoarea pe care le-am configurat anterior.

Puteți găsi descrieri mult mai detaliate între liniile de cod

Codul întreg este atașat mai jos în fișierele de mai jos.

SFAT: puteți găsi întregul proiect în depozitul meu GitHub. Aici codul va fi actualizat și dacă voi adăuga modificări la acesta.

Pasul 8: Faceți ceasul

Faceți ceasul
Faceți ceasul
Faceți ceasul
Faceți ceasul
Faceți ceasul
Faceți ceasul

Cadru de ceas

Am construit cadrul ceasului folosind o mașină CNC și lemn gros de 25 mm. Puteți găsi schița desenată în ProgeCAD atașat mai jos. Sloturile pentru inelul cu LED-uri sunt puțin mai mari, deoarece producătorii furnizează numai măsurători ale diametrului exterior - interiorul poate varia destul de mult … În partea din spate a ceasului, există mult spațiu pentru electronice și fire.

Inele din PVC

Deoarece LED-urile sunt destul de luminoase, este bine să le difuzați cumva. Mai întâi am încercat cu silicon transparent, care face treaba de a difuza, dar este destul de dezordonat și este greu să-l obții neted deasupra. De aceea am comandat o bucată de 20x20 cm din plastic din „lapte” din PVC și am tăiat două inele în ea cu mașină CNC. Puteți folosi șmirghel pentru a înmuia marginile, astfel încât inelele să alunece în fante.

Găuri laterale

Apoi este timpul să găuriți găurile pentru butoane, potențiometru și conectorul de alimentare. În primul rând, desenați fiecare poziție cu un creion, apoi găuriți în gaură. Aici depinde ce tip de butoane aveți - am mers cu butoane cu cap ușor curbat. Au un diametru de 16 mm, așa că am folosit burghiu pentru lemn de acea dimensiune. Același lucru este valabil și pentru potențiometru și conector de alimentare. Asigurați-vă că ștergeți toate desenele în creion după aceea.

Pasul 9: Desenați în pădure

Desenați în pădure
Desenați în pădure
Desenați în pădure
Desenați în pădure
Desenați în pădure
Desenați în pădure

Am decis să desenez niște indicatoare de ceas în lemn - aici vă puteți folosi imaginația și vă puteți proiecta propria. Am ars lemnul folosind un fier de lipit, încălzit la temperatura maximă.

Pentru ca cercurile să fie frumos rotunde, am folosit o bucată de aluminiu, am făcut o gaură în ea și am urmat marginile găurii cu lipitor (uită-te la imagine). Asigurați-vă că țineți ferm aluminiu, astfel încât să nu alunece în timp ce trageți. Și fiți prudenți în timp ce faceți acest lucru pentru a preveni rănile.

Dacă faceți desene și doriți ca acestea să fie aliniate frumos la pixelii ceasului, puteți utiliza „Modul de întreținere” care vă va arăta unde vor fi localizați pixelii (accesați capitolul Asamblare).

Protejați lemnul

Când sunteți mulțumit de ceas, este timpul să-l șlefuiți și să-l protejați cu lac pentru lemn. Am folosit șmirghel foarte moale (valoarea de 500) pentru a înmuia marginile. Vă recomand să utilizați lac transparent pentru lemn, astfel încât culoarea lemnului să nu se schimbe. Puneți o cantitate mică de lac pe perie și trageți-o în direcția anuale în lemn. Repetați-l de cel puțin 2 ori.

Pasul 10: Asamblezi

Asamblezi
Asamblezi
Asamblezi
Asamblezi
Asamblezi
Asamblezi

Bradii pun butoanele și potențiometrul în pozițiile lor - dacă găurile tale sunt prea mari, poți folosi niște lipici fierbinte pentru a le fixa în poziție. Apoi puneți banda inelară în sloturile sale și conectați firele la Arduino. Înainte de a lipi inelul cu LED-uri în locul său, este bine să vă asigurați că pixelii LED-urilor sunt la locul potrivit - centrate și aliniate cu desenul. În acest scop, am adăugat așa-numitul mod de întreținere, care va afișa toți pixelii importanți (0, 5, 10, 15, … pe inelul minut și 3, 6, 9 și 12 pe inelul orar). Puteți intra în acest mod apăsând și menținând ambele butoane, înainte de a conecta sursa de alimentare la conector. Puteți ieși din acest mod apăsând orice buton.

Când aveți inelele LED aliniate, aplicați niște lipici fierbinți și țineți-le în timp ce lipiciul devine ferm. Apoi, luați-vă inelele din PVC și din nou: aplicați adeziv fierbinte pe LED-uri, poziționați-le rapid și țineți-le câteva secunde. În cele din urmă, când sunteți sigur că totul funcționează, puteți lipi fierbinte per placa (sau Arduino) pe lemn. Sfat: nu se aplică mult adeziv. Doar o cantitate mică, astfel încât să se țină într-un singur loc, dar îl puteți elimina cu ușurință dacă doriți să schimbați ceva mai târziu.

La sfârșit, introduceți bateria cu monedă în suportul său.

Pasul 11: Upgrade - Fotorezistor

Upgrade - Fotorezistor
Upgrade - Fotorezistor
Upgrade - Fotorezistor
Upgrade - Fotorezistor
Upgrade - Fotorezistor
Upgrade - Fotorezistor

Efectele ceasului sunt deosebit de frumoase pe întuneric. Dar acest lucru îi poate deranja utilizatorul în timpul nopții, în timp ce el sau ea doarme. De aceea am decis să actualizez ceasul cu funcția de corectare automată a luminozității - când camera se întunecă; ceasul își stinge LED-urile.

În acest scop, am folosit senzorul de lumină - rezistor foto. Rezistența sa va crește semnificativ; până la câțiva mega ohmi când este întuneric și va avea doar câteva sute de ohmi atunci când lumină strălucește pe el. Împreună cu un rezistor normal formează divizorul de tensiune. Deci, atunci când rezistența senzorului de lumină se schimbă, la fel se modifică tensiunea pe pinul analogic Arduino (pe care o putem măsura).

Înainte de lipire și asamblare a oricărui circuit, este înțelept să îl simulați mai întâi, astfel încât să puteți vedea comportamentul și să faceți corecții. Cu ajutorul Autocad Tinkercad puteți face exact asta! Cu doar câteva clicuri am adăugat componentele, le-am conectat și am scris codul. În simulare puteți vedea cum se schimbă luminozitatea LED-urilor în funcție de valoarea rezistorului foto. Este foarte simplu și simplu - puteți juca cu circuitul.

După simulare, a venit timpul să adăugați funcția la ceas. Am forat o gaură în centrul ceasului, am lipit rezistorul foto, l-am conectat așa cum se poate vedea pe circuit și am adăugat câteva linii de cod. În fișierul LEDclock.h trebuie să activați această caracteristică declarând USE_PHOTO_RESISTOR ca 1. De asemenea, puteți schimba la ce luminozitate a camerei ceasul va diminua LED-urile modificând valoarea CLOCK_PHOTO_TRESHOLD.

Pasul 12: Bucurați-vă

Când îl veți alimenta pentru prima dată, ceasul va afișa o anumită oră aleatorie. Puteți să-l configurați apăsând ambele butoane în același timp. Rotiți butonul pentru a selecta momentul potrivit și confirmați-l apăsând orice buton.

Am găsit inspirație într-un proiect foarte îngrijit pe internet. Dacă decideți să construiți ceasul pe cont propriu, verificați-le și pe acestea! (NeoClock, Wol Clock, Arduino Colorful Clock) Dacă vreodată veți decide să încercați să urmați instructabilitățile, sper că veți face acest lucru la fel de plăcut ca și mine.

Dacă întâmpinați vreo problemă de-a lungul procesului de rezolvare, nu ezitați să-mi puneți orice întrebare în comentarii - voi încerca cu plăcere să răspund!

Recomandat: