Circuite de ceasuri electronice DIY pentru începători. Cum să-ți faci propriul ceas digital în stil retro

Ceas cu indicator LED cu șapte segmente pe cip K145IK1911

Istoricul acestor ceasuri care apar pe site este ușor diferit de alte diagrame de pe site.

Este o zi liberă normală, mă duc la oficiul poștal, scotocesc și cititorul nostru dă peste Fedorenko Evgeniy, a trimis o diagramă a ceasului, cu o descriere și toate fotografiile.

Pe scurt despre schema circuit de ceas electronic al lor mâinile efectuat pe cipul K145IK1911, iar ora este afișată pe indicatori LED cu șapte segmente, la fel și articolul lui.

Diagrama ceasului:


Pentru a mări o imagine, faceți clic pe ea pentru a o mări și salvați computerul.

Nu cu mult timp în urmă m-am confruntat cu sarcina fie de a cumpăra un ceas nou, fie de a asambla eu unul nou. Cerințele pentru ceas au fost simple - afișajul ar trebui să afișeze ore și minute, ar trebui să existe un ceas cu alarmă, iar indicatoarele LED cu șapte segmente ar trebui să fie folosite ca dispozitiv de afișare. Nu am vrut să adun o grămadă de cipuri logice și nu am vrut să mă implic în programarea controlerelor. Alegerea a fost făcută cu privire la dezvoltarea industriei electronice sovietice - cip K145IK1901.

Nu era în magazin la acel moment, dar era un analog, într-un pachet cu 40 de pini - K145IK1911. Numele pinii acestui microcircuit nu este diferit de cel anterior, diferența este în numerotare.



Dezavantajul acestor microcircuite este că funcționează doar cu indicatori fluorescenți în vid. Pentru a asigura andocarea cu indicatorul LED, a fost necesar să se construiască un circuit de potrivire folosind comutatoare cu semiconductori.

Ca drivere de șir – J1-J7 pot fi utilizați tranzistori KT3107 cu indicele de litere I, A, B. Pentru driverele pentru selectarea segmentelor D1-D4, KT3102I sau KT3117A, KT660A, precum și orice altele cu o tensiune maximă colector-emițător de cel puțin 35 V și un curent de colector de la se vor folosi cel puțin 100 mA. Curentul segmentelor indicatoare este reglat de rezistențele din circuitele colectoare ale driverelor de rând.



Un punct care clipește la o frecvență de 1 Hz este folosit pentru a separa cifrele orei și minutelor.

Această frecvență este prezentă la pinul Y4 după ce cronometrarea a început. Această schemă oferă, de asemenea, posibilitatea de a afișa pe afișaj în loc de ore și minute - minute și, respectiv, secunde. Trecerea la acest mod se realizează prin apăsarea butonului „Sec.” Revenirea la afișarea orei și minutelor se efectuează după apăsarea butonului „Întoarcere”. Acest cip oferă posibilitatea de a seta două ceasuri cu alarmă în același timp, dar în această schemă al doilea ceas cu alarmă nu este folosit ca fiind inutil. Ca emițător de sunet este folosit un tweeter piezo cu generator încorporat, cu o tensiune de alimentare de 12V. Semnalul ceasului cu alarmă este eliminat de la pinul Y5 al microcircuitului. Pentru a furniza un sunet intermitent, semnalul este modulat la o frecvență de 1 Hz, folosită pentru a indica al doilea ritm (punct). Pentru un studiu mai detaliat al funcționalității microcircuitului K145IK1901(11), puteți consulta documentația, care recent poate fi găsită cu ușurință pe Internet. Microcircuitul trebuie alimentat cu o tensiune negativă de -27V±10%. Conform experimentelor efectuate, microcircuitul rămâne funcțional chiar și la o tensiune de -19V, iar precizia ceasului nu este deloc afectată.

Diagrama ceasului este prezentată în figura de mai sus. În circuit au fost utilizate rezistențe cu cip de dimensiune standard 1206, ceea ce face posibilă reducerea semnificativă a dimensiunilor dispozitivului. Orice indicator cu șapte segmente cu un anod comun sunt potriviti ca indicatori cu șapte segmente.

Ei bine, acesta este sfârșitul poveștii deocamdată. Va fi dezvoltat și completat și îmi exprim recunoștința către autorul ei, Evgeniy Fedorenko, pentru toate întrebările Această adresă de e-mail este protejată de spamboți. Trebuie să aveți JavaScript activat pentru a-l vizualiza.

Ceas de mână de casă cu indicator de vid, realizat în stil steampunk. Material preluat de pe www.johngineer.com. Acest ceas de mână este asamblat pe baza afișajului IVL-2. Am cumpărat inițial mai mulți dintre acești indicatori pentru a crea un ceas de masă standard, dar după ce m-am gândit mi-am dat seama că aș putea construi și un ceas de mână elegant. Indicatorul are o serie de caracteristici care îl fac mai potrivit în acest scop decât majoritatea celorlalte afișaje sovietice. Iată parametrii:

  • Curentul nominal al filamentului este de 60mA 2.4V, dar funcționează cu 35mA 1.2V.
  • Dimensiune mică - doar 1,25 x 2,25"
  • Poate funcționa cu o tensiune de rețea relativ scăzută de 12 V (până la 24)
  • Consumă doar 2,5 mA/segment la 12,5V

Toate fotografiile pot fi mărite făcând clic pe ele. Cel mai mare obstacol în calea finalizării cu succes a proiectului a fost mâncarea. Deoarece acest ceas a fost menit să facă parte dintr-un costum, nu contează că bateria ține doar 10 ore. M-am stabilit pe AA și AAA.

Schema este destul de simplă. Microcontroler Atmel AVR ATMega88 și ceas în timp real - DS3231. Dar există și alte cipuri, mult mai ieftine, care vor funcționa la fel de bine într-un generator.

Afișajul VFD este comandat de MAX6920 - un registru de deplasare de 12 biți cu ieșiri de înaltă tensiune (până la 70V). Este ușor de utilizat, foarte fiabil și compact. De asemenea, era posibil ca driverul de afișare să lideze o grămadă de componente discrete, dar acest lucru a fost nepractic din cauza constrângerilor de spațiu.

Tensiunea bateriei alimentează, de asemenea, un convertor boost de 5 V (MCP1640 SOT23-6), care este necesar pentru funcționarea normală a AVR, DS3231 și MAX6920 și acționează, de asemenea, ca tensiune de intrare pentru un al doilea convertor boost (NCP1403 SOT23-5), care produce 13V pentru tensiunea grilei indicatorului de vid.

Ceasul are trei senzori: unul analogic și doi digitali. Senzorul analogic este un fototranzistor și este utilizat pentru a detecta nivelul de lumină (Q2). Senzori digitali: BMP180 - presiune si temperatura, si MMA8653 - accelerometru pentru detectarea miscarii. Ambii senzori digitali sunt conectați printr-o magistrală I2C la DS3231.

Tuburile de alamă sunt lipite pentru frumusețea și protecția afișajului de sticlă al ceasului de mână, iar pentru atașarea curelei de piele se folosesc fire de cupru groase de 2 mm. Schema completă a circuitului nu este furnizată în articolul original - consultați conexiunea de pe fișele tehnice la microcircuitele indicate.

Salutare geektimes! Prima parte a articolului a discutat despre principiile obținerii orei precise pe un ceas de casă. Să mergem mai departe și să ne gândim cum și pe ce este mai bine să afișați de data aceasta.

1. Dispozitive de ieșire

Deci, avem o anumită platformă (Arduino, Raspberry, controler PIC/AVR/STM etc.), iar sarcina este să conectăm un fel de indicație la ea. Există multe opțiuni pe care le vom lua în considerare.

Afișare segment

Totul este simplu aici. Indicatorul de segment este format din LED-uri obișnuite, care sunt pur și simplu conectate la microcontroler prin rezistențe de stingere.

Atenție la trafic!

Pro: simplitatea designului, unghiuri bune de vizualizare, preț scăzut.
Contra: Cantitatea de informații afișate este limitată.
Există două tipuri de design de indicator, cu un catod comun și un anod comun în interiorul acestuia arată cam așa (diagrama de pe site-ul producătorului);

Există 1001 de articole despre cum să conectați un LED la un microcontroler, Google vă poate ajuta. Dificultățile încep atunci când vrem să facem un ceas mare - la urma urmei, a privi un indicator mic nu este deosebit de convenabil. Atunci avem nevoie de următorii indicatori (foto de pe eBay):

Sunt alimentate de 12 V și pur și simplu nu vor funcționa direct de la microcontroler. Aici ne vine în ajutor microcircuitul. CD4511, conceput tocmai pentru acest scop. Nu numai că convertește datele dintr-o linie de 4 biți în numerele dorite, dar conține și un comutator tranzistor încorporat pentru a furniza tensiune indicatorului. Astfel, în circuit va trebui să avem o tensiune de „putere” de 9-12V și un convertor separat (de exemplu L7805) pentru a alimenta „logica” circuitului.

Indicatori matrici

În esență, acestea sunt aceleași LED-uri, doar sub forma unei matrice 8x8. Fotografie de pe eBay:

Ele sunt vândute pe eBay sub formă de module individuale sau blocuri gata făcute, de exemplu 4 bucăți. Gestionarea acestora este foarte simplă - un microcircuit este deja lipit pe module MAX7219, asigurand functionarea si conectarea acestora la microcontroler folosind doar 5 fire. Există multe biblioteci pentru Arduino, oricine se poate uita la cod.
Pro: preț scăzut, unghiuri bune de vizualizare și luminozitate.
Contra: rezoluție scăzută. Dar pentru sarcina de inferență, timpul este suficient.

Indicatoare LCD

Indicatorii LCD pot fi grafici sau text.

Cele grafice sunt mai scumpe, dar vă permit să afișați informații mai variate (de exemplu, un grafic al presiunii atmosferice). Cele cu text sunt mai ieftine și mai ușor de lucrat, vă permit și să afișați pseudo-grafice - este posibil să încărcați simboluri personalizate pe afișaj.

Lucrul cu un indicator LCD din cod nu este dificil, dar există un anumit dezavantaj - indicatorul necesită multe linii de control (de la 7 la 12) de la microcontroler, ceea ce este incomod. Prin urmare, chinezii au venit cu ideea de a combina un indicator LCD cu un controler i2c, care a ajuns să fie foarte convenabil - doar 4 fire sunt suficiente pentru a conecta (foto de pe eBay).


Indicatoarele LCD sunt destul de ieftine (dacă le cumpărați de pe eBay), mari, ușor de conectat și pot afișa o varietate de informații. Singurul negativ este că unghiurile de vizualizare nu sunt foarte mari.

Indicatoare OLED

Sunt o continuare îmbunătățită a versiunii anterioare. Acestea variază de la mici și ieftine cu o diagonală de 1,1", până la mari și scumpe. Fotografie de pe eBay.

De fapt, sunt bune în toate, cu excepția prețului. În ceea ce privește indicatorii mici, de 0,9-1,1" în dimensiune, atunci (cu excepția învățării cum să lucrezi cu i2c) este dificil să le găsești vreo utilizare practică.

Indicatori de descărcare de gaze (IN-14, IN-18)

Acești indicatori sunt acum foarte populari, aparent datorită „sunetului cald al luminii” și originalității designului.


(foto de pe nocrotec.com)

Schema lor de conectare este ceva mai complicată, deoarece Aceste indicatoare folosesc o tensiune de 170V pentru aprindere. Un convertor de la 12V=>180V se poate face pe un microcircuit MAX771. Un microcircuit sovietic este utilizat pentru a furniza tensiune indicatoarelor K155ID1, care a fost creat special în acest scop. Prețul de emisiune pentru auto-producție: aproximativ 500 de ruble pentru fiecare indicator și 100 de ruble pentru K155ID1, toate celelalte părți, așa cum scriau în reviste vechi, „nu sunt insuficiente”. Principala dificultate aici este că atât IN-xx, cât și K155ID1 au ieșit de mult timp din producție și le puteți cumpăra doar de pe piețele de radio sau în câteva magazine specializate.

2. Selectarea platformei

Ne-am dat seama mai mult sau mai puțin de afișaj, tot ce rămâne este să decidem ce platformă hardware este cea mai bună de utilizat. Există mai multe opțiuni aici (nu le iau în considerare pe cele de casă, pentru că cei care știu să direcționeze o placă și să lideze un procesor nu au nevoie de acest articol).

Arduino

Cea mai ușoară opțiune pentru începători. Placa finită este ieftină (aproximativ 10 USD pe eBay cu transport gratuit) și are toți conectorii necesari pentru programare. Fotografie de pe eBay:

Există un număr mare de biblioteci diferite pentru Arduino (de exemplu, pentru aceleași ecrane LCD, module în timp real), Arduino este compatibil hardware cu diverse module suplimentare.
Principalul dezavantaj: dificultatea depanării (doar prin consola portului serial) și un procesor destul de slab conform standardelor moderne (2KB RAM și 16MHz).
Avantajul principal: puteți face o mulțime de lucruri, practic fără să vă deranjați cu lipirea, cumpărând un programator și plăci de cablare trebuie doar să conectați modulele între ele;

procesoare STM pe 32 de biți

Pentru cei care doresc ceva mai puternic, există plăci gata făcute cu procesoare STM, de exemplu o placă cu STM32F103RBT6 și un ecran TFT. Fotografie de pe eBay:

Aici avem deja depanare completă într-un IDE cu drepturi depline (dintre toate diferitele, mi-a plăcut cel mai mult IDE-ul Coocox), totuși, vom avea nevoie de un programator-depanator ST-LINK separat cu un conector JTAG (problema prețul este de 20-40 USD pe eBay). Alternativ, puteți cumpăra placa de dezvoltare STM32F4Discovery, pe care acest programator este deja încorporat și poate fi folosită separat.

Raspberry PI

Și, în sfârșit, pentru cei care doresc o integrare deplină cu lumea modernă, există computere cu o singură placă cu Linux, probabil deja cunoscute de toată lumea - Raspberry PI. Fotografie de pe eBay:

Acesta este un computer cu drepturi depline cu Linux, un gigabyte de RAM și un procesor cu 4 nuclee la bord. Pe marginea plăcii se află un panou de 40 de pini, permițându-vă să conectați diverse periferice (pinii sunt disponibili din cod, de exemplu în Python, ca să nu mai vorbim de C/C++), există și un USB standard sub formă de 4 conectori (poți conecta WiFi). Există și HDMI standard.
Puterea plăcii este suficientă, de exemplu, nu numai pentru a afișa ora, ci și pentru a rula un server HTTP pentru setarea parametrilor printr-o interfață web, încărcarea unei prognoze meteo prin Internet și așa mai departe. În general, există mult loc pentru zborul fanteziei.

Există o singură dificultate cu Raspberry (și procesoarele STM32) - pinii săi folosesc logica 3-V, iar majoritatea dispozitivelor externe (de exemplu ecranele LCD) funcționează „de modă veche” de la 5V. Desigur, îl puteți conecta în acest fel și, în principiu, va funcționa, dar aceasta nu este metoda corectă și este un fel de păcat să strici o placă de 50 USD. Modul corect este să folosiți un „convertor de nivel logic”, care costă doar 1-2 USD pe eBay.
Fotografie de pe eBay:

Acum este suficient să ne conectăm dispozitivul printr-un astfel de modul, iar toți parametrii vor fi consecvenți.

ESP8266

Metoda este destul de exotică, dar destul de promițătoare datorită compactității și costului scăzut al soluției. Pentru foarte puțini bani (aproximativ 4-5 dolari pe eBay) puteți cumpăra un modul ESP8266 care conține un procesor și WiFi la bord.
Fotografie de pe eBay:

Inițial, astfel de module au fost concepute ca o punte WiFi pentru schimb printr-un port serial, dar pasionații au scris multe firmware alternative care le permit să lucreze cu senzori, dispozitive i2c, PWM etc. Ipotetic, este destul de posibil să primiți timp de la un server NTP și scoateți-l pe afișaj prin i2c. Pentru cei care doresc să conecteze o mulțime de periferice diferite, există plăci speciale NodeMCU cu un număr mare de pini, prețul este de aproximativ 500 de ruble (desigur pe eBay):

Singurul negativ este că ESP8266 are foarte puțină RAM (în funcție de firmware, de la 1 la 32 KB), dar acest lucru face ca sarcina să fie și mai interesantă. Modulele ESP8266 folosesc logica de 3V, astfel încât convertorul de nivel de mai sus va fi de asemenea util aici.

Aceasta se încheie excursia introductivă în electronica de casă, autorul urează tuturor experimente de succes.

În loc de o concluzie

În cele din urmă, m-am hotărât să folosesc un Raspberry PI cu un indicator de text configurat să funcționeze cu pseudo-grafice (care s-a dovedit a fi mai ieftin decât un ecran grafic de aceeași diagonală). Am făcut o fotografie cu ecranul ceasului de pe desktop în timp ce scriam acest articol.

Ceasul afișează ora exactă luată de pe Internet, iar vremea este actualizată din Yandex, toate acestea sunt scrise în Python și funcționează destul de bine de câteva luni. În același timp, pe ceas rulează un server FTP, care permite (cuplat cu redirecționarea portului pe router) să își actualizeze firmware-ul nu numai de acasă, ci și din orice loc unde există Internet. Ca bonus, resursele Raspberry, in principiu, sunt suficiente pentru a conecta o camera si/sau microfon cu posibilitatea de a monitoriza de la distanta apartamentul, sau pentru a controla diverse module/relee/senzori. Puteți adăuga tot felul de „bunătăți”, cum ar fi indicarea cu LED-uri a mesajelor primite și așa mai departe.

PS: De ce eBay?
După cum puteți vedea, prețurile sau fotografiile de pe eBay au fost date pentru toate dispozitivele. De ce este asta? Din păcate, magazinele noastre trăiesc adesea după principiul „cumpărat cu 1 USD, vândut cu 3 USD și trăiesc din acel 2 procente”. Ca exemplu simplu, Arduino Uno R3 costă (la momentul scrierii acestui articol) 3600 de ruble în Sankt Petersburg și 350 de ruble pe eBay cu transport gratuit din China. Diferența este cu adevărat un ordin de mărime, fără nicio exagerare literară. Da, va trebui să așteptați o lună pentru a ridica coletul de la poștă, dar cred că o astfel de diferență de preț merită. Dar, totuși, dacă cineva are nevoie de el chiar acum și urgent, atunci probabil că există o alegere în magazinele locale, aici fiecare decide singur.

Acest ceas este asamblat pe un chipset binecunoscut - K176IE18 (contor binar pentru un ceas cu un generator de semnal de sonerie),

K176IE13 (contor ceas cu alarmă) și K176ID2 (convertor de cod binar în șapte segmente)

Când alimentarea este pornită, zerourile sunt scrise automat în contorul de ore și minute și în registrul de memorie al ceasului cu alarmă al chipului U2. Pentru instalare

timp, apăsați butonul S4 (Setare oră) și ținând-l apăsați butonul S3 (Ora) - pentru a seta ora sau S2 (Min) - pentru a seta

minute. În acest caz, citirile indicatorilor corespunzători vor începe să se schimbe cu o frecvență de 2 Hz de la 00 la 59 și apoi din nou 00. În momentul tranziției

de la 59 la 00 contorul orelor va crește cu unu. Setarea orei alarmei este aceeași, trebuie doar să o ții

butonul S5 (Setare alarmă). După setarea orei de alarmă, trebuie să apăsați butonul S1 pentru a porni alarma (contacte

închis). Butonul S6 (Resetare) este folosit pentru a forța ca indicatorii minutelor să fie resetati la 00 în timpul configurării. LED-urile D3 și D4 joacă un rol

puncte de împărțire care clipesc la o frecvență de 1 Hz. Indicatorii digitali de pe diagramă sunt amplasați în ordinea corectă, adică vin pe primul loc

indicatoare de oră, două puncte de separare (LED-uri D3 și D4) și indicatoare de minute.

Ceasul a folosit rezistențe R6-R12 și R14-R16 cu o putere de 0,25 W, restul - 0,125 W. Rezonator de cuarț XTAL1 la o frecvență de 32 768 Hz -

santinelă obișnuită, tranzistoarele KT315A pot fi înlocuite cu orice siliciu de putere redusă cu structura corespunzătoare, KT815A - cu tranzistori

putere medie cu un coeficient de transfer de curent de bază static de cel puțin 40, diode - orice siliciu de putere redusă. Tweeter BZ1

dinamic, fara generator incorporat, rezistenta infasurarii 45 Ohm. Butonul S1 este blocat în mod natural.

Indicatorii folosiți sunt TOS-5163AG verzi, puteți utiliza orice alți indicatori cu un catod comun fără a reduce

rezistența rezistențelor R6-R12. În figură puteți vedea pinout-ul acestui indicator, concluziile sunt afișate condiționat, deoarece prezentat

vedere de sus.

După asamblarea ceasului, poate fi necesar să reglați frecvența oscilatorului cu cristal. Acest lucru se poate realiza cel mai precis prin control digital

folosind un frecvențămetru, perioada de oscilație este de 1 s la pinul 4 al microcircuitului U1. Reglarea generatorului pe măsură ce ceasul avansează va necesita cheltuieli semnificativ mai mari

timp. De asemenea, poate fi necesar să reglați luminozitatea LED-urilor D3 și D4 selectând rezistența rezistenței R5, astfel încât totul

strălucea uniform. Curentul consumat de ceas nu depășește 180 mA.

Ceasul este alimentat de o sursă de alimentare convențională, asamblată pe un stabilizator de microcircuit pozitiv 7809 cu o tensiune de ieșire de +9V și un curent de 1,5A.

Pentru cei care au măcar puține cunoștințe de microcontrolere și doresc, de asemenea, să creeze un dispozitiv simplu și util pentru casă, nimic mai bun decât un ansamblu cu indicatoare LED. Așa ceva vă poate decora camera sau poate fi folosit ca un cadou unic lucrat manual, din care va dobândi valoare suplimentară. Circuitul funcționează ca un ceas și ca un termometru - modurile sunt comutate cu un buton sau automat.

Schema electrică a unui ceas de casă cu un termometru

Microcontroler PIC18F25K22 se ocupă de toată procesarea și sincronizarea datelor și de o partajare ULN2803A Tot ce rămâne este să-și coordoneze ieșirile cu indicatorul LED. cip mic DS1302 funcționează ca un cronometru al semnalelor secunde precise, frecvența sa este stabilizată de un rezonator cu cuarț standard de 32768 Hz. Acest lucru complică oarecum designul, dar nu va trebui să ajustați și să reglați în mod constant timpul, care inevitabil va fi întârziat sau grăbit dacă vă descurcați cu un rezonator de cuarț neacordat aleatoriu de câțiva MHz. Un ceas ca acesta este mai mult o jucărie simplă decât un ceas precis și de înaltă calitate.

Dacă este necesar, senzorii de temperatură pot fi amplasați departe de unitatea principală - sunt conectați la aceasta cu un cablu cu trei fire. În cazul nostru, un senzor de temperatură este instalat în bloc, iar celălalt este amplasat în exterior, pe un cablu de aproximativ 50 cm Când am încercat un cablu de 5 m, a funcționat și el perfect.

Afișajul ceasului este format din patru indicatoare digitale mari LED. Au fost inițial catozi obișnuiți, dar s-au schimbat în anod comun în versiunea finală. Puteți instala oricare altele, apoi selectați pur și simplu rezistențele de limitare a curentului R1-R7 în funcție de luminozitatea necesară. L-ai putea așeza pe o placă comună cu partea electronică a ceasului, dar aceasta este mult mai universală - dintr-o dată vrei să pui un indicator LED foarte mare, astfel încât să poată fi văzute de la distanță mare. Un exemplu de astfel de design al unui ceas stradal este aici.

Electronica în sine pornește de la 5 V, dar pentru ca LED-urile să strălucească puternic este necesar să se folosească 12 V. Din rețea, alimentarea este furnizată printr-un adaptor de transformare coborâtor către stabilizator. 7805 , care produce o tensiune de strict 5 V. Atenție la micul baterie cilindrică verde - servește ca sursă de alimentare de rezervă în cazul în care se pierde rețeaua de 220 V Nu este necesar să o luați la 5 V - un litiu-ion sau acumulatorul Ni-MH pentru 3,6 este suficient Volt.

Pentru acest caz, puteți utiliza diverse materiale - lemn, plastic, metal sau integrați întreaga structură a unui ceas de casă într-unul industrial gata făcut, de exemplu, de la un multimetru, tuner, receptor radio și așa mai departe. L-am făcut din plexiglas deoarece este ușor de prelucrat și vă permite să vedeți interiorul, astfel încât toată lumea să poată vedea - acest ceas a fost asamblat cu propriile mâini. Și, cel mai important, era disponibil :)

Aici puteți găsi toate detaliile necesare despre designul propus de ceas digital de casă, inclusiv schema de circuit, aspectul PCB, firmware-ul PIC și