Schemă simplă a circuitului ceasului electronic DIY. Ceas electronic DIY

20 august 2015 la 12:34

Ceasuri electronice de casă, componente - partea 1, măsurarea timpului

  • DIY sau Do It Yourself

Probabil că fiecare tocilar care iubește electronicele de casă, mai devreme sau mai târziu, vine cu ideea de a-și crea propriul ceas unic. Ideea este destul de bună, să ne dăm seama cum și ce este mai bine să le facem. Ca punct de plecare, vom presupune că o persoană știe cum să programeze microcontrolere, înțelege cum să trimită 2 octeți printr-un port i2c sau serial și poate lipi mai multe fire împreună. În principiu, acest lucru este suficient.

Este clar că funcția cheie a unui ceas este de a măsura timpul (cine ar fi crezut, nu?). Și este recomandabil să faceți acest lucru cât mai precis posibil, există mai multe opțiuni și capcane.

Deci, ce metode de măsurare a timpului sunt disponibile în hardware-ul pe care îl putem folosi?

Oscilator RC CPU încorporat

Cea mai simplă idee care vă poate veni în minte este să configurați pur și simplu un cronometru software și să îl folosiți pentru a număra secundele inverse. Deci, această idee nu este bună. Ceasul va funcționa, desigur, dar precizia generatorului încorporat nu este reglementată în niciun fel și poate „pluti” în limita a 10% din valoarea nominală. Este puțin probabil ca cineva să aibă nevoie de un ceas care durează 15 minute pe lună.

Modul timp real DS1307

O opțiune mai corectă, care este folosită și în majoritatea produselor „folk”, este ceasul în timp real. Microcircuitul comunică cu microcontrolerul prin I2C și necesită un minim de cablare (cuarț și o pereche de rezistențe). Prețul este de aproximativ 100 de ruble per cip sau aproximativ 1 dolar pe eBay pentru o placă gata făcută cu un cip, un modul de memorie și un conector pentru baterie.

Schema din fisa de date:

La fel de important, microcircuitul este produs într-un pachet DIP, ceea ce înseamnă că orice radioamator începător îl poate lipi. Bateria încorporată menține ceasul în funcțiune chiar dacă alimentarea este oprită.

S-ar părea că totul este bine, dacă nu pentru o singură problemă - precizie scăzută. Precizia aproximativă a cuarțului ceasului este de 20-30 ppm. Denumirea ppm - părți pe milion, arată numărul de părți pe milion. S-ar părea că 20 de milionimi este super, dar pentru o frecvență de 32768Hz rezultă 20*32768/1000000 = ±0,65536Hz, adică. deja o jumătate de hertz. Prin calcule simple, se poate observa că, cu o astfel de diferență, un generator „face clic” pe 56 de mii de cicluri suplimentare (sau lipsă) pe zi, ceea ce corespunde la 2 secunde pe zi. Există diferite tipuri de cuarț, unii utilizatori au scris și despre o eroare de 5 secunde pe zi. Cumva, nu este foarte precis - într-o lună un astfel de ceas va dura cel puțin un minut. Aceasta este deja o diferență semnificativă, vizibilă cu ochiul liber (când serialul TV preferat al bunicii începe la ora 11.00, iar ceasul arată 11.05, dezvoltatorul unui astfel de ceas va fi jenat în fața rudelor).

Cu toate acestea, deoarece temperatura din cameră este mai mult sau mai puțin stabilă, iar frecvența cuarțului nu se va schimba prea mult, puteți adăuga o corecție software. Un alt sfat dat pe forumuri este să folosești ceas cu quartz de la plăcile de bază vechi, conform recenziilor, sunt destul de precise.

Modul DS3231 în timp real

Nu suntem primii care pun problema acurateței, iar compania Dallas, în urma dorințelor, a lansat un modul mai avansat - DS3231. Se numește „Extremely Accurate Real Time Clock” și are un generator încorporat cu corecție a temperaturii. Precizia este de 10 ori mai mare și este de 2 ppm. Prețul este puțin mai mare, dar corpul cipului este proiectat pentru montarea SMD, lipirea nu este atât de convenabilă, dar puteți cumpăra o placă gata făcută pe eBay.


(fotografie de pe site-ul vânzătorului)

O precizie de 6 secunde pe lună este deja un rezultat bun. Dar vom merge mai departe - în mod ideal, ceasurile din secolul 21 nu trebuie deloc ajustate.

Modul radio DCF-77

Metoda este mai degrabă exotică, dar de dragul completității nu poate fi ignorată. Puțini oameni știu, dar semnale de timp precise au fost transmise prin radio din anii 70. Emițătorul DCF-77 este situat în Germania lângă Frankfurt, iar pe frecvența VHF 77,5 KHz se transmit ștampile de timp precise (da, aveau deja ceasuri de perete și de masă acum 20 de ani care nu trebuiau reglate).

Lucrul bun la această metodă este că circuitul are un consum redus de energie, așa că acum sunt produse chiar și ceasuri de mână cu această tehnologie. O placă de recepție DCF-77 gata făcută poate fi achiziționată de pe ebay, prețul cerut este de 20 USD.

Multe ceasuri și stații meteo au capacitatea de a primi DCF-77, singura problemă este că semnalul practic nu ajunge în Rusia. Harta acoperirii de pe Wikipedia:

După cum puteți vedea, doar Moscova și Sankt Petersburg sunt la granița zonei de recepție. Potrivit recenziilor proprietarilor, doar uneori semnalul poate fi primit, ceea ce, desigur, nu este potrivit pentru utilizare practică.

modul GPS

Dacă ceasul este situat aproape de fereastră, atunci o metodă foarte realistă de a obține ora exactă este un modul GPS. Aceste module pot fi achiziționate ieftin de pe ebay (prețul de emisiune este de 10-15 USD). De exemplu, Ublox NEO-6M se conectează direct la pinii seriali ai procesorului și scoate șiruri NMEA la o viteză de 9600.

Datele vin în aproximativ următorul format: „$GPRMC,040302.663,A,3939.7,N,10506.6,W,0.27,358.86,200804,*1A”, iar analizarea lor nu este dificilă nici măcar pentru un Arduino slab. Apropo, patrioții pot achiziționa modulul Ublox NEO-7N mai scump, care acceptă (conform recenziilor) atât GPS, cât și Glonass.

Evident, modulul GPS nu știe nimic despre diferitele fusuri orare, așa că dezvoltatorul va trebui să se gândească la calculul lor și la schimbarea orei de vară/iarnă. Un alt dezavantaj al utilizării GPS este consumul relativ mare de energie (cu toate acestea, unele module pot fi puse în „modul de repaus” folosind comenzi separate).

Wifi

Și, în sfârșit, ultima modalitate (și cea mai evidentă în acest moment) de a obține ora exactă este să o luați de pe Internet. Există două abordări aici. Prima, și cea mai simplă, este să folosiți ceva de genul Raspberry PI cu Linux ca placă de ceas, apoi nu trebuie să faceți nimic, totul va funcționa imediat. Dacă doriți ceva „exotic”, atunci cea mai interesantă opțiune este modulul esp8266.

Acesta este un modul ieftin (prețul de emisiune este de aproximativ 200 de ruble pe ebay) modulul WiFi poate comunica cu serverul prin portul serial al procesorului, dacă se dorește, poate fi, de asemenea, actualizat (există destul de multe firmware-uri terță parte), iar o parte a logicii (de exemplu, sondarea serverului de timp) se poate face în modul însuși. Firmware-ul terță parte acceptă o mulțime de orice, de la Lua la C++, așa că există destule opțiuni pentru a-ți „flexa creierul”.

În acest moment, subiectul măsurării timpului poate fi probabil închis. În partea următoare vom arunca o privire mai atentă asupra procesoarelor și metodelor de ieșire în timp.

Îmi amintesc... În urmă cu treizeci de ani, șase indicatori erau o mică comoară. Oricine putea face apoi un ceas folosind logica TTL cu astfel de indicatori era considerat un expert sofisticat în domeniul său.

Strălucirea indicatoarelor de descărcare de gaz părea mai caldă. După câteva minute mă întrebam dacă aceste lămpi vechi ar funcționa și am vrut să fac ceva cu ele. Acum este foarte ușor să faci un astfel de ceas. Tot ce ai nevoie este un microcontroler...

Deoarece în același timp eram interesat de programarea microcontrolerelor în limbaje de nivel înalt, am decis să mă joc puțin. Am încercat să construiesc un ceas simplu folosind indicatori digitali de descărcare a gazelor.

Scopul proiectării

Am decis ca ceasul să aibă șase cifre, iar ora să fie setată cu un număr minim de butoane. În plus, am vrut să încerc să folosesc câteva dintre cele mai comune familii de microcontrolere de la diferiți producători. Am intenționat să scriu programul în C.

Indicatorii de descărcare de gaz necesită tensiune înaltă pentru a funcționa. Dar nu am vrut să mă ocup de tensiunea de rețea periculoasă. Ceasul trebuia să fie alimentat de o tensiune inofensivă de 12 V.

Deoarece scopul meu principal a fost jocul, nu veți găsi aici nicio descriere a designului mecanic sau a desenelor corpului. Dacă doriți, puteți schimba singur ceasul în funcție de gusturile și experiența dvs.

Iată ce am primit:

  • Afișare timp: HH MM SS
  • Indicație de alarmă: HH MM --
  • Mod de afișare a timpului: 24 de ore
  • Precizie ± 1 secundă pe zi (în funcție de cristalul de cuarț)
  • Tensiune de alimentare: 12 V
  • Consum de curent: 100 mA

Diagrama ceasului

Pentru un dispozitiv cu un afișaj digital din șase cifre, modul multiplex a fost o soluție naturală.

Scopul majorității elementelor diagramei bloc (Figura 1) este clar fără comentarii. Într-o anumită măsură, o sarcină nestandard a fost crearea unui convertor de nivel TTL în semnale de control ale indicatorului de înaltă tensiune. Driverele anodului sunt realizate folosind tranzistoare NPN și PNP de înaltă tensiune. Diagrama este împrumutată de la Stefan Kneller (http://www.stefankneller.de).

Cipul 74141 TTL conține un decodor BCD și un driver de înaltă tensiune pentru fiecare cifră. Poate fi dificil să comandați un cip. (Deși nu știu dacă le mai face cineva). Dar dacă găsiți indicatoare de descărcare de gaze, 74141 poate fi undeva în apropiere :-). La momentul logicii TTL, practic nu exista nicio alternativă la cipul 74141. Așa că încearcă să găsești unul undeva.

Indicatorii necesită o tensiune de aproximativ 170 V. Nu are sens să se dezvolte un circuit special pentru un convertor de tensiune, deoarece există un număr mare de cipuri de convertizor boost. Am ales IC34063 ieftin și disponibil pe scară largă. Circuitul convertorului este aproape complet copiat din fișa de date MC34063. I s-a adăugat doar un comutator de alimentare T13. Comutatorul intern nu este potrivit pentru o tensiune atât de mare. Am folosit un șoc ca inductanță pentru convertor. Este prezentat în Figura 2; diametrul său este de 8 mm și lungimea de 10 mm.

Eficiența convertorului este destul de bună, iar tensiunea de ieșire este relativ sigură. Cu un curent de sarcină de 5 mA, tensiunea de ieșire scade la 60 V. R32 acționează ca un rezistor de detectare a curentului.

Pentru alimentarea logicii, se folosește regulatorul liniar U4. Există spațiu pe circuit și pe placă pentru o baterie de rezervă. (3,6 V - NiMH sau NiCd). D7 și D8 sunt diode Schottky, iar rezistența R37 este concepută pentru a limita curentul de încărcare în funcție de caracteristicile bateriei. Dacă construiești ceasuri doar pentru distracție, nu vei avea nevoie de baterie, D7, D8 și R37.

Circuitul final este prezentat în Figura 3.

Figura 3.

Butoanele de setare a orei sunt conectate prin diode. Starea butoanelor este verificată prin setarea unui „1” logic la ieșirea corespunzătoare. Ca o caracteristică bonus, un emițător piezo este conectat la ieșirea microcontrolerului. Ca să taci scârțâitul acela urât, folosește un mic întrerupător. Un ciocan ar fi destul de potrivit pentru asta, dar aceasta este o ultimă soluție :-).

O listă de componente ale circuitului, un desen al plăcii de circuit imprimat și o diagramă de aspect pot fi găsite în secțiunea „Descărcări”.

CPU

Aproape orice microcontroler cu un număr suficient de pini, al cărui număr minim necesar este indicat în Tabelul 1, poate controla acest dispozitiv simplu.

Tabelul 1.
Funcţie concluzii
Nutriție 2
Rezonator cu cuarț 2
Managementul anodului 6
Driver 74141 4
Buton de intrare 1
Emițător piezo 1
Total 16

Fiecare producător își dezvoltă propriile familii și tipuri de microcontrolere. Locația știfturilor este individuală pentru fiecare tip. Am încercat să proiectez o placă universală pentru mai multe tipuri de microcontrolere. Placa are o priză cu 20 de pini. Cu câteva fire jumper îl puteți adapta la diferite microcontrolere.

Microcontrolerele testate în acest circuit sunt enumerate mai jos. Puteți experimenta cu alte tipuri. Avantajul schemei este capacitatea de a utiliza diferite procesoare. Radioamatorii, de regulă, folosesc o singură familie de microcontrolere și au programatorul și instrumentele software adecvate. Pot fi probleme cu microcontrolerele de la alți producători, așa că ți-am dat ocazia să alegi un procesor din familia ta preferată.

Toate particularitățile pornirii diferitelor microcontrolere sunt reflectate în tabelele 2...5 și figurile 4...7.

Masa 2.
Freescale
Tip MC68HC908QY1
Rezonator cu cuarț 12 MHz
Condensatoare C1, C2 22 pF
Program freescale.zip
(vezi secțiunea „Descărcări”)
Setări

Notă: Un rezistor de 10 MΩ este conectat în paralel cu rezonatorul de cuarț.

Tabelul 3.
Microcip
Tip PIC16F628A
Rezonator cu cuarț 32,768 kHz
Condensatoare C1, C2 22 pF
Program pic628.zip
(vezi secțiunea „Descărcări”)
Setări Int. Generator de 4 MHz - I/O RA6,
MCLR OFF, WDT OFF, LVP OFF,
BROUT OFF, CP OFF, PWRUP OFF

Notă: Microcircuitul trebuie rotit cu 180° în priză.

Tabelul 4.
Atmel
Tip ATtiny2313
Rezonator cu cuarț 12 MHz
Condensatoare C1, C2 15 pF
Program attiny.zip
(vezi secțiunea „Descărcări”)
Setări mp. Oscilator 8 MHz, RESET PORNIT

Notă: Adăugați componentele SMD R și C la pinul RESET (10 kΩ și 100 nF).

Tabelul 5.
Atmel
Tip AT89C2051
Rezonator cu cuarț 12 MHz
Condensatoare C1, C2 22 pF
Program la2051.zip
(vezi secțiunea „Descărcări”)
Setări --

Notă: Adăugați componentele SMD R și C la pinul RESET (10 kΩ și 100 nF); conectați pinii marcați cu asteriscuri la magistrala de alimentare +Ub prin rezistențe SMD de 3,3 kOhm.

Când comparați codurile pentru diferite microcontrolere, veți vedea că acestea sunt foarte asemănătoare. Există diferențe în accesul la porturi și definirea funcțiilor de întrerupere, precum și în ceea ce depinde de componentele hardware.

Codul sursă este format din două secțiuni. Funcţie principal() configurează porturile și pornește un cronometru care generează semnale de întrerupere. După aceasta, programul scanează butoanele apăsate și setează ora și valorile de alarmă corespunzătoare. Acolo, în bucla principală, ora actuală este comparată cu ceasul cu alarmă și emițătorul piezo este pornit.

A doua parte este o subrutină pentru gestionarea întreruperilor temporizatorului. O subrutină care este apelată la fiecare milisecundă (în funcție de capacitățile cronometrului) incrementează variabilele de timp și controlează cifrele afișate. În plus, se verifică starea butoanelor.

Rularea circuitului

Când instalați componente și configurați, începeți cu sursa de alimentare. Lipiți regulatorul U4 și componentele din jur. Verificați tensiunea de 5V pentru U2 și 4,6V pentru U1. Următorul pas este asamblarea convertorului de înaltă tensiune. Utilizați rezistența de reglare R36 pentru a seta tensiunea la 170 V. Dacă domeniul de reglare nu este suficient, modificați ușor rezistența rezistenței R33. Acum instalați cipul U2, tranzistoarele și rezistențele anodului și circuitului de driver digital. Conectați intrările U2 la magistrala GND și conectați unul dintre rezistențele R25 - R30 în serie la magistrala de alimentare +Ub. Numerele indicatoare ar trebui să se aprindă în pozițiile corespunzătoare. În ultima etapă a verificării circuitului, conectați pinul 19 al microcircuitului U1 la masă - emițătorul piezo ar trebui să sune.

Veți găsi codurile sursă și programele compilate în fișierul ZIP corespunzător din secțiunea „Descărcări”. După ce ați introdus programul în microcontroler, verificați cu atenție fiecare pin în poziția U1 și instalați firele și jumperii de lipit necesare. Consultați imaginile microcontrolerului de mai sus. Dacă microcontrolerul este programat și conectat corect, generatorul său ar trebui să înceapă să funcționeze. Puteți seta ora și alarma. Atenţie! Există spațiu pe placă pentru încă un buton - acesta este un buton de rezervă pentru extinderi viitoare :-).

Verificați acuratețea frecvenței generatorului. Dacă nu este în intervalul așteptat, modificați ușor valorile condensatoarelor C1 și C2. (Lipiți condensatoarele mici în paralel sau înlocuiți-le cu altele). Precizia ceasului ar trebui să se îmbunătățească.

Concluzie

Procesoarele mici pe 8 biți sunt destul de potrivite pentru limbaje de nivel înalt. C nu a fost conceput inițial pentru microcontrolere mici, dar pentru aplicații simple îl puteți folosi foarte bine. Limbajul de asamblare este mai potrivit pentru sarcini complexe care necesită timpi critici sau încărcare maximă a CPU. Pentru majoritatea radioamatorilor, sunt potrivite atât versiunile gratuite, cât și versiunile limitate shareware ale compilatorului C.

Programarea C este aceeași pentru toate microcontrolerele. Trebuie să cunoașteți funcțiile hardware (registre și periferice) ale tipului de microcontroler selectat. Fiți atenți la operațiunile cu biți - limbajul C nu este potrivit pentru manipularea biților individuali, așa cum se poate vedea în exemplul originalului când pentru ATtiny.

Ai terminat? Apoi acordați-vă pentru a contempla tuburile cu vid și urmăriți...

...vechile s-au întors... :-)

Nota editorului

Un analog complet al SN74141 este microcircuitul K155ID1, produs de software-ul Minsk Integral.
Microcircuitul poate fi găsit cu ușurință pe Internet.

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 poti folosi 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, acest articol s-a terminat deocamdată. Va fi dezvoltat și completat și îmi exprim recunoștința autorului său, 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.

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.