084-Termometru termometru cu două canale pe atmega8

Vă aduc la cunoștință dispozitivul meu - un termometru cu două canale. Termostatul a fost făcut de mine la cererea rudelor, pentru a menține o temperatură constantă în cutie cu cartofi. Dacă în alți ani nu era necesar, atunci iarna trecută a arătat că este necesar.

Senzorii au folosit DS18B20. Microcontrolerul (ATmega8) funcționează de la un oscilator master intern la 4 MHz (în plus, cardul oferă posibilitatea instalării cuarțului). Datorită artefactelor indicației dinamice (a existat o aplecare observabilă la momentul interogării senzorului), a trebuit să refuz citirea senzorului ROM și calculul CRC. Cu toate acestea, aparatul utilizează doi senzori care sunt conectați la diferite ieșiri ale MC. Se măsoară temperatura aerului exterior, cealaltă în cutie. Termostatul este organizat numai pentru senzorul nr. 2 (cutie).

084-Termometru termometru cu două canale pe atmega8

Termostatul-termostat este împărțit în două corpuri. Într-o parte și partea de control, pe cealaltă unitate de alimentare și releul de control al sarcinii. Placa de comandă este prevăzut cu putere condensatori stabilizator instalație de alimentare cu microcontroler, dar din moment ce puterea vine v 5 și deci nu este sudat (în cazul alimentării de la sursa de alimentare cu o tensiune de ieșire mai mare de 5 V, este necesar să se lipire). Dulapul de comandă este echipat cu un suport care permite montarea pe o șină DIN sau pur și simplu cu șuruburi pe perete.

084-Termometru termometru cu două canale pe atmega8

Conectori Dispozitiv:
- semnale de control sunt trimise la conectorul USB pentru pornirea releului;
- Senzorii de temperatură sunt conectați prin conectori audio.

Deoarece programul ocupă 66% din memorie, a fost decis să se facă un alt canal de control, doar în caz, de la PB5. În acest program nu există un canal secundar și dacă va fi necesar, nu știu încă, dar pe PP cel de-al doilea canal este organizat în totalitate, numai releul nu este instalat.



084-Termometru termometru cu două canale pe atmega8
084-Termometru termometru cu două canale pe atmega8
084-Termometru termometru cu două canale pe atmega8

Descrierea termostatului.
Dispozitivul are trei butoane pentru control. Butonul (OK), (Sus), (Dn). Atunci când alimentarea este pornită, temperatura afișată de senzorul nr. 1 (aer exterior) este afișată.



Când butonul (OK) este apăsat din nou, temperatura senzorului nr. 1 este afișată și LED-ul HL1 se stinge.


Pentru a modifica setarea pragului, apăsați butonul (OK). Valoarea de pe afișaj va clipi, indicând faptul că valoarea de referință este gata de schimbare. Setarea poate fi schimbată de la +1 la +10 grade, cu discreție de 1 grad. Măriți valoarea apăsând butonul (Sus) și utilizând butonul (Dn) pentru a micșora valoarea. Pentru a salva setarea sau pur și simplu pentru a trece la pragul următor, trebuie să apăsați butonul (OK). Afișajul arată pragul inferior, iar a patra cifră indică segmentul inferior care indică faptul că acesta este pragul inferior.


Pentru a modifica setarea pragului, apăsați din nou butonul (OK). Valoarea de pe afișaj va clipi, indicând faptul că valoarea de referință este gata de schimbare. După setarea pragului de comutare, apăsăm butonul (OK) pentru a salva și a ieși din modul de setare a pragurilor de termostatare. Setările sunt stocate în memoria nevolatilă a MK și nu sunt resetate la pierderea alimentării.

Vă recomandăm pentru depozitarea de înaltă calitate a cartofilor, setați includerea (pragul inferior) al setului de încălzire +2, setați oprirea (pragul superior) +4.

Pentru comoditatea monitorizării temperaturii în cutie a fost introdus un algoritm suplimentar pentru semnalizarea temperaturii scăzute în cutie. Ce este el? Când temperatura senzorului nr. 1 este afișată și temperatura din cutie este redusă (de exemplu, din cauza unei defecțiuni la încălzire) și atinge o valoare sub +1 grade, LED-ul HL1 clipește, indicând o temperatură scăzută în cutie. Dacă temperatura din sertar crește peste + 2 grade, LED-ul nu mai clipește.

Algoritmul defectării senzorului. Dacă senzorul este defect, pe ecran se afișează eroarea nr. Numărul indică un cod de eroare de la 1 la 3. Numărul 1 indică - nu există un nivel ridicat, 2 - nu există senzor, 3 - nivelul ridicat nu este restabilit.


Când temperatura senzorului nr. 1 este afișată și senzorul nr. 2 este defect, LED-ul HL1 clipește pentru a indica o defecțiune. Astfel, dacă este afișată temperatura senzorului nr. 1, nu pierdeți termostatul defect. Firește, dacă senzorul # 2 nu reușește, încălzirea este oprită.

Mai multe puncte. Termostatul este dezactivat dacă setarea pentru pragul inferior este egală cu setarea pragului superior sau valoarea de referință a pragului inferior este peste setarea de prag superior. Dacă senzorul nr. 1 sau nr. 2 este defect, atunci nu veți vedea valoarea de setare din meniul de setare, deși puteți modifica valoarea de referință, dar orbește. Acest lucru se face astfel încât utilizatorul să nu poată modifica valorile de referință cu senzori defecți.


Fișiere pentru a construi dispozitivul.

Termostat_PCB_ATtmega8_OK - Desene ale placilor cu circuite imprimate termostat
7_seg_term_OK_v2b_ATtmega8 - Sursa termostatului pe Builder v2b_1
Termostat_7_LED.hex - Firmware-ul termostatului pentru ATmega8 v2b_1
FuseBits - Siguranțe pentru termostatul de firmware
Pentru Algorithm Builder și UniProf, casetele de selectare sunt plasate ca în imagine.
Pentru casetele de selectare PonyProg, AVR Studio, SinaProg sunt inversate.
Cum de a bloca în mod corespunzător fuziunea AVR

(Vizitat de 12 ori, de 13 ori astăzi)

Navigare după înregistrări

Bună ziua SVN.
Am de gând să asamblez un dispozitiv pentru proiectul tău. Este interesant să știți ce fel de încălzire ați folosit pentru cutia termică? Judecând de unitatea de alimentare, acesta furnizează 12V 0,5A. Asta înseamnă că încălzitorul este de numai 6 wați? Puterea de 6 wați mi se pare că nu oferă condițiile termice necesare. Sau am înțeles greșit ceva?)

fizik_89:
Este interesant să știți ce fel de încălzire ați folosit pentru cutia termică? Judecând de unitatea de alimentare, acesta furnizează 12V 0,5A. Asta înseamnă că încălzitorul este de numai 6 wați? Puterea de 6 wați mi se pare că nu oferă condițiile termice necesare. Sau am înțeles greșit ceva?)

Te-ai înșelat. Alimentatorul nu alimentează încălzitorul, ci furnizează numai circuitul de comandă și bobinajul releului. Dar, cu ajutorul contactelor releului, este organizat controlul încălzitorului. În cazul meu, încălzitorul este un uscător de păr vechi, sursa de alimentare 220VAC.

Multumesc pentru raspuns) acum totul este clar)

Am asamblat termostatul. Am lucrat imediat. Numai aici temperatura arată ciudat: minus 38,6 (ambii senzori) într-o cameră caldă, unde aproximativ 20 de grade. Senzorii (DC18B20) reacționează la schimbările de temperatură. când se încălzește cu un fier de lipit, temperatura crește până la minus 21 de grade. Care este problema?

alex52:
Am asamblat termostatul. Am lucrat imediat. Numai aici temperatura arată ciudat: minus 38,6 (ambii senzori) într-o cameră caldă, unde aproximativ 20 de grade. Senzorii (DC18B20) reacționează la schimbările de temperatură. când se încălzește cu un fier de lipit, temperatura crește până la minus 21 de grade. Care este problema?

Înlocuiți senzorii DC18B20 cu DS18B20 și temperatura va fi afișată corespunzător.

Mulțumesc. Vârsta veche nu este distractivă.

Am verificat acasă ce senzori termici aveam: au fost scrise cu DALLAS 18B20. Este DC18B20 sau DS18B20?

Acesta este DS18B20. Doar cele necesare. În timp ce pentru mine este un mister, de ce aveți astfel de dovezi. Pentru moment, verificați conexiunea senzorului din nou. Dacă este posibil, schimbați senzorii (de preferință achiziționați de la un alt magazin). Acum sunt departe de casă. Mă voi întoarce la sfârșitul săptămânii. Dacă nu găsiți ceva, voi scrie un program simplu de testare pentru acest lucru fără o coajă superioară. Și acolo vom încerca să tragem concluzii.

Când puterea a fost aplicată dispozitivului, afișajul a arătat 85,0 ° C și apoi după aproximativ 2 secunde: -36,3 ° C Apoi am schimbat senzorii în locuri: din nou, valoarea era de 85.0 ° C, și apoi după aproximativ 2 secunde: -36.5 ° C Din păcate, eram bolnav și nu puteam obține senzori noi. În ziua următoare, o voi face și voi scrie despre rezultate. Vă mulțumim pentru ajutor.

alex52:
Când puterea a fost aplicată dispozitivului, afișajul a arătat 85,0 ° C și apoi după aproximativ 2 secunde: -36,3 ° C Apoi am schimbat senzorii în locuri: din nou, valoarea era de 85.0 ° C, și apoi după aproximativ 2 secunde: -36.5 ° C Din păcate, eram bolnav și nu puteam obține senzori noi. În ziua următoare, o voi face și voi scrie despre rezultate. Vă mulțumim pentru ajutor.

Când energia este aplicată senzorului, senzorul scrie registrelor o valoare de 85.0, care citește dispozitivul. Aceasta confirmă recalcularea corectă a valorilor citite. Astfel, se pare că ați prins nelichide, ceea ce este foarte rar. Încercați să achiziționați senzori într-un alt magazin. Dar acest efect poate apărea dacă senzorul nu vine +5 V. Verificați sursa de alimentare a senzorului.

Da, ai avut dreptate, senzorii s-au dovedit a fi substandard. Noul senzor prezintă valori normale. Pur și simplu mi sa părut puțin probabil ca cei doi senzori să fie la fel de substandard. Probabil puteți analiza activitatea acestor senzori și corectați programatic citirile. În timpul liber voi încerca. Mulțumesc.

Apropo, poate acest DS18S20? Au vederi diferite ale temperaturii. Pentru DS18S20, temperatura este reprezentată ca o valoare pe 9 biți în codul suplimentar, iar pentru DS18B20 ca număr binar cu o lățime de biți de 9 până la 12 biți. În DS18S20 și DS18B20, pe lângă numărul de serie, ROM-ul conține codul familiei (10h pentru DS18S20 și 28h pentru DS18B20). Aveți un program pentru a citi codul familiei sau programul pentru a lucra cu DS18S20?

alex52:
Apropo, poate acest DS18S20? Au vederi diferite ale temperaturii. Pentru DS18S20, temperatura este reprezentată ca o valoare pe 9 biți în codul suplimentar, iar pentru DS18B20 ca număr binar cu o lățime de biți de 9 până la 12 biți. În DS18S20 și DS18B20 cu excepția numărului de serie conținute în codul familiei ROM (10h - pentru DS18S20 și 28H - pentru DS18B20). Aveți un program pentru a citi codul familiei sau programul pentru a lucra cu DS18S20?

Nu am un astfel de program. Dar dacă a fost DS18S20, atunci valoarea + 85 * С la pornirea programului, nu ați vedea. Aceasta este cu siguranta o casatorie. O căsătorie este mai bine să se întoarcă la magazin.

în loc de acesta va fi mai frumos în cazul în care să utilizați două afișare linie?

pino24:
dar nu va fi mai frumos dacă utilizați un afișaj cu două linii.

Acesta este cineva care vă place. Pentru afișajul pe două linii, programul va trebui să fie complet rescris.

Multe mulțumiri dezvoltatorilor! Am vrut să clarific această întrebare. Fac despre același instrument, dar mai mult direcția medicală. Aș dori să știu dacă există o oportunitate de a ajuta la pregătirea diagrame de sincronizare de pe aparat și să știe care pachetele sunt și modul în care transmițătoare care au nevoie le-a trimis la interviu lor și ceea ce este frecvența sondajului?
Vă mulțumim în avans!

Mulțumesc. Am citit deja manualul. Dar sunt puțin departe de principiul transferului de date (Este posibil să spun pe degete ce pachet, ce constă din acesta, ce și unde sunt zerouri și odinichki?

Mai bine decât în ​​manual, nu pot spune, pentru că există o descriere foarte detaliată a schimbului de date cu senzorul, nu am nimic de adăugat. Nu credeți ... primul program pe care l-am scris a fost doar schimbul de date cu acest senzor. În sursa acestui dispozitiv, puteți vedea cum este organizat transferul și recepția datelor. Dacă există întrebări specifice, voi încerca să răspund, dar repetă manualul, dar nu sunt gata, chiar dacă este foarte bine tradus.

Bună ziua! Voiam să știu dacă ați putea descrie specificațiile acestui dispozitiv. Aș dori să știu ce modele și mărci de diode, tranzistoare, butoane, relee au fost folosite.
Vă mulțumim anticipat.

În acest caz, butonul a utilizat KAN0611-0901B; releu - G5LA-14 5VDC; diode - HER108; tranzistori - KT3102 (se potrivește cu orice literă).

O zi buna! Vroiam să aflu dacă este posibil să colectezi acest dispozitiv de la tine, desigur, dar cu un alt element de încălzire și altă unitate de alimentare?

Skifco:
O zi buna! Vroiam să aflu dacă este posibil să colectezi acest dispozitiv de la tine, desigur, dar cu un alt element de încălzire și altă unitate de alimentare?

Salut din nou. Din cauza lipsei mele de experiență în aceste chestiuni, aș dori să clarific ce trebuie schimbat în acest dispozitiv, astfel încât să devină posibil să lucrați cu baterii? Și dacă puteți, bineînțeles, doriți să comunicați cu dvs. direct pe dispozitiv dacă există o astfel de oportunitate de a nu utiliza acest forum. Vă mulțumim în avans!

Skifco:
Salut din nou. Din cauza lipsei mele de experiență în aceste chestiuni, aș dori să clarific ce trebuie schimbat în acest dispozitiv, astfel încât să devină posibil să lucrați cu baterii? Și dacă puteți, bineînțeles, doriți să comunicați cu dvs. direct pe dispozitiv dacă există o astfel de oportunitate de a nu utiliza acest forum. Vă mulțumim în avans!

Prompt, vă rog, nu pot intra în lucrarea acestui dispozitiv
Am nevoie de un termostat pentru creșterea bifidobacteriilor
Tenorul menține 37 de grade și dacă obiceiul de 39 de grade este declanșat prin răcire

Am asamblat acest dispozitiv. Până acum, doar controlorul. Când este pornit, se emite Err 1, după câteva secunde Err 3. Fyuzy blocat Low-E3, High-D9 cu firmware. În detaliu, este pur și simplu imposibil să faci o greșeală. Am reverificat taxa, totul a fost corect. Senzorii au verificat celălalt dispozitiv, funcționează.
Ce înseamnă această eroare?

2GetChiper
Mulțumesc foarte mult. Nu știam că există încă un forum. Nu ar trebui să cumpăr un indicator cu OK. Da, și din anumite motive, atunci neînțelegerea sa confruntat cu OA, crezând că era cu OK))