Cum se configurează smartphone-uri și PC-uri. Portal informativ

Ceas electronic mare cu propriile mâini. Ceas DIY cu display LED

După cum sugerează și numele, scopul principal a acestui dispozitiv- învăța ora curentăși data. Dar are multe altele funcții utile. Ideea creării sale a apărut după ce am dat peste un ceas pe jumătate spart cu un relativ mare (pentru o încheietură) corp metalic. M-am gândit că aș putea introduce acolo un ceas de casă, ale cărui posibilități sunt limitate doar de propria mea imaginație și pricepere. Rezultatul a fost un dispozitiv cu următoarele funcții:

1. Ceas - calendar:

    Numărarea și afișarea orelor, minutelor, secundelor, zilei săptămânii, zilei, lunii, anului.

    Disponibilitate reglare automată ora curentă, care este produsă în fiecare oră ( valorile maxime+/-9999 unități, 1 unitate. = 3,90625 ms.)

    Calcularea zilei săptămânii de la o dată (pentru secolul curent)

    Tranziție automată pentru vară și timp de iarna(dezactivat)

  • Se iau în considerare anii bisecti

2. Două ceasuri cu alarmă independente (se aude o melodie când este declanșată)
3. Temporizator cu trepte de 1 secundă. (Timp maxim de numărare 99h 59m 59s)
4. Cronometru cu două canale cu rezoluție de numărare de 0,01 sec. ( timp maxim numără 99h 59m 59s)
5. Cronometru cu rezoluție de numărare de 1 secundă. (timp maxim de numărare 99 de zile)
6. Termometru în intervalul de la -5°C. până la 55°C (limitat de intervalul de temperatură operatie normala dispozitive) în trepte de 0,1°C.
7. Cititor și emulator chei electronice- tablete de tip DS1990 care utilizează protocolul Dallas 1-Wire (memorie pentru 50 de bucăți, care conține deja mai multe „chei pentru toate terenurile”) cu posibilitatea de a vizualiza codul cheii octet cu octet.
8. la distanta control asupra razelor IR (este implementată doar comanda „Fă fotografiere”) pt camere digitale„Pentax”, „Nikon”, „Canon”
9. Lanterna LED
10. 7 melodii
11. Semnal sonor la începutul fiecărei ore (poate fi oprit)
12. Confirmare sonoră a apăsărilor butoanelor (poate fi dezactivată)
13. Monitorizarea tensiunii bateriei cu functie de calibrare
14. Reglarea luminozității indicatorului digital

Poate o astfel de funcționalitate este redundantă, dar îmi plac lucrurile universale, și plus satisfacția morală că acest ceas va fi făcut cu mâinile mele.

Schema schematică a ceasului

Dispozitivul este construit pe microcontrolerul ATmega168PA-AU. Ceasul bifează în funcție de cronometrul T2, funcționând în modul asincron de la un ceas cuarț la 32768 Hz. Microcontrolerul este aproape tot timpul în modul de repaus (indicatorul este stins), trezindu-se o dată pe secundă pentru a adăuga chiar această secundă la ora curentă și adoarme din nou. În modul activ, MK este tactat de la oscilatorul RC intern la 8 MHz, dar prescalerul intern îl împarte la 2, ca urmare, nucleul este tactat la 4 MHz. Pentru indicare, sunt utilizate patru indicatoare digitale LED cu o singură cifră, cu șapte segmente, cu un anod comun și un punct zecimal. Există, de asemenea, 7 LED-uri de stare, al căror scop este următorul:
D1- Semnează valoare negativă(minus)
D2- Semnul unui cronometru care rulează (intermitent)
D3- Semnul primei alarme care este activată
D4- Semnul pornirii celei de-a doua alarme
D5- Indicator de alimentare semnal sonor la începutul fiecărei ore
D6- Semnul unui cronometru care rulează (intermitent)
D7- Indicator de tensiune scăzută a bateriei

R1-R8 - rezistențe limitatoare de curent ale segmentelor indicatoarelor digitale HG1-HG4 și LED-uri D1-D7. R12,R13 – divizor pentru monitorizarea tensiunii bateriei. Deoarece tensiunea de alimentare a ceasului este de 3V, iar LED-ul alb D9 necesită aproximativ 3,4-3,8V la curent nominal consum, atunci nu strălucește la putere maximă (dar este suficient pentru a nu se împiedica în întuneric) și, prin urmare, este conectat fără un rezistor limitator de curent. Elementele R14, Q1, R10 sunt proiectate pentru a controla LED-ul infraroșu D8 (implementare telecomandă pentru camere digitale). R19, ​​​​R20, R21 sunt utilizate pentru împerechere atunci când comunicați cu dispozitive care au o interfață cu 1 fir. Controlul se realizează prin trei butoane, pe care le-am numit convențional: MOD (mod), SUS (sus), JOS (jos). Primul dintre ele este, de asemenea, conceput pentru a trezi MK printr-o întrerupere externă (în acest caz, indicația se aprinde), deci este conectat separat la intrarea PD3. Apăsarea butoanelor rămase este determinată folosind un ADC și rezistențele R16, R18. Dacă butoanele nu sunt apăsate în 16 secunde, MK intră în stare de repaus și indicatorul se stinge. Când este în modul „Comandă de la distanță pentru camere” acest interval este de 32 de secunde, iar cu lanterna aprinsă - 1 minut. De asemenea, MK poate fi oprit manual folosind butoanele de control. Când cronometrul funcționează cu o rezoluție de numărare de 0,01 sec. Dispozitivul nu intră în modul de repaus.

Placă de circuit imprimat

Dispozitivul este asamblat pe o placă de circuit imprimat cu două fețe, de formă rotundă, în funcție de dimensiunea diametrului interior al carcasei. ceas de mână. Dar în producție am folosit două plăci cu o singură față cu o grosime de 0,35 mm. Această grosime a fost obținută din nou prin decojirea acesteia din laminatul din fibră de sticlă cu două fețe cu o grosime de 1,5 mm. Scândurile au fost apoi lipite între ele. Toate acestea au fost făcute pentru că nu aveam fibră de sticlă subțire cu două fețe și fiecare milimetru de grosime salvat în spațiul interior limitat al carcasei ceasului este foarte valoros și nu a fost nevoie de aliniere la fabricarea conductorilor imprimați folosind LUT. metodă. Desen placă de circuit imprimatși locația pieselor sunt în fișierele atașate. Pe o parte există indicatoare și rezistențe de limitare a curentului R1-R8. Pe spate sunt toate celelalte detalii. Există două găuri de trecere pentru LED-urile albe și infraroșii.

Contactele butoanelor si suportul bateriei sunt realizate din tabla de otel flexibila cu arc, cu o grosime de 0,2...0,3 mm. si conservat. Mai jos sunt fotografii ale panoului de pe ambele părți:

Design, piese și posibila înlocuire a acestora

Microcontrolerul ATmega168PA-AU poate fi înlocuit cu ATmega168P-AU, ATmega168V-10AU ATmega168-20AU. Indicatoare digitale - 4 bucăți KPSA02-105 strălucire roșu super strălucitor cu o înălțime a cifrelor de 5,08 mm. Poate fi furnizat din aceeași serie KPSA02-xxx sau KCSA02-xxx. (doar nu cele verzi - vor străluci slab) Nu cunosc alți analogi de dimensiuni similare cu luminozitate decentă. În HG1, HG3, conexiunea segmentelor catodice este diferită de HG2, HG4, deoarece mi-a fost mai convenabil pentru cablarea plăcii de circuit imprimat. În acest sens, un alt tabel generator de caractere este folosit pentru ei în program. Rezistori si condensatori SMD folosit pt montaj de suprafață dimensiuni standard 0805 si 1206, LED-uri D1-D7 dimensiune standard 0805. LED-uri albe si infrarosu cu diametrul de 3 mm. Placa are 13 găuri de trecere în care trebuie instalate jumperi. Un DS18B20 cu o interfață cu 1 fir este utilizat ca senzor de temperatură. LS1 este un tweeter piezoelectric obișnuit, introdus în capac. Cu un contact este conectat la placa folosind un arc instalat pe ea, cu celălalt este conectat la corpul ceasului prin capacul propriu-zis. Rezonator de cuarț de la un ceas de mână.

Programare, firmware, sigurante

Pentru programarea în circuit, placa are doar 6 puncte de contact rotunde (J1), deoarece un conector complet nu se potrivește la înălțime. Le-am conectat la programator folosind dispozitiv de contact, realizat dintr-un ștecher PLD2x3 cu pini și arcuri lipite pe ele, apăsându-le cu o mână de bot. Mai jos este o fotografie a dispozitivului.

L-am folosit pentru că în timpul procesului de depanare a trebuit să reflashez MK-ul de multe ori. Când se afișează un firmware unic, este mai ușor să lipiți firele subțiri conectate la programator la patch-uri și apoi să le dezlipiți din nou. Este mai convenabil să flash MK fără baterie, dar astfel încât puterea să provină fie de la sursă externă+3V, sau de la un programator cu aceeași tensiune de alimentare. Programul este scris în asamblator în mediul VMLAB 3.15. Codurile sursă, firmware pentru FLASH și EEPROM în aplicație.

Biții FUSE ai microcontrolerului DD1 trebuie programați după cum urmează:
CKSEL3...0 = 0010 - tactarea de la oscilator RC intern 8 MHz;
SUT1...0 =10 - Timp de pornire: 6 CK + 64 ms;
CKDIV8 = 1 - divizorul de frecvență cu 8 este dezactivat;
CKOUT = 1 - Ceas de ieșire pe CKOUT dezactivat;
BODLEVEL2…0 = 111 - controlul tensiunii de alimentare este dezactivat;
EESAVE = 0 - stergerea EEPROM la programarea cristalului este interzisa;
WDTON = 1 - Timer-ul Watchdog nu este întotdeauna pornit;
Biții FUSE rămași sunt cel mai bine lăsați neatinse. Bitul FUSE este programat dacă este setat la „0”.

Este necesară intermiterea EEPROM-ului cu dump-ul inclus în arhivă.

Primele celule EEPROM conțin parametrii initiali dispozitive. Tabelul de mai jos descrie scopul unora dintre ele, care pot fi modificate în limite rezonabile.

Adresa celulei

Scop

Parametru

Notă

Cantitatea de tensiune a bateriei la care apare un semnal de nivel scăzut

260 (104 USD) (2,6 V)

coeficient de corectare a valorii tensiunii măsurate a bateriei

interval de timp pentru trecerea în modul de repaus

1 unitate = 1 sec

interval de timp pentru trecerea în modul de repaus când lanterna este aprinsă

1 unitate = 1 sec

interval de timp pentru trecerea în modul de repaus în modul telecomandă pentru camere

1 unitate = 1 sec

Numerele tastelor Ibutton sunt stocate aici

Mici explicații asupra punctelor:

1 punct. Aceasta indică nivelul de tensiune de pe baterie la care LED-ul se va aprinde, indicând valoarea sa scăzută. L-am setat la 2,6V (parametru - 260). Dacă aveți nevoie de altceva, de exemplu 2,4V, atunci trebuie să scrieți 240 ($00F0). Octetul mic este stocat în celulă la adresa $0000, iar octetul mare este stocat în $0001.

2 puncte. Din moment ce nu l-am instalat pe placa rezistor variabil Pentru a regla acuratețea măsurării tensiunii bateriei din cauza lipsei de spațiu, am introdus calibrarea software. Procedura de calibrare pentru măsurare precisă următor: inițial, coeficientul 1024 (400 USD) este scris în această celulă EEPROM, trebuie să comutați dispozitivul în modul activ și să vă uitați la tensiunea de pe indicator, apoi să măsurați tensiunea reală a bateriei cu un voltmetru. Factorul de corecție (K), care trebuie setat, se calculează prin formula: K=Uр/Ui*1024 unde Uр este tensiunea reală măsurată de voltmetru, Ui este tensiunea care a fost măsurată de dispozitivul însuși. După calcularea coeficientului „K”, acesta este introdus în dispozitiv (așa cum este menționat în instrucțiunile de utilizare). După calibrare, eroarea mea nu a depășit 3%.

3 puncte. Aici puteți seta timpul după care dispozitivul va intra în modul de repaus dacă nu este apăsat niciun buton. Al meu costă 16 secunde. Dacă, de exemplu, trebuie să adormi în 30 de secunde, atunci trebuie să notezi 30 (26 USD).

La punctele 4 și 5 la fel.

6 puncte. La adresa $0030 este stocat codul familiei de chei zero (Dallas 1-Wire), apoi numărul său de 48 de biți și CRC. Și așa 50 de taste în secvență.

Configurare, caracteristici de operare

Configurarea dispozitivului se reduce la calibrarea măsurării tensiunii bateriei, așa cum este descris mai sus. De asemenea, este necesar să detectați abaterea frecvenței ceasului timp de 1 oră, să calculați și să introduceți valoarea de corecție corespunzătoare (procedura este descrisă în instrucțiunile de utilizare).

Aparatul este alimentat de baterie cu litiu CR2032 (3V) și consumă aproximativ 4 µA în modul repaus și 5...20 mA în modul activ, în funcție de luminozitatea indicatorului. Cu utilizare zilnică de cinci minute modul activ Bateria ar trebui să țină aproximativ 2...8 luni în funcție de luminozitate. Carcasa ceasului este conectată la negativul bateriei.

Citirea cheii a fost testată pe DS1990. Emularea a fost testată pe interfoanele METAKOM. Sub numere de serie de la 46 la 49 (ultimele 4) sunt intermitente (toate cheile sunt stocate în EEPROM, pot fi schimbate înainte de a clipi) chei universale pentru interfoane. Cheia inregistrata sub numarul 49 a deschis toate interfoanele METAKOM pe care le-am intalnit, nu am avut sansa sa testez restul cheilor universale, le-am luat codurile din retea.

Telecomanda pentru camere a fost testată pe modelele Pentax optio L20 și Nikon D3000. Canon nu a putut fi obținut pentru revizuire.

Manualul de utilizare ocupă 13 pagini, așa că nu l-am inclus în articol, ci l-am inclus într-o anexă în format PDF.

Arhiva contine:
Scheme in și GIF;
Desenul plăcii de circuit imprimat și dispunerea elementelor în format;
Firmware și cod sursă în asamblator;

Lista radioelementelor

Desemnare Tip Denumire Cantitate NotăMagazinBlocnotesul meu
DD1 MK AVR pe 8 biți

ATmega168PA

1 PA-AU La blocnotes
U2 senzor de temperatura

DS18B20

1 La blocnotes
Î1 tranzistor MOSFET

2N7002

1 La blocnotes
C1, C2 Condensator30 pF2 La blocnotes
C3, C4 Condensator0,1 uF2 La blocnotes
C5 Condensator electrolitic47 uF1 La blocnotes
R1-R8, R17 Rezistor

100 ohmi

9 La blocnotes
R9 Rezistor

10 kOhm

1 La blocnotes
R10 Rezistor

8,2 ohmi

1 La blocnotes
R11 Rezistor

300 ohmi

1 La blocnotes
R12 Rezistor

2 MOhm

1 La blocnotes
R13 Rezistor

220 kOhm

1 La blocnotes
R14 Rezistor

30 kOhm

1 La blocnotes
R15, R19 Rezistor

4,7 kOhmi

2 La blocnotes
R16 Rezistor

20 kOhm

1
20 august 2015 la 12:34

De casă Ceas digital, element de bază- 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 tastei ceas - măsurarea timpului (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

Cel mai idee simplă Ceea ce ar putea veni în minte este să configurați pur și simplu un cronometru software și să numărați secundele. 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 în 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 să funcționeze 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 din vechime plăci de bază, conform recenziilor, ele sunt destul de precise acolo.

Modul DS3231 în timp real

Nu suntem primii care pune întrebarea acurateței, iar compania Dallas, în urma dorințelor, a lansat un modul mai avansat - DS3231. Se numește „Ceas în timp real extrem de precis” ș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 destul de 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 mărci 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 plasat aproape de fereastră, atunci este destul metoda reala obţinerea orei exacte - 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 minus folosind GPS- consum relativ mare de energie (cu toate acestea, unele module pot fi comutate î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. Primul, și cel mai simplu, este să utilizaț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 terță parte O mulțime de toate sunt acceptate, 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.

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.
  • Mărime mică- doar 1,25 x 2,25"
  • Se poate lucra cu relativ Voltaj scazut grile 12V (pana 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 destinat 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 de amplificare 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 de creștere (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 senzor digital conectat prin magistrala 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. Deplin schema circuitului nu este dat în articolul original - consultați fișa de date conexiunea la microcircuitele specificate.

Chiar și în tinerețe, am vrut să asamblam un ceas electronic. Mi s-a părut că asamblarea unui ceas este apogeul priceperii. Drept urmare, am asamblat un ceas cu un calendar și un ceas cu alarmă pe seria K176. Acum sunt deja învechite și am vrut să pun cap la cap ceva mai modern. După căutare lungă pe Internet (nu m-am gândit niciodată că sunt atât de greu de mulțumit;)) Mi-a plăcut această schemă. Diferența față de circuitul de mai sus este că nu este utilizat un microcircuit rar TRIC6V595, și compozitul său și multe altele analog puternic pe microcircuite 74HC595Și ULN2003. Corecțiile la diagramă sunt date mai jos.



Sistem LED electronic ticker ceas

Stimate autor al diagramei OLED, firmware-ul este tot al lui. Ceasul afișează ora curentă, anul, luna și ziua săptămânii, precum și temperatura din exterior și din interiorul casei cu un ticker. Au 9 alarme independente. Este posibil să reglați (corectați) cursa + - minut pe zi, selectați viteza liniei, modificați luminozitatea LED-urilor, în funcție de ora din zi.

Dacă există o întrerupere de curent, ceasul este alimentat fie de un ionistor (o capacitate de 1 Farad este suficientă pentru 4 zile), fie de o baterie. Cui îi place, placa este concepută pentru a le instala pe ambele. Au un meniu de control foarte convenabil și ușor de înțeles (toate comenzile sunt efectuate cu doar două butoane). Următoarele piese sunt utilizate în ceas (toate piesele sunt în carcase SMD):

Microcontroler AtMEGA 16A

-
Registrul de deplasare 74HC595

-
Chip ULN2803(opt chei Darlington)

-
Senzori de temperatura DS18B20(instalat la cerere)

-
25 de rezistențe la 75 ohmi (tip 0805)

-
3 rezistențe 4,7 kOhm

-
2 rezistențe 1,5 kOhm

-
1 rezistor 3,6 kOhm

-
6 condensatoare SMD cu o capacitate de 0,1 uF

-
1 condensator 220 µF

-
Cuarț orar la o frecvență de 32768 herți.

-
Matrice 3 piese marca 23088-ASR 60x60 mm - catod comun

-
Orice sonerie de 5 volți.



Placă de circuit imprimat pentru linia de ticăitură electronică a ceasului LED

Pentru rezidenții din Ucraina, vă spun, matricele sunt disponibile în magazinul Lugansk Radio Market. Avantajele ceasurilor față de alte dispozitive similare sunt un minim de piese și o repetabilitate ridicată. Ceas LED Ele încep să funcționeze imediat după instalarea firmware-ului, cu excepția cazului în care, desigur, există greșeli la instalare. Microcontrolerul este flash în circuit; în acest scop, pe placă sunt prevăzuți pini speciali. L-am dat cu Poniprog. Ecrane sigurante pentru programe ponyprogȘi AVR sunt prezentate mai jos, fișierele de firmware sunt postate și în ucraineană și rusă, ceea ce este mai familiar pentru cine.


Dacă nu aveți nevoie de senzori de temperatură, atunci nu trebuie să îi instalați. Ceasul recunoaște automat conectarea senzorilor, iar dacă unul sau ambii senzori lipsesc, dispozitivul pur și simplu nu mai afișează temperatura (dacă lipsește un senzor, temperatura exterioară nu este afișată, dacă ambii lipsesc, temperatura nu este afișată la toate).

Carcasă de casă pentru ceasuri LED

Este furnizat un videoclip pentru a demonstra funcționarea ceasului, nu este Calitate superioară, deoarece a fost filmat cu o cameră, dar asta este.

Video cu ceasul care funcționează

Am strâns deja patru exemplare ale acestor ceasuri și pe fiecare le fac cadou de zi de naștere rudelor mele. Și tuturor le-au plăcut foarte mult. Dacă doriți să colectați și acest ceas și aveți întrebări, sunteți binevenit să vizitați forumul nostru. Cu stimă, Voitovici Serghei ( Serghei-78 ).

Discutați articolul CEAS ELECTRONIC LED

Salutare geektimes! În prima parte a articolului, principiile obținerii timpului exact pentru 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 revizuire, preț scăzut.
Contra: Cantitatea de informații afișate este limitată.
Există două tipuri de modele de indicator, cu un catod comun și un anod comun; în interior 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 când vrem să facem 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, tocmai pentru acest scop. Nu numai că convertește datele dintr-o linie de 4 biți în numerele de care ai nevoie, dar conține și un comutator tranzistor încorporat pentru alimentarea cu tensiune la indicator. 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:

Se vând pe eBay sub formă de module unice 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 presiune atmosferică). 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ă versiunea anterioara. 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, apoi (cu excepția învățării cum să lucrezi cu i2c) unele uz practic Le este greu să găsească.

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

Acești indicatori sunt acum destul de populari, aparent datorită „caldului sunetul tubului lumină” și originalitatea 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ț de emisiune la autoproducție: aproximativ 500 de ruble pentru fiecare indicator și 100 de ruble pentru K155ID1, toate celelalte părți, după cum scriau în reviste vechi, „nu sunt în lipsă”. 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 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:

Pentru Arduino există o cantitate mare biblioteci diferite (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 consolă port serial) și un procesor destul de slab conform standardelor moderne (2KB RAM și 16MHz).
Principalul avantaj: 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ă calculatoare cu o singură placă cu Linux, probabil că toată lumea cunoaște deja Raspberry PI. Fotografie de pe eBay:

Acest computer cu drepturi depline cu Linux, un gigabyte de RAM și un procesor cu 4 nuclee la bord. Un panou de 40 de pini este situat pe marginea plăcii, 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 USB standard sub forma a 4 conectori (poti 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.

Singura problemă cu Raspberry (și procesoarele STM32) este că pinii săi folosesc logica de 3V și majoritatea dispozitive externe(de exemplu, ecranele LCD) funcționează „la modă veche” de la 5V. Desigur, îl puteți conecta și va funcționa, în principiu, dar nu este chiar așa metoda corectași este un fel de păcat să strici o placă de 50 USD. Calea cea buna- utilizaț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 un pod WiFi pentru schimb printr-un port serial, dar mulți entuziaști au scris firmware alternativ, permițându-vă să lucrați cu senzori, dispozitive i2c, PWM etc. Ipotetic, este destul de posibil să primiți timp de la un server NTP și să îl afișați prin i2c pe afișaj. Pentru cei care doresc să conecteze o mulțime de periferice diferite, există plăci speciale NodeMCU cu un numar mare concluzii, prețul de emisiune este de aproximativ 500 de ruble (desigur pe eBay):

Singurul negativ este că ESP8266 are foarte puțin memorie 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 încheie excursia introductivă în electronica de casă; autorul dorește tuturor experimente de succes.

În loc de o concluzie

M-am hotărât în ​​cele din urmă folosind zmeura PI cu un indicator de text configurat să funcționeze cu pseudo-grafice (care s-a dovedit a fi mai ieftin decât ecran grafic aceeași diagonală). Am făcut o poză cu ecranul ceas de masă la momentul scrierii acestui articol.

Ceasul arată timpul exact, preluat de pe Internet și vremea care este actualizată de la 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”. La fel de 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 magazine locale există o alegere, aici fiecare decide singur.

Cele mai bune articole pe această temă