Meniul

Cronometrul de pe microcontroler cu un singur buton. Temporizator de uz casnic pe un microcontroler PIC

Totul despre trandafiri

Acesta este un circuit de temporizator simplu construit pe microcontrolerul PIC16F628A și indicatorul LCD 1602. Ideea cronometrului este împrumută de la un site portughez de electronică radio.

Microcontrolerul PIC16F628A din acest circuit este tactat de la un oscilator intern, care este suficient de precis pentru acest caz, dar deoarece pinii 15 și 16 sunt lăsați neocupați, un cristal extern ar putea fi folosit pentru o precizie mai mare.

Temporizator pe PIC16F628A. Descrierea muncii

După cum am menționat mai devreme, acest proiect se bazează pe un proiect existent, dar, de fapt, ambele scheme diferă una de cealaltă și, prin urmare, codul a fost rescris aproape complet. Există trei butoane pentru a controla cronometrul: „START/STOP”, „MIN” și „SEC”

  1. „START/STOP” - pentru a porni și întrerupe cronometrul.
  2. „MIN” - pentru a seta minutele. Numărul de minute este setat de la 0 la 99 și apoi totul începe din nou de la 0.
  3. „SEC” - pentru a seta secunde. O secundă este, de asemenea, setată de la 0 la 59 și apoi din nou de la 0.

Apăsând „MIN” și „SEC” în același timp, resetează cronometrul în timpul funcționării.

Când ora cronometrului ajunge la 00:00, se aude un bip (3 bipuri scurte și 1 bip lung) și LED-ul HL1 se aprinde. Un buzzer electromagnetic este folosit ca emițător de sunet. După aceea, când unul dintre butoane este apăsat, cronometrul este resetat și LED-ul HL1 se stinge.

Când cronometrul face numărătoarea inversă, pinul 13 (RB7) este ridicat, iar când temporizatorul este oprit, apare un nivel logic scăzut. Această ieșire poate fi utilizată pentru a controla actuatoare externe. temporizatorul este pornit de la o sursă stabilizată.

Jumperul J1 este pentru calibrarea temporizatorului. Când se închide, temporizatorul intră în modul de setare. Folosind butoanele „MIN” și „SEC”, puteți crește/scădea valoarea unui parametru intern care 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ă.

Cod scris și compilat cu mikroC PRO pentru PIC.

Parametrii proiectului:

  • Generator: INTOSC
  • Frecvența oscilatorului: 4 MHz
  • Watchdog: Dezactivat
  • Temporizator de pornire: activat
  • RA5/MCLR/VPP: Dezactivat
  • Brown-out: activat

Poza cronometrului terminat.

Uneori trebuie doar să setați intervalul de timp, fără prea multă precizie microscopică. De exemplu, pentru gătit, unde o eroare de câteva secunde pe jumătate de oră, ora nu joacă un rol important. Pe baza acestor considerații, a fost ales 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 funcț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) ca sursă de alimentare.

Sarcina a fost de a simplifica cât mai mult proiectarea cu un minim de părți externe și comenzi și indicații (cât mai simple posibil). Programul a fost scris în assembler în AVR Studio.

Există câteva butoane pentru a controla modurile temporizatorului. Primul „SET” pentru a seta intervalul de timp, al doilea „RESET” pentru a reseta în orice moment dacă trebuie să „reluați” situația și să setați un interval de timp diferit. Precum și un buzzer sonor, ca indicație sonoră a stării cronometrului în diferite perioade de lucru.

Cronometrul este realizat cu un interval discret de minim 5 minute, astfel de intervale pot fi formate câte dorești (până la 255) dacă ții butonul apăsat.

Schema schematică a unui cronometru de bucătărie:

După eliberarea butonului, cronometrul începe și numărătoarea inversă începe, caracteristica cronometrului este o indicație sonoră (ochii și mâinile nu participă la control, ci doar auzul), atunci când este instalat, „bipează” de câte ori trebuie să apelați intervale de 5 minute. De exemplu: aveți nevoie de un interval de 30 de minute, așa că trebuie să apăsați butonul „SET” și să îl țineți apăsat, să formați „peeps” de 6 ori și să eliberați butonul. Din momentul în care butonul „SET” este eliberat, indicatorul LED se aprinde, indicând că cronometrul a fost pornit și se stinge doar la sfârșitul întregului ciclu, numărătoarea inversă începe și din momentul începerii, soneria „beep” după următorul interval discret de 5 minute de atâtea ori câte dintre ele au rămas înainte de finalizarea ciclului complet al cronometrului. Iar când întregul ciclu este încheiat, la sfârșitul ciclului, se aude un semnal lung „peeping” timp de aproximativ 10 secunde, care anunță finala.

După aceea, cronometrul intră în modul de așteptare prin comutarea în modul de economisire a energiei Power down la comanda de repaus, 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 de 128 / 8 kHz.


Un cronometru simplu de bucătărie care vă poate proteja bucătăria de fumul excesiv. Cadoul perfect pentru 8 martie.
Cronometrul vă permite să setați timpul de la 1 la 99 de minute, numărătoarea inversă începe automat, la 3 secunde după setare.

Diagrama dispozitivului:

Baza dispozitivului este un microcontroler ATMega8 cu un quartz extern de 16 MHz. Conectorul Zas este folosit pentru alimentarea dispozitivului, acesta este alimentat cu o tensiune constanta de 7-15V. Tensiunea de alimentare de 5V este furnizată de regulatorul liniar L7805, dacă utilizați o sursă stabilizată de 4,5 - 5V, cum ar fi un încărcător mobil, atunci regulatorul, C3 și C4 pot fi omise.
Buzzerul B1 și anozii de afișare W1 sunt controlați de tranzistorii T1 la T5. Rezistoarele R9 - R16 sunt necesare pentru a limita curentul care curge prin segmentele de afișare. Programatorul este conectat la conectorii Prog și R (resetare), iar tastatura sau butoanele sunt conectate la conectorul Sw. Există doar 5 butoane, patru dintre ele sunt responsabile pentru setarea orei (+1, +5, +10 și respectiv +20 de minute) și unul pentru resetarea cronometrului.

Placă de circuit imprimat:


Lista componentelor:

U1 ATmega8A-AU 1buc
Stabilizator liniar U2 LM7805CT 1buc
T1-T5 Tranzistor bipolar BC556 5buc
C1,C2 Condensator ceramic 22 pF 2buc
C3 Condensator electrolitic 100uF 1buc
C4 Condensator electrolitic 47 uF 1buc
R1-R8, R17, R18 Rezistori 3,3 kOhm 10 buc
R9-R16 Rezistor 330 Ohm 8buc
Indicator W1 cu șapte segmente AF-05643FG-B (sau cu un pinout similar) 1buc
B1 Buzzer cu generator 1buc
Rezonator cuarț X1 16MHz 1buc

Poza dispozitivului finit:


Îmi propun să repet o schemă simplă a unui temporizator de uz casnic (bucătărie) timp de 99 de minute după propriul meu design. Ideea a fost să fie ușor de controlat, astfel încât, literalmente, orice gospodină (proastă) să-l poată folosi fără probleme. Pur și simplu formați 2 cifre de minute și apăsați butonul „Start”. Secundele pot fi, de asemenea, setate dacă este necesar. Există, de asemenea, un „meniu de servicii” ascuns în care sunt „ascunse” mai multe funcții - afișând numărătoarea inversă înainte/înapoi când cronometrul rulează și mai multe opțiuni diferite pentru efecte de lumină și sunet la sfârșitul numărătorii inverse. O altă caracteristică a cronometrului (deși numai la nivelul programării controlerului) este capacitatea de a selecta opțiunea de control al piciorului RC5 - apariția lui „1” fie în timpul numărătorii inverse, fie după sfârșitul numărării. Acest picior poate fi folosit, de exemplu, pentru a controla sarcina sau cumva la discreția ta. În versiunea mea, am pornit un amplificator suplimentar de sunet la sfârșitul numărării.

La început, am dezvoltat „designul” tabloului de bord. Cronometrul folosește un indicator din 2 cifre cu un punct în stânga și 6 LED-uri în jurul lui. Când numără timpul, ele arată zeci de secunde, iar la sfârșitul numărării înfățișează un foc care rulează. Colonul îndeplinește și funcția de control al modului vizual. Când setați ora în modul minute, este oprit, iar în modul secunde, este aprins. Când cronometrul este pornit, începe numărătoarea inversă. Dacă timpul este mai mic de un minut, indicatorul arată secunde și colonul este aprins constant. Când a trecut mai mult de un minut, minutele sunt afișate pe indicator, iar colonul începe să clipească. Zeci de secunde, așa cum am scris mai sus, arată LED-urile. Acum, citind acest text, se pare că totul este prea sofisticat, dar în viața reală totul este foarte simplu și logic.

Deoarece am intenționat să construiesc acest temporizator direct în perete, l-am alimentat de la rețea cu un întrerupător real. Fără moduri de repaus și de așteptare! Nu-mi plac. Doar oprire completă! Sursa de alimentare este cel mai simplu impuls, asemănător cu încărcarea chineză. Nu am urmărit acuratețea specială a cursului, deoarece pentru prepararea tuturor tipurilor de produse culinare, acuratețea, chiar și plus/minus câteva minute, nu este atât de critică. Și nici nu aveam un cronometru model. Ochi, la setarea intervalului maxim la 99 de minute, practic nu a existat nicio diferență față de orele „de referință”. Ei bine, poate a fost vreo jumătate de secundă, dar este greu de urmărit cu ochii. Deci, dacă totul ți se potrivește, poți începe să repeți dispozitivul. Iată diagrama lui:

La momentul firmware-ului, jumperii MK JP1 și JP2 sunt îndepărtați. Pentru a economisi spațiu pe diagramă, tastele VT5, VT6, VT9 și VT10 nu sunt afișate. Am luat indicatorul dintr-o carcasă veche de computer. Folosește drept două puncte stânga 1. Numai în timpul asamblarii finale, aceste segmente trebuie pictate peste puțin pentru a obține 2 puncte (tocmai am sigilat zonele inutile cu bandă neagră). O altă caracteristică a acestui indicator este că segmentele acestei unități din stânga sunt conectate în serie în interiorul indicatorului și afișate ca un segment H (virgulă) de la a doua cifră. Prin urmare, rețineți că R22 este mai mic decât rezistențele pentru alte segmente. În general, puteți utiliza doar un indicator obișnuit cu 2 cifre și 2 LED-uri conectate în serie pentru colon. Am luat acest indicator pur și simplu pentru că îl aveam deja. Pentru orice eventualitate, îi voi da un pinout.

Setarea orei este după cum urmează. În mod implicit (când este activat), cronometrul este în modul de introducere a minutelor cu două puncte oprite. Utilizați butoanele numerice pentru a forma câte minute aveți nevoie și apăsați butonul „Start” (S12 conform diagramei). Cifrele introduse sunt deplasate spre stânga în timpul apăsării, care numere de pe indicator sunt aprinse - atât de multe minute sunt setate în prezent. De exemplu, dacă 23 este pe indicator (23 de minute sunt setate), dar trebuie să setați 6 minute, atunci apăsați doar „0” și „6”. Dacă trebuie să setați și secundele, apăsați butonul „Sec” (S10 conform diagramei), în timp ce colonul se aprinde. Punem de câte secunde aveți nevoie în același mod cu minutele. Dacă numărul format este mai mare de 59 de secunde, cea mai mare cifră începe să clipească, simbolizând o eroare, și se resetează la 0. Puteți porni cronometrul atât din modul minute, cât și din modul secunde. După pornirea temporizatorului, îl puteți opri din timp apăsând din nou butonul „Start”.

În schema de circuit, conectorul X3 este vizibil în stânga cu inscripția „Out”. Aceasta este aceeași ieșire de control despre care am scris la început. În starea inițială există „0”. În etapa de programare, MK poate fi setat când nivelul „1” va apărea acolo - în timpul numărătorii inverse sau la sfârșitul numărătorii inverse și înainte ca temporizatorul să revină la poziția inițială. Acesta este setat în memoria de date EEPROM, în celula la adresa 0x2105 (caseta 1 din figură). Scriind valoarea 0x01 acolo, ieșirea va fi un „1” logic în timp ce temporizatorul rulează. Scriind 0x00 - după sfârșitul numărătorii inverse. Iată o captură de ecran a programului la programarea MK.

La adresa 0x2107 (pătratul 2) este valoarea numărului de corecție în timpul numărătorii inverse (în urmă-scădere, grăbire-creștere). Este de dorit să schimbați numărul în limite mici și fără nevoie specială este mai bine să nu-l atingeți. Nu puneți numere egale cu 0 și 0FFh. La adresa 0x2109 (pătratul 3) există un număr care determină câte minute va funcționa semnalul sonor la sfârșitul numărătorii inverse, dacă cronometrul nu este resetat prin apăsarea butonului.

După cum am scris mai sus, puteți, de exemplu, să conectați un nod de control al sarcinii la ieșirea „Out” conform acestei scheme.

Dacă sarcina nu este foarte puternică (câteva zeci de wați), tiristorul nici măcar nu poate fi plasat pe radiator. În timpul experimentelor am conectat o lampă cu incandescență de 25W și toate detaliile erau reci, ca un cadavru.

Deoarece nu aveam nevoie să controlez nimic, iar temporizatorul urma să numere timpul când gătesc, am conectat un „amplificator” suplimentar cu un difuzor piezo de la telefon la această ieșire pentru a crește volumul semnalului când a pornit temporizatorul. oprit. S-a dovedit destul de tare, iar semnalul se aude în orice colț al apartamentului.

Acestea. ieșirea „Out” a pornit sursa de alimentare „amp”, iar semnalul sonor în sine a fost preluat de la ieșirea PIK pentru un difuzor mic. S-a dovedit că atunci când apăsați butoanele când setați ora, doar un mic difuzor scârțâie, iar când cronometrul se stinge, ambele difuzoare scârțâie deodată. Acest amplificator suplimentar este asamblat pe o eșarfă separată.

Cronometrul în sine este asamblat pe o placă de circuit imprimat cu două fețe, desenată în . Arhiva este atașată la sfârșitul articolului. Placa este conectată pentru un PIC într-un pachet TSSOP cu un pas de 0,65 mm.

Poza plăcii în proces de asamblare/depanare.

Pentru a alimenta cronometrul, am folosit cea mai simplă sursă de alimentare comutată asamblată conform acestei scheme (am luat schema în sine gata făcută undeva pe Internet). Nu are rost să scrii despre asta în detaliu aici, deoarece acesta este un subiect pentru un articol separat despre comutarea surselor de alimentare. Voi da doar date despre înfășurarea transformatorului. Cadrul în sine de o dimensiune adecvată este luat dintr-o lampă de economisire a energiei sau dintr-un alimentator chinezesc ars. De asemenea, poate fi scos din ciclul de funcționare al unui PSU de computer sau de pe un monitor, dar vor fi puțin mai mari ca dimensiune. Pentru o demontare fără probleme a cadrului și miezului transformatoarelor, le scufund în apă clocotită timp de 3-4 minute și apoi le demontez cu grijă, fără prea mult efort. Apoi scoatem toate înfășurările vechi și înfășurăm pe cele noi. Înfășurări: 1-2 - 600 de spire cu diametrul de 0,08 - 0,1 mm; 3-4 - 23 de spire cu diametrul de 0,3 - 0,55 mm; 5-6 - 10 spire cu diametrul de 0,08 - 0,1 mm. Serpuit, cotit 1-2 bobinat în vrac, restul bobină la bobină. Toate înfășurările trebuie să fie bine izolate unele de altele. Când înfășurați, observați direcția și începutul înfășurării punct cu punct. Două jumătăți de miezuri în formă de W sunt unite printr-o garnitură izolatoare (defer ~ 0,1 mm).

Dar o puteți face mai ușor luând orice sursă de alimentare chineză gata făcută cu o tensiune de 8-9 volți la ieșire.

Câteva fotografii de fabricație a carcasei (mic de lucru). O atenție deosebită a fost acordată designului afișajului.

Ei bine, dispozitivul finit este asamblat.

Și în sfârșit, despre „meniul de servicii”, care este menționat la începutul textului. Dacă tastați „1”, „1”, „1”, „1”, „1” și „Start” din modul de setare a secundelor, atunci puteți selecta numărătoarea inversă înainte sau înapoi cu butoanele „1” și „2 ". Afișajul va afișa „ Cu" (Numără în sus) sau " CD" (Numărătoare inversă). Ieșiți din meniu cu salvarea setărilor în EEPROM folosind butonul "Start".

Dacă formați secvența „2”, „2”, „2”, „2”, „2” (tot din al doilea mod de setare) și „Start” - folosind butoanele „1” - „4” puteți selecta una dintre cele patru opțiuni pentru semnalul sonor când cronometrul se termină. Afișajul va afișa „ A1" -"A4" (Alarmă). Ieșiți cu salvarea setărilor în EEPROM și cu butonul "Start".

Tastând „3”, „3”, „3”, „3”, „3” și „Start” cu butoanele „1” - „4” puteți selecta una dintre cele patru opțiuni pentru „foc de alergare” ale LED-uri circulare când temporizatorul este declanșat. Afișajul va afișa „ E1" -"E4".

Tastând „4”, „4”, „4”, „4”, „4” și „Start” cu butoanele „1” - „4” puteți selecta una dintre cele patru opțiuni pentru a clipi indicatorii cu șapte segmente atunci când temporizatorul este declanșat. Afișajul va afișa „ L1" -"L4".

Arhiva conține plăci de cronometru și de alimentare (dacă cineva are nevoie) și firmware-ul controlerului. Siguranțele sunt deja specificate în firmware, nu trebuie schimbat nimic. Pe placa temporizatorului există mai mulți condensatori ceramici de 0,1 uF pentru alimentare, neprezentați în schema de circuit. Există, de asemenea, câteva părți marcate FB (sferă de ferită) - acestea sunt pur și simplu așa-numitele margele de ferită utilizate ca jumperi.

Lista elementelor radio

Desemnare Tip Denumire Cantitate NotăMagazinBlocnotesul meu
IC1 MK PIC pe 8 biți

PIC16F636

1 La blocnotes
IC2 codificator, decodor

SN74LS155A

1 La blocnotes
IC3 Registrul de deplasareK561IR21 La blocnotes
IC4 Regulator liniar

L78L05

1 La blocnotes
VT1-VT3, VT13 tranzistor bipolar

KT3107BM

4 La blocnotes
VT4-VT12 tranzistor bipolar

KT3102BM

29 La blocnotes
D1-D4 dioda redresoare

1N4148

4 La blocnotes
Î1 Rezonator cu cuarț20 MHz1 La blocnotes
C1, C2, C4 220uF3 La blocnotes
C3, C5, C8 condensator electrolitic100uF3 La blocnotes
C6, C7 Condensator22 pF2 La blocnotes
C9 Condensator0,1 uF1 La blocnotes
R1-R3 Rezistor

1 kOhm

3 La blocnotes
R4-R6 Rezistor

680 ohmi

3

Acest circuit cronometru al microcontrolerului PIC16F684 permite selectarea independentă a momentului de oprire și pornire a sarcinii. Calitatea distinctivă a acestui cronometru este utilizarea unui indicator SoG LCD cu o interfață serială încorporată.

Descrierea temporizatorului de pe microcontroler

Indicatorul are 8 cifre cu șapte segmente. Indicarea timpului începe cu patru cifre în mijloc. Orele și minutele sunt separate printr-un punct zecimal. Indicarea încărcării temporizatorului pornit sau oprit este afișată în partea dreaptă a indicatorului (0 - oprit, 1 - pornit)

Toate controlul cronometrului se realizează prin intermediul a 4 butoane. Dacă apăsați și mențineți apăsat butonul „Instalare” timp de 2 secunde, modul de instalare este activat. În primul rând, este setată timpul real (ore și minute). După setarea orei, trebuie să faceți clic pe „set” o dată

Pentru a seta ora de pornire și oprire a temporizatorului microcontrolerului, apăsați butonul corespunzător. De asemenea, după selectarea valorii dorite, trebuie să faceți clic o dată pe „set”.

Funcționarea microcontrolerului se realizează de la generatorul RC încorporat cu o frecvență de 8 MHz. Circuitul de ceas intern este alimentat de un oscilator cu cristal de 32768 Hz. În general, microcontrolerul este în modul de repaus, astfel încât valoarea medie a consumului de curent este de aproximativ 5 ... 7 μA.

Cheia este IRLML2502 (BSS138). Butoanele tactile sunt arbitrare. Alte elemente radio SMD. Mufă pentru programarea microcontrolerului PLS5 cu numerotare pin ca în PICKit2.