Cuprins:

Wort-Uhr: 5 pași
Wort-Uhr: 5 pași

Video: Wort-Uhr: 5 pași

Video: Wort-Uhr: 5 pași
Video: Namika - je ne parle pas français lyrics 2024, Noiembrie
Anonim
Wort-Uhr
Wort-Uhr

Buna impreună!

Acesta va fi primul meu instructable și dacă aveți idei cum să îl îmbunătățiți sau să îl înțelegeți mai ușor, nu ezitați să mă contactați!

Ei bine, la început, acest tip de „ceas” nu este ideea mea! Am văzut multe din internet și pot fi comandate pentru doar câțiva dolari în diferite magazine web. Dar nu am vrut să cumpăr una, am vrut să fac una din a mea pentru a învăța și a înțelege cum funcționează.

Un cuvânt pentru membrii „non-germani” … Ne pare rău pentru faptul că acesta este doar un „German Wort Uhr”. S-ar putea converti cu ușurință în engleză sau în orice altă limbă, dar, deoarece sunt german, am făcut-o în limba mea. Dacă aveți nevoie de asistență pentru limba dvs., contactați-mă și voi încerca să vă ajut.

Asadar, hai sa incepem…

Pasul 1: Schema

Schema
Schema

Schema este directă și dacă imaginea este prea slabă de citit, există și un fișier PDF.

Să începem din colțul din stânga jos. Există o sursă de alimentare simplă care utilizează un LM7805 pentru a genera o ieșire stabilă de 5V pentru PIC, registre de schimbare (74HC164) și cip DS3231 în timp real. Toate LED-urile sunt, de asemenea, furnizate din această parte. D22 la capătul din dreapta este doar pentru indicarea sursei de alimentare și poate fi ușor lăsat separat dacă nu se dorește.

Puteți utiliza orice sursă de curent continuu pentru ceas cu mai puțin de 40V, dar ar trebui să alegeți apoi valoarea corespunzătoare pentru C7. Ar trebui să aibă o tensiune nominală de cel puțin dublul tensiunii de intrare și amintiți-vă că creați căldură în LM7805, așa că ar trebui să încercați să mențineți tensiunea de intrare cât mai mică posibil, deoarece orice altceva este doar risipă de energie. Cea mai bună potrivire este între 9V și 12V DC.

Nu vă deranjați cu privire la polaritatea sursei de alimentare … MOSFET-ul cu canal p (Q1) acționează ca o protecție falsă împotriva polarității, iar ceasul nu va funcționa și nu va avea niciun prejudiciu. Puteți verifica acest lucru pe LED-ul „de alimentare” D22 dacă este montat.

În partea dreaptă a schemei sunt registrele de schimbare serial-in paralel-out. Am decis să le folosesc pentru că nu voiam să folosesc un PIC imens cu o mulțime de porturi I / O. Am vrut să folosesc unul mai mic și încă mai aveam 16F1829 acasă, deci alegerea era deja clară. Datele (IN_1, IN_2 și IN_3) sunt furnizate de PIC (a se vedea secțiunea de cod de mai jos) și REGISTER_CLK. Pentru simplitate în aspectul codului și al PCB-ului, am folosit două dintre cele 74HC164 pentru ore și ultima pentru „logică”.

În colțul din stânga sus se află PIC și toate părțile necesare. Am folosit ceasul intern, deci nu este nevoie de oszilator. Doar trei rezistențe pentru SCL, SDA și MCLR. Pentru faptul că am folosit 32kHz ca indicație de „secunde exacte” nu este nevoie de o frecvență destul de stabilă și precisă pentru PIC.

În mijloc este DS3231 cu un minim pe piesele externe. De fapt, am folosit doar intrările SDA și SCL pentru comunicarea pe I²C și ieșirea de 32 kHz ca referință de ceas extern pentru Timer1 al PIC16F1829. Pentru această ieșire, foaia tehnică spune că este necesar un rezistor de extragere extern. Celelalte rezultate nu le-am folosit în acest proiect și le-am lăsat neconectate.

Tot în mijloc, LED-urile … După cum puteți citi în schemă, am folosit LED-uri albastre (cele cu carcasă clară) și o valoare a rezistenței de 1k Ohm. Dacă intenționați să faceți acest proiect de unul singur, ar trebui să alegeți valorile acestor rezistențe în funcție de culoarea și tipul LED-urilor pe care le alegeți. De asemenea, rețineți unde doriți să fie configurat ceasul. Cel meu stă în camera mea de dormit, prin urmare nu am vrut ca LED-urile să fie prea luminoase și am ales o valoare mai mare pentru rezistențe. Faceți câteva încercări pe o placă cu LED-uri și valori ale rezistenței înainte de a le monta pe PCB.

Pasul 2: Aspect

Aspect
Aspect
Aspect
Aspect
Aspect
Aspect

După terminarea schemei, este timpul să direcționați PCB-ul. Pentru asta am folosit KiCAD (și pentru schemă). Nu sunt foarte multe de spus, trebuie doar să parcurgeți liniile.

Pentru faptul că am imprimat singur carcasa ceasului, a fost destul de important unde se află LED-urile de pe stratul superior. Am pus LED-urile și rezistențele doar pe stratul superior, deoarece mi-am comandat PCB-ul montat parțial (toate piesele SMD) și pentru că firma pe care am ales-o așează doar piese pe o parte și nu pe două fețe.

Puteți vedea plasarea în cele două imagini tridimensionale pe care le-am făcut din KiCAD.

Dacă sunteți interesat … Este posibil să exportați PCB KiCAD către Eagle și atunci este destul de ușor să construiți carcasa, deoarece aveți o referință de la PCB.

Pasul 3: „Logica” „Wort-Uhr”

Cea mai mare parte a acestui proiect a fost codul pentru PIC …

La început găsind „logica” timpului vorbit în germană și traducându-l în cod.

Din păcate, nu a fost posibil să încărcați direct fișierul Excel, dar sper că exportul PDF este suficient de lizibil pentru dvs. Dacă nu, vă rugăm să mă contactați și vă voi trimite fișierul Excel original. În PDF puteți vedea cum am configurat logica pentru ceasul meu. Puteți vedea cum am trecut prin diferitele pași de timp și cum este ortografia. Calculul din interiorul codului (în principal instrucțiunile if-else) poate fi derivat din informațiile din partea dreaptă a tabelului. O parte este pentru minute și o parte pentru ore.

După cum puteți vedea, acest lucru nu este magic și poate fi codat cu ușurință în C. Punctul "cel mai dificil" din interiorul logicii este cum să gestionați ora, așa cum puteți vedea în fișier că doar la începutul unei ore este afișată ora efectivă.. În germană (poate că acest lucru ar putea fi doar un lucru specific bavarezei) „ora următoare” este folosită destul de devreme.

Pentru codificare, am folosit MPLABX ca IDE de alegere.

Pasul 4: Fragmente de cod

Fragmente de cod
Fragmente de cod
Fragmente de cod
Fragmente de cod

Nu voi posta codul meu aici, dar dacă intenționați să scrieți propriul cod, vă voi da câteva sugestii despre ceea ce am „împiedicat” în timpul dezvoltării …

Mai întâi, se completează „înregistrați”:

Dacă transferați date noi în registre prea des și în cicluri prea scurte am făcut experiența, LED-urile au început să pâlpâie. Așa că am făcut câteva „stegulețe de blocare”, că doar fiecare minut se face un nou „calcul” al timpului vorbit și se face actualizarea registrului.

Codul pentru completarea registrelor este în imaginea de mai sus. După cum puteți vedea, completez toate cele 3 registre în paralel, așa că am nevoie de 3 pini ai PIC pentru date și 1 pini pentru CLK. 74HC164 preia date noi despre o tranziție la linia CLK de la 0 la 1.

Restul codului este în principal lucruri dependente de PIC, „timpul vorbit” - logică și gestionarea comunicării și a butoanelor. Comunicarea este asigurată în principal de Microchip MPLABX deoarece am folosit modulul MSSP.

O idee bună este citirea fișei tehnice a DS3231, deoarece datele sunt stocate în interior ca BCD, deci este posibil să trebuiască să „transformați” acest lucru în cod. Ei bine, în ceea ce mă privește, sunt un tip „învățând făcând” și Bineînțeles că nu am citit foaia tehnică … Mă costă foarte mulți nervi și ore.

După cum ați fi observat, există două modalități de a „păstra timpul pe drumul cel bun” cu această implementare.

  1. Puteți citi timpul real din DS3231
  2. Puteți „număra secunde” în PIC în sine și pur și simplu sincronizați timpul cu DS3231 din când în când

Depinde de tine și ambele căi sunt practice și directe. Am folosit prima opțiune și doar timpul sincronizat când am ajustat timpul prin butoane (scrierea timpului pe DS3231) sau la fiecare 24 de ore (timpul de citire din DS3231), pentru că am vrut să implementez mai multă logică de unul singur. De asemenea, îmi întorc ceasul noaptea (23:00 până la 05:00), așa că, după părerea mea, a fost puțin mai ușor.

Pasul 5: Locuința

Nu în ultimul rând, este timpul să aruncați o scurtă privire asupra locuinței.

Așa cum am menționat mai sus, am făcut carcasa singur (folosind Eagle) și le-am imprimat cu imprimanta 3D, așa că trebuie să mă uit la pozițiile diferitelor LED-uri.

Atașat puteți găsi fișierele STL dacă doriți să le utilizați.

Sper că acest instructabil vă va ajuta atunci când vă construiți propriul "Wort-Uhr". Dacă mai există „întrebări deschise”, nu ezitați să mă contactați. Cel mai bun mod prin comentarea de mai jos, deoarece este posibil să nu fiți singurul care are o întrebare specifică.

Recomandat: