Ceas LED pe arduino nano. Facem un ceas electronic pe Arduino cu propriile noastre mâini. Ceas gata pe Arduino

Fotografia arată un prototip pe care l-am asamblat pentru a depana programul care va gestiona întreaga instalație. Cel de-al doilea arduino nano din colțul din dreapta sus al panoului nu aparține proiectului și rămâne acolo chiar așa, nu trebuie să-i acordați atenție.

Câteva despre principiul de funcționare: Arduino preia date de la temporizatorul DS323, le procesează, determină nivelul de lumină folosind un fotorezistor, apoi trimite totul către MAX7219 și, la rândul său, luminează segmentele necesare cu luminozitatea necesară. De asemenea, folosind trei butoane, puteți seta anul, luna, ziua și ora după cum doriți. În fotografie, indicatorii afișează timpul și temperatura, care sunt preluate de la un senzor digital de temperatură

Principala dificultate în cazul meu este că indicatoarele de 2,7 inci au un anod comun și au trebuit, în primul rând, să se împrietenească cumva cu max7219, care este proiectat pentru indicatoare cu un catod comun și, în al doilea rând, să rezolve problema cu lor. sursă de alimentare, deoarece au nevoie de 7,2 volți pentru strălucire, pe care max7219 singur nu poate oferi. După ce am cerut ajutor pe un forum, am primit un răspuns.

Soluția din captura de ecran:


La ieșirile segmentelor de la max7219 este atașat un microcircuit, care inversează semnalul, iar la fiecare ieșire este atașat un circuit de trei tranzistori, care ar trebui conectat la catodul comun al afișajului, care, de asemenea, inversează semnalul și crește Voltaj. Astfel, avem posibilitatea de a conecta afișaje cu un anod comun și o tensiune de alimentare de peste 5 volți la max7219

Am conectat un indicator pentru test, totul merge, nimic nu fumeaza

Să începem să colectăm.

Am decis să împart circuitul în 2 părți din cauza numărului mare de jumperi din versiunea care era despărțită de labele mele strâmbe, unde totul era pe o singură placă. Ceasul va consta dintr-o unitate de afișare și o unitate de putere și control. S-a decis să se colecteze mai întâi pe acesta din urmă. Rog esteștilor și radioamatorilor cu experiență să nu leșine din cauza tratamentului crud al pieselor. Nu vreau să cumpăr o imprimantă de dragul LUT, așa că o fac în mod vechi - exersez pe o bucată de hârtie, fac găuri conform unui șablon, desenez trasee cu un marker, apoi gravesc.

Principiul atașării indicatorilor a rămas același ca pe.

Marcam poziția indicatoarelor și componentelor folosind un șablon de plexiglas realizat pentru comoditate.

Proces de marcare







Apoi, folosind un șablon, găurim în locurile potrivite și încercăm toate componentele. Totul se potrivește perfect.

Desenăm căi și gravăm.




scăldat în clorură ferică

Gata!
panou de control:


panou indicativ:


Placa de control a ieșit grozav, pista de pe placa de afișare nu a fost consumată critic, poate fi reparată, este timpul să lipiți. De data aceasta mi-am pierdut virginitatea SMD și am inclus componente 0805 în circuit. Cel puțin, primele rezistențe și condensatoare au fost lipite la locul lor. Cred că o să mă fac mai bine, va fi mai ușor.
Pentru lipire am folosit flux pe care l-am cumpărat. Lipirea cu ea este o plăcere; acum folosesc colofoniu cu alcool doar pentru cositorit.

Iată plăcile terminate. Placa de control are un loc pentru un Arduino nano, un ceas, precum și ieșiri pentru conectarea la placa de afișare și senzori (un fotorezistor pentru auto-luminozitate și un termometru digital ds18s20) și o sursă de alimentare cu tensiune de ieșire reglabilă (pentru mari dispozitive cu șapte segmente) și pentru alimentarea ceasului și Arduino, pe placa de afișare există prize de montare pentru afișaje, prize pentru max2719 și uln2003a, o soluție pentru alimentarea a patru dispozitive mari cu șapte segmente și o grămadă de jumperi.




panou de control din spate

Placa de afișare din spate:

Instalare smd groaznică:


Lansa

După ce lipiți toate cablurile, butoanele și senzorii, este timpul să porniți totul. Prima lansare a scos la iveală mai multe probleme. Ultimul indicator mare nu s-a aprins, iar restul a strălucit slab. Am rezolvat prima problemă prin lipirea piciorului tranzistorului SMD, iar cu a doua - prin reglarea tensiunii produse de lm317.
E VIU!

Unul dintre primele proiecte pe care începătorii le construiesc folosind o placă Arduino este un ceas simplu care ține timpul. Practic, astfel de ceasuri se bazează pe un modul RTC (Real Time Clock) conectat la Arduino. Astăzi, componentele electronice sunt disponibile pe piață diferite modele RTC-uri care variază ca precizie și preț. Modelele comune includ DS1302, DS1307, DS3231.



Dar puteți face un ceas pe Arduino fără a utiliza un RTC, mai ales dacă nu puteți obține astfel de module. Desigur, acuratețea în acest caz va fi scăzută, așa că proiectul ar trebui mai degrabă considerat ca un proiect de formare.


Principiul de funcționare al unor astfel de ceasuri este destul de simplu. De fiecare dată când porniți acest ceas Arduino, va trebui să îl setați la ora curentă, la fel ca orice ceas analogic. Cu siguranță este mai bine să nu folosiți astfel de ceasuri la dvs Viata de zi cu zi cu activitatea lor pentru o lungă perioadă de timp fără repornire și configurare ulterioară, deoarece desincronizarea cu ora curentă în timpul funcționării pe termen lung poate fi semnificativă.


Acest ceas poate fi asamblat pe o placă obișnuită, deoarece nu necesită multe componente. Linkul nostru principal aici va fi placa Arduino Uno. Pentru a afișa ora, puteți lua un afișaj LCD 16x2. Pentru a modifica setările de timp, trebuie să conectați două butoane (pentru ore și minute). Butoanele sunt conectate la Aduino prin rezistențe de 10KΩ. Pentru a schimba luminozitatea afișajului veți avea nevoie de un potențiometru de 10 kOhm. Schema de conectare pentru toate aceste componente la placa Arduino Uno este prezentată mai jos.



Acum trebuie să programați Arduino. Un cod simplu (schiță) care vă permite să afișați ora pe ecranul LCD este prezentat mai jos.


#include LCD cristal lichid(12,11,5,4,3,2); int h=12; int m; int s; int steag; int TIME; const int hs=8; const int ms=9; int stare1; int stare2; void setup() ( lcd.begin(16,2); ) void loop() ( lcd.setCursor(0,0); s=s+1; lcd.print("TIME:"); lcd.print(h ); lcd.print(":"); lcd.print(m); lcd.print(":"); lcd.print(e); if(steagul<12)lcd.print("AM"); if(flag==12)lcd.print("PM"); if(flag>12)lcd.print("PM"); dacă(steagul==24)steagul=0; întârziere (1000); lcd.clear(); if(s==60)( s=0; m=m+1; ) if(m==60) (m=0; h=h+1; flag=flag+1; ) if(h==13 ) ( h=1; ) lcd.setCursor(0,1); lcd.print("O ZI FRUMOĂ"); //-------Timp // setare-------// state1=digitalRead(hs); dacă(stare1==1) (h=h+1; steag=steag+1; dacă(steagul<12)lcd.print("AM"); if(flag==12)lcd.print("PM"); if(flag>12)lcd.print("PM"); dacă(steagul==24)steagul=0; dacă(h==13)h=1; ) stare2=digitalRead(ms); dacă(starea2==1)( s=0; m=m+1; ) )

   Vă mulțumim pentru interesul acordat proiect de informare site-ul web.
   Dacă doriți ca materiale interesante și utile să fie publicate mai des și cu mai puțină publicitate,
   Puteți susține proiectul nostru donând orice sumă pentru dezvoltarea lui.

Ceas cu iluminare de fundal LED și minute pulsate pe un microcontroler Arduino
Acest ceas unic cu iluminare de fundal LED și minute pulsate a fost realizat folosind cipul de controler TLC5940 PWM. Sarcina sa principală este de a extinde numărul de contacte de modulație PWM. O altă caracteristică a acestui ceas este că a convertit un voltmetru analogic într-un dispozitiv care măsoară minutele. Pentru a face acest lucru, o nouă scară a fost tipărită pe o imprimantă standard și lipită peste cea veche. Ca atare, al 5-lea minut nu este numărat, doar că în timpul celui de-al cincilea minut contorul de timp arată săgeata care indică sfârșitul scalei (în afara scalei). Controlul principal este implementat pe microcontrolerul Arduino Uno.

Pentru a se asigura că lumina de fundal a ceasului nu strălucea prea puternic într-o cameră întunecată, a fost implementat un circuit pentru a regla automat luminozitatea în funcție de iluminare (a fost folosit un fotorezistor).

Pasul 1: Componentele necesare



Iată ce veți avea nevoie:

  • Modul voltmetru analogic 5V DC;
  • microcontroler Arduino UNO sau alt Arduino adecvat;
  • Placa de circuite Arduino (placa proto);
  • Modul DS1307 Real Time Clock (RTC);
  • Modul cu controler PWM TLC5940;
  • Ilumini de fundal LED petal – 12 buc.;
  • Componente pentru asamblarea unui circuit de control automat al luminozității (LDR).

De asemenea, pentru producția altor componente ale proiectului, este de dorit să aveți acces la o imprimantă 3D și o mașină de tăiat cu laser. Se presupune că aveți acest acces, așa că instrucțiunile vor include desene de fabricație în etapele corespunzătoare.

Pasul 2: Apelați




Cadranul este format din trei părți (straturi) tăiate pe o mașină de tăiat cu laser din tablă MDF de 3 mm, care sunt fixate împreună cu șuruburi. O placă fără fante (dreapta jos în imagine) este plasată sub o altă placă pentru a poziționa LED-urile (stânga jos). Apoi, LED-urile individuale sunt plasate în sloturile corespunzătoare, iar panoul frontal este pus deasupra (sus în figură). Patru găuri sunt găurite de-a lungul marginii cadranului, prin care toate cele trei părți sunt prinse împreună.

  • Pentru a testa performanța LED-urilor în această etapă, a fost folosită o baterie tip monedă CR2032;
  • Pentru fixarea LED-urilor au fost folosite mici benzi de bandă adezivă, care au fost lipite de spatele LED-urilor;
  • Toate picioarele LED au fost pre-îndoite în consecință;
  • Au fost reforate găurile de-a lungul marginilor, prin care s-a efectuat șurubul. S-a dovedit că acest lucru era mult mai convenabil.

Desenul tehnic al pieselor cadranului este disponibil la:

Pasul 3: Proiectați circuitul



În această etapă a fost dezvoltat schema electrica. În acest scop au fost folosite diverse manuale și ghiduri. Nu vom aprofunda acest proces; cele două fișiere de mai jos arată circuitul electric finit care a fost utilizat în acest proiect.

Pasul 4: Conectarea plăcii de circuite Arduino





  1. Primul pas este să dezlipiți toate contactele ac de pe plăcile de circuite și plăcile de secțiune;
  2. Mai mult, datorită faptului că puterea de 5V și GND sunt folosite de atât de multe plăci și dispozitiv periferic, pentru fiabilitate, două fire pentru 5V și GND au fost lipite pe placa de circuite;
  3. Apoi, un controler TLC5940 PWM a fost instalat lângă contactele folosite;
  4. Apoi controlerul TLC5940 este conectat conform schemei de conectare;
  5. Pentru a putea folosi bateria, pe marginea plăcii de circuite a fost instalat un modul RTC. Dacă îl lipiți în mijlocul plăcii, marcajele pinului nu vor fi vizibile;
  6. Modulul RTC a fost conectat conform schemei de conectare;
  7. Un circuit de control automat al luminozității (LDR) a fost asamblat, îl puteți vizualiza la link
  8. Firele pentru voltmetru sunt conectate prin conectarea firelor la pinul 6 și GND.
  9. La sfârșit, au fost lipite 13 fire pentru LED-uri (În practică, s-a dovedit că este mai bine să faceți acest lucru înainte de a trece la pasul 3).

Pasul 5: Cod

Codul de mai jos a fost compilat din diferite componente ale ceasului găsite pe Internet. A fost complet depanat și acum este complet funcțional și au fost adăugate câteva comentarii destul de detaliate. Dar înainte de a încărca în microcontroler, luați în considerare următoarele puncte:

  • Înainte de a flashiza firmware-ul Arduino, trebuie să decomentați linia care setează ora:
    rtc.adjust(DateTime(__DATE__, __TIME__))
    După ce ați afișat intermitent controlerul cu această linie (ora este setată), trebuie să îl comentați din nou și să afișați din nou controlerul. Acest lucru permite modulului RTC să folosească bateria pentru a-și aminti ora în cazul în care se pierde alimentarea principală.
  • De fiecare dată când utilizați „Tlc.set()”, trebuie să utilizați „Tlc.update”

Pasul 6: Inelul exterior

Inelul exterior al ceasului a fost imprimat 3D folosind o imprimantă Replicator Z18. Se atașează la ceas folosind șuruburi pe fața ceasului. Mai jos este un fișier cu un model 3D al inelului pentru imprimare pe o imprimantă 3D.

Pasul 7: Asamblarea ceasului


Microcontrolerul Arduino cu toate celelalte componente electronice a fost fixat pe spatele ceasului folosind șuruburi și piulițe ca distanțiere. Apoi am conectat toate LED-urile, voltmetrul analogic și LDR la firele care au fost lipite anterior la placa de circuit. Toate LED-urile sunt interconectate printr-un picior și conectate la pinul VCC de pe controlerul TLC5940 (o bucată de sârmă este pur și simplu lipită într-un cerc).

Până acum, toate acestea nu sunt foarte bine izolate de scurtcircuite, dar lucrările la acest lucru vor continua și în versiunile viitoare.




Top