Ceas cu ceas cu alarmă pe microcontrolerul Atmega48. Ceas digital multifuncțional pe microcontrolerul Attmega8. Diagrama și descrierea

Salutare tuturor! Aș dori să vă aduc în atenție un simplu ceas cu elice pe care l-am asamblat pe controlerul Atmega8. Sunt fabricate din piese ușor disponibile și sunt ușor de replicat și fabricat. Singurul lucru este că aveți nevoie de un programator pentru a clipi controlerul ceasului și panoul de control.

Un ventilator obișnuit de 120 mm (răcitor) a fost folosit pentru baza ceasului. Puteți folosi orice ventilatoare pentru acest ceas, atât în ​​sensul acelor de ceasornic, cât și în sens invers acelor de ceasornic, deoarece în timp ce asamblam acest ceas, am modificat puțin programul și am comutat programatic afișarea simbolurilor de pe telecomandă.
Circuitul ceasului în sine este destul de simplu și este asamblat pe un microcontroler Atmega8, pentru a-și sincroniza funcționarea se folosește un ceas de cuarț cu o frecvență de 32768 Hz.
Ceasul este alimentat de o bobină de recepție, a cărei energie este transferată de la un generator cu o bobină de transmisie. Ambele bobine alcătuiesc un transformator de aer.

Nu au existat probleme speciale cu circuitul și designul generatorului, deoarece a fost folosit un generator dintr-o bilă de plasmă.

Generatorul este asamblat pe microcircuitul comun TL494 și vă permite să modificați lățimea și frecvența impulsurilor de ieșire într-o gamă largă.
Chiar și cu un spațiu de un centimetru între bobine, tensiunea este suficientă pentru a porni ceasul. Trebuie doar să țineți cont de faptul că, cu cât distanța dintre bobine este mai mare, cu atât trebuie făcută lățimea impulsului mai mare și, în consecință, consumul de curent de la sursă crește.

Când porniți generatorul pentru prima dată, setați lățimea impulsului (factorul de funcționare) la minim (butonul de control este în poziția superioară conform diagramei, adică piciorul 4 este tras prin rezistența R7 la piciorul 14, 15 , 2 din TL-494). Întoarcem frecvența generatorului până când scârțâitul dispare, acesta este de aproximativ 18-20 KHz (acordare după ureche), iar dacă există ceva de măsurat frecvența, atunci o ajustăm în consecință în aceste limite.
Placa generatorului conține și un regulator de tensiune suplimentar pe LM317, conceput pentru a regla viteza ventilatorului.
Nu este pe diagramă, nu am desenat-o
. Urmăriți un videoclip demonstrativ cu ceasul în acțiune.

Video.

Placa ceasului în sine este atașată la baza ventilatorului. L-am asigurat cu bandă dublu-față.

Apoi am modificat ușor circuitul ceasului de la un fotorezistor la o fotodiodă în infraroșu (poza de mai jos).
În loc de un simplu LED în transmițător, acum am unul cu infraroșu.
Rezistorul a fost setat la 100k în loc de 2k.


Momentele critice în fabricarea unui ceas sunt fabricarea unui transformator de aer și alinierea (sau mai bine zis echilibrarea) a plăcii ceasului pe baza ventilatorului.

Luați aceste momente mai în serios.

Transformator de aer.

Se baza pe un cooler obișnuit de 120 mm cu bucșe din bronz. Tabla cu ceas este lipită de bază cu bandă dublu-față.
Mușcăm lamele de la răcitor și le șlefuim și le nivelăm cu o pila și șmirghel. Bobinele sunt realizate pe un cadru din canal de cablu. Nu am venit cu acest design, doar am luat această idee de pe internet. Pentru a înfăşura transformatorul, se face o bază dintr-un canal de cablu. La fiecare 5 mm facem o tăietură pe părțile laterale ale canalului și o rulăm cu grijă într-un cerc, astfel încât să se potrivească strâns pe baza de plastic a ventilatorului;

În continuare, înfășurăm 100 de spire de sârmă emailată, cu diametrul de 0,25, pe dornul din canalul de cablu.
Consumul de curent al transformatorului asamblat s-a dovedit a fi de 200 mA (aceasta cu un decalaj destul de vizibil între bobine).
In general, impreuna cu motorul ventilatorului, consumul de curent este in jur de 0,4-0,5A.
Facem același lucru pentru bobina primară (transmițătoare), dar încercăm să facem un spațiu minim între bobine. Bobina de transmisie conține, de asemenea, 100 de spire de 0,3 fire (sau 0,25).
În diagramă am date de înfășurare ușor diferite pentru aceste bobine.

Taxa de ore.

Banda cu LED-uri este realizata pe fibra de sticla. Se face o gaură în ea, o bucată de tub dintr-o antenă telescopică este introdusă în acest orificiu și lipită pe placă (tubul antenei trebuie curățat de stratul strălucitor). Puteți folosi orice tub potrivit sau atașați placa într-un alt mod, de exemplu folosind un șurub cu piulițe.
Am conectat placa cu LED-uri la placa ceasului cu un fir obișnuit emailat (înfășurat) este mai rigid decât firul de montare și nu se destramă când este rotit.

Pentru a echilibra întreaga placă, pe cealaltă parte lipim un șurub cu diametrul de 3-4 mm cu lipici fierbinte, înșurubând diferite piulițe pe șurubul de pe cealaltă parte - obținem vibrații minime.
Pentru a verifica funcționalitatea plăcii de ceas, scurtcircuitam fotorezistorul cu o șurubelniță sau o pensetă LED-urile ar trebui să clipească.
Ceasul începe să funcționeze când apare 5V (unitatea logică) pe al 5-lea picior al atmega. Adică, atunci când fotorezistorul este iluminat, ar trebui să existe 5V pe al 5-lea picior,
Când fotorezistorul nu este iluminat, ar trebui să existe un 0 logic (aproximativ 0V) pe al 5-lea picior al atmega, pentru aceasta selectăm un rezistor la masă din al 5-lea picior. Diagrama arată 2 kOhm, am primit 2,5 Kohm.
În partea de jos a bazei ventilatorului lipim un LED, astfel încât la fiecare rotație a motorului ventilatorului, fotorezistorul să treacă cât mai aproape de sursa de lumină (LED).

Telecomandă.

Panoul de control este conceput pentru a controla funcționarea ceasului, a comuta modurile de afișare (schimba direcția de rotație a ventilatorului) și a seta ora ceasului.

Circuitul de telecomandă este asamblat pe un microcontroler ATTINY2313. Placa conține MK-ul însuși cu un ham și șase butoane concepute pentru a controla ceasul.

Nu am asamblat carcasa pentru telecomandă, deci doar o fotografie a plăcii în sine.

Informații despre scopul butoanelor telecomenzii;
Setările ceasului H+ și H-
Setare M+ și M- minute
Schimbarea direcției R/L (pentru șuruburi care se rotesc în sensul acelor de ceasornic și în sens invers acelor de ceasornic)
font de schimbare a fontului (subțire, aldine și inscripție pe site)
Când scrieți un site, utilizați butoanele H+ și H - pentru a regla lățimea inscripției.

Arhiva atașată conține toate fișierele necesare pentru asamblarea ceasului;

Arhiva pentru articol

Dacă aveți întrebări despre designul ceasului, întrebați-le pe forum, voi încerca să vă ajut și să vă răspund la întrebări cât mai mult posibil.

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 baterie Ni-MH pentru 3,6 este suficientă volți.

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

Acest ceas cu alarmă se bazează pe un cip de ceas în timp real, care îi permite să funcționeze de la o sursă de alimentare de rezervă în absența celei principale. Ora de alarmă setată și modul de funcționare sunt stocate în memoria nevolatilă a microcontrolerului. Mod de afișare - 24 de ore. Conține imitație de „bifare” Timpul și modurile de funcționare sunt indicate cu ajutorul indicatorilor LED.

Principiul de funcționare

Baza acestui ceas este microcircuitul DS1307 - un ceas în timp real care schimbă informații cu controlerul de control printr-o interfață I2C. Indicarea timpului se realizează prin intermediul a 4 indicatoare cu 7 segmente care funcționează în modul dinamic. Introducerea și reglarea orei se realizează cu ajutorul a 5 butoane: „+ minute”, „+ ore”, „setare”, „alarma” și „resetare”. Semnalul sonor al ceasului cu alarmă este transmis printr-un emițător piezo standard și este un semnal cu o frecvență de 1 kHz cu pauze secunde.

Atmega48 a fost ales ca microcontroler de control datorită disponibilității sale și prezenței perifericelor necesare la bord (chiar în exces). Ceasul în timp real DS1307 este conectat la ieșirile hardware I2C ale microcontrolerului de control. Pentru a opera DS1307 în modul de sine stătător (în cazul unei căderi de curent la controlerul principal), este utilizată o baterie cu litiu de 3V pentru alimentarea de rezervă, care va dura câțiva ani datorită consumului redus de energie al microcircuitului.

Să aruncăm o privire mai atentă asupra programului de control:

Programul funcționează pe principiul unei mașini de cronometru: toate stările și evenimentele sunt reprezentate sub formă de steaguri corespunzătoare, executate în întreruperi ale temporizatorului corespunzător 1s, 1ms și 263.17ms. Programul folosește 2 cronometre hardware.

Cipul de ceas este interogat și butoanele sunt apăsate la un interval de 263,17 ms. Intervalul de 1 ms este folosit pentru a genera semnalul sonor al soneriei, iar 1s este folosit pentru a-l modula. Al doilea interval controlează, de asemenea, clipirea punctului din a 2-a cifră a indicatorului, separând orele și minutele și servind și ca formarea unei „căpușe”.
Să ne uităm la schema schematică a ceasului.

Denumiri și denumiri:
S4 - Creșterea ceasului
S3 - Creșteți minutele
S2 - Instalare
S1 - Porniți alarma
S5 - Resetare

R6-R10 - 10k
R1-R5 - 510ohmi

Tensiune de alimentare - 5 volți.

Configurare și utilizare

Un ceas asamblat corect nu necesită reglaje suplimentare. Trebuie doar să setați ora curentă și alarma.
Setarea orei curente este după cum urmează:
1) Folosiți butoanele S1 și S2 pentru a seta ora curentă (punctul dintre cifre nu clipește)
2) Porniți ceasul cu butonul S3
Setarea alarmei:
1) Apăsați S3 și asigurați-vă că punctul din prima cifră se aprinde
2) Setați ora apelului folosind butoanele S1 și S2
3) Porniți apelul folosind butonul S4
Caracteristici suplimentare:
Activați bifarea - țineți apăsat S4 și apăsați S2 până când apar sunete caracteristice. Se stinge la fel.
Afișați minutele și secundele - țineți apăsat S4 și apăsați S1. Dacă apăsați S3 după aceasta, secundele vor fi resetate la 00. Return - aceeași combinație.

Fotografii și videoclipuri cu ceasuri

Ceasul este asamblat într-o carcasă din „electronică” nefuncțională.


Probabil nici măcar ușor ceas simplu pe un microcontroler, și chiar foarte simple. Acest proiect pe microcontrolerul Attiny2313 poate fi numit probabil un proiect de o zi, deoarece a fost nevoie de puțin mai mult de o zi pentru a crea acest ceas de la început până la sfârșit.

Pentru a crea acest ceas vom avea nevoie de:

  • rezonator cuarț 16 MHz – 1 bucată;
  • Microcontroller Attiny2313 - 1 bucată;
  • Condensator de la 22 pf la 27 pf - 2 buc;
  • Condensator 220 N - 1 bucata;
  • Stabilizator 7805 – 1 bucată;
  • Tranzistor – 4 buc;
  • Indicator SA15-11GWA - 4 buc (se poate folosi oricare altul cu anod comun);
  • Buton – 2 buc;
  • Rezistor 100 Ohm – 8 buc;
  • Rezistor 200 Ohm – 4 buc;
  • Rezistor 10 kOhm – 1 buc.
  • Mâncarea este asigurată dintr-unul simplu.

Descrierea funcționării unui ceas simplu pe Attiny2313

Tactat de un rezonator de cuarț cu o frecvență de funcționare de 16 MHz. Ca contor de timp, circuitul microcontrolerului Attiny2313 rulează un temporizator de 16 biți cu un prescaler de 256, configurat să genereze o întrerupere atunci când contorul atinge o valoare de 625. În consecință, rezultatul este o întrerupere de 100 de ori pe secundă.

Intervalul de timp este în variabile globale, iar cu fiecare întrerupere este necesară creșterea valorii milisecundelor cu 1. Dacă numărul de milisecunde ajunge la 100, atunci este necesar să se mărească secundele cu 1 valoare și să resetați valoarea milisecundelor. Și apoi în aceeași secvență până la zeci de ore, care sunt resetate la atingerea 24 fără a adăuga următoarea cifră. Ceasul de pe microcontrolerul Attiny2313 este cât se poate de simplu, deci nu afișează data, ora de vară etc.

Astfel, obținem valoarea timpului curent înregistrată în variabile globale. Acum trebuie să exportați aceste valori. Deoarece numărul de porturi pentru microcontroler nu este atât de mare, folosim o astfel de caracteristică a vederii precum inerția. Catozii tuturor celor patru indicatoare de ceas sunt conectați în paralel, iar anozii sunt controlați separat, ceea ce vă permite să afișați un număr pe orice indicator în orice moment.

Prin comutarea rapidă a portului B al microcontrolerului, la care sunt conectați catozii, și prin comutarea rapidă a anozilor, putem face să pară că toate cele 4 cifre sunt afișate, în ciuda faptului că doar una funcționează la un moment dat. Cu alte cuvinte, dacă ora curentă este 10:43, atunci afișăm numărul 1 pe primul indicator al ceasului, după un scurt interval de timp (aproximativ 1 ms) afișăm numărul 0 pe al doilea indicator, după 1 ms afișăm indicatorul 4 cu 3, după 1 ms afișăm indicatorul 3 pe 4 și din nou într-un cerc.

Butoanele de control a ceasului sunt interogate după fiecare ciclu de afișare următor (aproximativ 40 de ori pe secundă, procesul de apăsare a butoanelor este echipat cu un dispozitiv de blocare în formă de steag, care vă permite să numărați apăsarea propriu-zisă fără a fi distras); ținând-o.

(1,2 Mb, descărcat: 6.504)

Această versiune a ceasului este realizată în așa fel încât să simplifice cât mai mult circuitul, să reducă consumul de energie și, în cele din urmă, să obțină un dispozitiv care să încapă ușor în buzunar. Alegând baterii în miniatură pentru alimentarea circuitului, montarea SMD și un difuzor în miniatură (de exemplu, de la un telefon mobil care nu funcționează), puteți obține un design puțin mai mare decât o cutie de chibrituri.
Utilizarea unui indicator super-luminos vă permite să reduceți curentul consumat de circuit. O reducere a consumului de curent se realizează și în modul „LoFF” - indicatorul este stins și este pornit doar punctul intermitent al cifrei de ordin inferioară a ceasului.

Indicaţie
Luminozitatea reglabilă a indicatorilor vă permite să alegeți cel mai confortabil afișaj al citirilor (și să reduceți din nou consumul de energie).
Ceasul are 9 moduri de afișare. Comutarea între moduri se realizează folosind butoanele „plus” și „minus”. Înainte ca citirile în sine să fie afișate, pe indicatori este afișat un scurt indiciu despre numele modului. Durata afișajului indicii este de o secundă. Utilizarea indicațiilor pe termen scurt a făcut posibilă obținerea unei bune ergonomii a ceasului. Când comutați între modurile de afișare (din care există destul de multe pentru un dispozitiv atât de simplu precum un ceas obișnuit), nu există confuzie și este întotdeauna clar ce citiri sunt afișate pe indicator.

Corectarea citirilor afișate pe indicator este activată prin apăsarea butonului „Corectare”. În acest caz, este afișat un prompt pe termen scurt timp de 1/4 de secundă, după care valoarea ajustată începe să clipească la o frecvență de 2 Hz. Citirile sunt corectate folosind butoanele plus și minus. Când apăsați butonul pentru o perioadă lungă de timp, modul de repetare automată este activat la frecvența specificată. Frecvențele de auto-repetare pentru apăsarea unui buton sunt: ​​pentru ore, luni și ziua săptămânii - 4 Hz; pentru minute, an și luminozitate indicator - 10 Hz; pentru valoarea de corecție - 100 Hz.
Toate valorile ajustate, cu excepția orelor, minutelor și secundelor, sunt scrise în EEPROM și restaurate după oprirea și pornirea alimentării. Secundele din timpul corecției sunt resetate la zero. Toate modurile, cu excepția ore-minute, minute-secunde și LoFF, sunt returnate automat. Dacă nu este apăsat niciun buton în decurs de 10 secunde, ceasul comută în modul de afișare oră-minut.
Prin apăsarea butonului „Pornire/Oprire alarmă”. Ceasul cu alarmă pornește/oprește. Activarea alarmei este confirmată de un sunet scurt în două tonuri. Când ceasul cu alarmă este pornit, punctul din cifra de ordin inferioară a indicatorului se aprinde.
În modul „Corr”, pe indicator este afișată o constantă de corecție, a cărei valoare inițială este de 5000 de microsecunde pe secundă. Când ceasul întârzie, creștem constanta cu cantitatea de întârziere calculată în microsecunde pe secundă. Dacă ceasul se grăbește, atunci reducem constanta folosind același principiu.

Sistem