Schemele au fost deja publicate în mod repetat pe site-ul nostru dedicat diverselor produse electronice de casă. Desigur, sunt inferioare analogilor industriali moderni, care au un afișaj, capacități de programare și alte funcții de serviciu. Și acum a sosit momentul să plasăm o schemă care să concureze în condiții egale cu cele mai bune modele de marcă. Cronometrul digital este folosit pentru a controla lucrul dispozitive electrice, conform unui program programat. Acest cronometru programabil se bazează pe un microcontroler PIC16F628A, care poate fi programat pentru a programa pornirea și oprirea aparat electric conectat la acesta, care este controlat printr-un releu. Cronometrul vă permite să setați manual timpul de pornire și oprire. Intervalul de timp maxim care poate fi configurat pentru a porni și opri este de 99 de ore și 59 de minute. Proiectul este conceput pentru a utiliza un afișaj LCD 16x2 și 4 butoane.
Aici releul de 5 volți este controlat de tranzistorul PN2222, care la rândul său este controlat de RB3 PIC16F628A. Intrările digitale cu 4 butoane sunt citite folosind porturile I/O RA2, RA3, RA4 și RB0. Un afișaj LCD standard de 16 x 2 caractere este utilizat pentru a afișa starea dispozitivului, programul, meniul și ora. Ecranul LCD funcționează în modul pe 4 biți, astfel încât sunt necesari doar 6 pini I/O ai PIC16F628A pentru funcționare. Soneria piezoelectrică emite un bip când temporizatorul pornește și se oprește. De asemenea, emite un bip când dispozitivul este pornit sau oprit. Tensiunea de alimentare pentru circuit provine de la stabilizatorul LM7805. Intrarea sa este alimentată cu 9 V de la adaptorul de rețea. Lumina de fundal cu LED îmbunătățește lizibilitatea afișajului LCD în condiții de lumină scăzută.
Funcționarea temporizatorului și funcțiile butoanelor
Cronometrul primește comenzi de la 4 butoane. Funcțiile lor sunt următoarele:
Timp: Vă permite să setați ora de pornire/oprire. Când cronometrul este pornit inițial, dispozitivul este în starea oprit și timpul este 0. Apăsând acest buton, puteți comuta între pornit și oprit pe afișaj.
Alegere: Vă permite să alegeți între opțiunile de activare și dezactivare, precum și cifrele orei și minutelor. Cifra selectată este mărită prin apăsarea butonului ON/OFF.
Intră: Când este selectată ora corespunzătoare, apăsarea acestui buton va finaliza setările.
Pornire/oprire: Pentru a porni sau opri cronometrul. Dacă este deja pornit, îl puteți opri oricând apăsând acest buton.
Cronometru electronic conceput pentru controlul programului aparate electrocasnice, iluminat și alte dispozitive. Cronometrul poate fi folosit pentru acvariu și alte echipamente. Utilizarea unui cronometru va economisi energie fără a reduce nivelul de confort.
Opțiunea 1
Acest dispozitiv include trei temporizatoare. Timer 1.1 și timer 1.2 vă permit fiecare să setați timpul pentru pornirea și oprirea sarcinii care este conectată la releul KV1. Timer 2.1 și timer 2.2 vă permit, de asemenea, să setați timpul pentru pornirea și oprirea sarcinii, care este conectată la releul comun KV2. Timer 3 este un temporizator cu numărătoare inversă care controlează sarcina prin KV3.
ÎN acest dispozitiv Este utilizat microcontrolerul PIC16F628A. Elementele C1, C2, ZQ1 sunt elemente externe de setare a frecvenței ale generatorului de ceas intern. Pentru a afișa informații, este utilizat indicatorul HG1 cu controlerul KS0066. Indicatorul poate afișa două rânduri a câte șaisprezece caractere fiecare. Rezistorul de reglare R4 poate fi folosit pentru a regla contrastul imaginii. Folosind SB1-SB5, puteți controla modurile de funcționare și de afișare, precum și puteți seta temporizatorul. Prin pinii 1,17,18 ai microcontrolerului sunt controlate tranzistoarele VT1-VT3 și apoi releele KV1-KV3, care pornesc sau opresc sarcina. Când se utilizează un releu cu un curent al bobinei mai mare de 100 mA, tranzistoarele KT315V trebuie înlocuite cu tranzistoare cu un curent maxim admisibil de colector, care este mai mare decât curentul bobinei releului.
Mod de afișare a orei curente.
Modul de afișare a temporizatorului 1.1.
Dacă timpul de pornire este setat egal cu timpul de oprire, se consideră neutilizat.
Scopul tastelor și comenzilor lor sunt același ca în modul de timp curent.
Temporizatoarele 1.2, 2.1 și 2.2 sunt similare ca indicare și control cu cronometrul 1.1.
Modul de afișare Timer 3
Cronometrul 3 este un cronometru cu numărătoare inversă.
Pentru a intra în modul de setare a cronometrului 3, trebuie să apăsați și să țineți apăsat butonul SB5 până când apare un cursor intermitent. În modul de configurare, cursorul este mutat folosind butoanele SB3 și SB4, iar valorile sunt modificate folosind butoanele SB1 și SB2. La numărătoarea inversă, puteți opri cronometrul 3 apăsând SB5. După ce apăsați din nou SB5, cronometrul va continua numărarea și când valoarea sa este zero, sarcina se va opri.
Comutarea între modurile de afișare se realizează folosind butoanele SB1 și SB2.
Biți de configurare a microcontrolerului.
Opțiunea 2
Mod de afișare a orei curente
Scopul tastelor de control în acest mod:
SB5 - intra/ieși din modul de setare a orei curente.
SB3, SB4 – mutați cursorul la stânga sau la dreapta în timpul configurării.
SB1, SB2 – micșorați sau creșteți valorile timpului la setare.
Modul de afișare a temporizatorului
Lista radioelementelor
Desemnare | Tip | Denumire | Cantitate | Nota | Magazin | Blocnotesul meu |
---|---|---|---|---|---|---|
DD1 | MK PIC pe 8 biți | PIC16F628A | 1 | La blocnotes | ||
HG1 | LCD 16x2 | BC1602B2 | 1 | La blocnotes | ||
ZQ1 | Rezonator cu cuarț | 4 MHz | 1 | La blocnotes | ||
VD1-VD3 | Dioda | KD105B | 3 | La blocnotes | ||
VT1-VT3 | Tranzistor bipolar | KT315V | 3 | La blocnotes | ||
C1, C2 | Condensator | 15...30 pF | 2 | La blocnotes | ||
R1, R3, R5 | Rezistor | 1 kOhm | 3 | La blocnotes | ||
R2, R6 | Rezistor |
Să ne uităm la cum să faci un cronometru cu propriile mâini pe microcontrolerul ATmega8, deși codul este destul de ușor de adaptat pentru AVR MK din alte serii. Un cronometru electronic este un dispozitiv necesar în toate zonele în care este necesară efectuarea anumitor acțiuni după o anumită perioadă de timp.
Controlul cronometrului este format din doar patru butoane:
— creșterea valorii numărului;
— scăderea valorii numărului;
— pornire cronometru;
— resetarea temporizatorului.
Un generator de frecvență audio cu un difuzor este utilizat ca indicator al funcționării temporizatorului. Generatorul va fi pornit folosind comutatorul tranzistorului Q5, care la rândul său este deschis de un potențial pozitiv care vine de la portul PC2 al microcontrolerului.
Simplificat, cronometrul funcționează după cum urmează. Utilizați butoanele „+” și „-” pentru a seta numărul necesar de secunde; Butonul „start” pornește cronometrul. Când cronometrul numără invers până la zero, pe pinul PC2 al microcontrolerului ATmega8 va apărea un potențial ridicat, care va deschide Q5. Apoi, comutatorul tranzistorului va porni generatorul și se va auzi un sunet în difuzor. Cronometrul este resetat prin apăsarea butonului „resetare”. Generatorul de frecvență audio este asamblat pe două tranzistoare Q6 și Q7 cu structuri semiconductoare diferite. Principiul de funcționare și descrierea circuitului unor astfel de generatoare pot fi găsite făcând clic pe.
Algoritm de funcționare a temporizatorului pe un microcontroler
Cronometrul nostru va număra invers exact o secundă la un moment dat, deși puteți seta orice alt timp, de exemplu minute, ore, sutimi de secunde etc.
Pentru a forma un interval de timp de o secundă, vom folosi primul cronometru al microcontrolerului ATmega8. Vom defini toate setările sale în funcție început. În primul rând, împărțim frecvența de operare a microcontrolerului 1000000 Hz la 64 și obținem o nouă frecvență de 15625 Hz. Biții CS10, CS11 și CS12 ai registrului TCCR1B sunt responsabili pentru acest lucru. Apoi, activăm întreruperea de coincidență și scriem un număr binar egal cu zecimala 15625 în registrele de comparație (mare și scăzută).
void start (void)
TCCR1B &= ~(1< TCCR1B |= (1< TIMSK |= (1< OCR1AH = 0b00111101; OCR1AL = 0b000001001; // registrul de comparație 15625 TCNT1 = 0; TCCR1B |= (1< Când cronometrul numără invers exact o secundă, va fi apelată o întrerupere. În corpul funcției de întrerupere, vom scădea valoarea variabilei cu unul. Când se atinge zero, pe a doua ieșire a portului C al microcontrolerului va apărea un potențial ridicat, care va deschide comutatorul tranzistorului și va porni generatorul, în urma căruia vom auzi sunetul în difuzor. ISR (TIMER1_COMPA_vect) Z—; Uneori trebuie doar să setați un interval de timp, fără prea multă precizie microscopică. De exemplu, pentru gătit, unde eroarea este de câteva secunde pe jumătate de oră, ora nu joacă un rol important. Pe baza acestor considerații, a fost selectat un oscilator RC intern ca generator de ceas. A cărui stabilitate depinde de temperatură și de modificările tensiunii de alimentare, deoarece microcontrolerul rămâne operațional la o tensiune de 1,8-5,5 V. Am folosit o baterie de 3 volți (sau 2 celule de 1,5 V fiecare) ca sursă de alimentare. Scopul a fost de a simplifica cât mai mult proiectarea cu un minim de părți externe și elemente de control și afișare (cât mai simplu). Programul este scris în assembler în AVR Studio. Există o pereche de butoane pentru a controla modurile temporizatorului. Primul „SET” este pentru setarea intervalului de timp, al doilea „RESET” este pentru resetarea în orice moment dacă trebuie să „reluați” situația și să setați un interval de timp diferit. Și, de asemenea, un buzzer sonor, ca indicație sonoră a stării cronometrului la diferite perioade de funcționare. Cronometrul este realizat cu un interval discret de minim 5 minute, puteți forma câte intervale doriți (până la 255) dacă țineți apăsat butonul. După eliberarea butonului, temporizatorul pornește și numără inversă Cronometrul are o indicație sonoră (ochii și mâinile nu participă la control, doar auzul), atunci când este instalat, emite „bipuri” de câte ori este nevoie pentru a forma 5 minute. intervale. De exemplu: aveți nevoie de un interval de 30 de minute, ceea ce înseamnă că trebuie să apăsați butonul „SET” și să-l țineți apăsat, să formați „beeps” de 6 ori și să eliberați butonul. Din momentul în care butonul „SET” este eliberat, indicatorul LED se aprinde, indicând că temporizatorul a pornit și se stinge abia la sfârșitul întregului ciclu, de asemenea, din momentul în care începe, începe numărătoarea inversă, soneria " bip-uri" după următorul interval discret de 5 minute de atâtea ori câte dintre ele au rămas înainte de încheierea ciclului complet al cronometrului. Și când întregul ciclu este finalizat, la sfârșitul ciclului se aude un semnal lung de „bip” timp de aproximativ 10 secunde, semnalând sfârșitul. După aceasta, temporizatorul intră în modul de așteptare prin comutarea la comanda de repaus în modul de oprire cu economie de energie, unde consumul de curent este mai mic decât un microamperi. Programul folosește un generator RC intern a cărui frecvență de ceas este selectată la 128 / 8 kHz . Acesta este un circuit al unui temporizator simplu construit pe un microcontroler PIC16F628A și un indicator LCD 1602. Ideea cronometrului a fost împrumutată de la un site portughez de electronice radio. Microcontrolerul PIC16F628A din acest circuit este tactat de la un oscilator intern, care este destul de precis pentru acest caz, dar deoarece pinii 15 și 16 rămân neocupați, un rezonator extern de cuarț ar putea fi folosit pentru o precizie mai mare. După cum am menționat mai devreme, acest proiect se bazează pe un proiect existent, dar de fapt ambele modele sunt diferite unul de celălalt și, prin urmare, codul a fost rescris aproape complet. Cronometrul are trei butoane de control: „START/STOP”, „MIN” și „SEC” Apăsarea simultană a „MIN” și „SEC” va reseta cronometrul în timpul funcționării. Când temporizatorul ajunge la 00:00, se aude un bip (3 bipuri scurte și 1 bip lung) și LED-ul HL1 se aprinde. Un sonerie de tip electromagnetic este folosit ca emițător de sunet. După aceasta, când apăsați unul dintre butoane, cronometrul este resetat și LED-ul HL1 se stinge. Când cronometrul numără invers, pinul 13 (RB7) este ridicat, iar când temporizatorul se oprește, apare un nivel logic scăzut. Acest pin poate fi folosit pentru a controla actuatoarele externe. Cronometrul este alimentat de la o sursă stabilizată. Jumper J1 este proiectat pentru a calibra cronometrul. Când se închide, cronometrul intră în modul de setare. Folosind butoanele „MIN” și „SEC” puteți crește/scădea valoarea parametrului intern, ceea ce vă permite să încetiniți sau să accelerați temporizatorul. Această valoare este stocată în EEPROM. Dacă apăsați butonul START/STOP în acest mod, acest parametru va fi resetat la valoarea implicită. Codul este scris și compilat cu mikroC PRO pentru PIC. Parametrii proiectului: Poza cronometrului terminat.Schema schematică a unui cronometru de bucătărie:
Temporizator pe PIC16F628A. Descrierea postului