Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Hekuri
  • Termometër-termostat me dy kanale në ATmega8. Termometër elektronik me sensor pa tel Skema e një termometri me dy kanale në një mikrokontrollues

Termometër-termostat me dy kanale në ATmega8. Termometër elektronik me sensor pa tel Skema e një termometri me dy kanale në një mikrokontrollues

Këtu është një projekt për një termometër me dy kanale. Mund të matë temperaturat në rangun nga -50,0 deri në +99,9 gradë. Pajisja është projektuar për të matur temperaturën brenda dhe jashtë, por ka edhe shumë përdorime të tjera. Me një ndryshim të vogël në program, pajisja mund të përdoret edhe si termostat. Termometri është ndërtuar mbi sensorin dhe mikrokontrolluesin popullor dhe shumë të përhapur ATtiny2313, i cili thjeshtoi shumë zhvillimin dhe lejoi një reduktim të ndjeshëm në madhësi. Termometri u kompresua në mënyrë që pothuajse të gjithë elementët të vendosen nën ekranin treshifror 15 mm. Pothuajse të gjithë elementët janë SMD. Sigurisht, komponentët TH mund të përdoren, por në epokën e miniaturizimit, është më mirë të bëjmë një hap më tej për të krijuar një sistem me dimensionet më të vogla. Termometri mund të matë temperaturën në dy vende, duke përdorur dy sensorë të lidhur në autobusë të pavarur. Ndryshimi i temperaturës së shfaqur bëhet duke përdorur dy butona.

Parimi i funksionimit

Diagram skematik:

Zemra e pajisjes është mikrokontrolluesi U1 (ATTINY2313), i cili akordohet nga një oshilator i brendshëm 8 MHz, pa ndarës frekuence. Mungesa e kuarcit bëri të mundur zvogëlimin e madhësisë së pajisjes, dhe gjithashtu liroi dy këmbë MK; butoni S2 tani është i lidhur me njërën prej tyre. Mikrokontrolluesi merr leximet e temperaturës nga dy sensorë, i konverton të dhënat në një formë të përshtatshme për t'u shfaqur në ekran dhe përpunon shtypjen e butonave S1 dhe S2. Kondensatori C1 (100nF), i vendosur pranë mikrokontrolluesit, është një kondensator filtrues. Kondensatorët C2 (10 µF) dhe C3 (10 µF) janë të nevojshëm për funksionimin e duhur të U3 (78L05) Thjeshtësia e qarkut është për shkak të sensorit të temperaturës së përdorur. Ky është një termometër dixhital 12-bit që mund të funksionojë nga -55 në +125 gradë. Koha e përpunimit (konvertimit) të temperaturës nuk zgjat më shumë se 750 ms. Komunikimi me mikrokontrollues kryhet nëpërmjet një ndërfaqe 1-Wire. Treguesi i temperaturës është një ekran LED me tre shifra (AT5636BMR-B) me lidhje të segmentit të brendshëm, i përshtatur për shfaqje dinamike. Rezistorët R4-R11 kufizojnë rrymën në ekranin LED në 10-12 mA (për segment). Sidoqoftë, rryma mesatare është më e vogël për shkak të përdorimit të ekranit dinamik. Anodat kontrollohen nga tre transistorë të njohur T1 - T3 (BC857). Rrymat e bazës kufizohen nga rezistorët R1-R3 (3.3 kOhm). Një komponent i rëndësishëm është lidhësi GP1, përmes të cilit lidhen sensorët dhe dalja e kontrollit (në rastin e një termostati).

Prodhimtaria

Pajisja është bërë në bazë të një bord qarku të shtypur. Pllaka është e njëanshme, dhe pothuajse të gjithë elementët janë SMD. Përjashtim bëjnë ekrani, butonat e kontrollit dhe lidhësit. Montimi nuk është i vështirë, por kërkon shumë aftësi gjatë bashkimit të SMD. Disavantazhi i pllakës është mungesa e një lidhësi programimi, kështu që nëse keni nevojë të bëni ndryshime në program, do t'ju duhet të lidhni telat e programuesit drejtpërdrejt në tabelë. Por mund të instaloni një lidhës miniaturë në tabelë.

Pika lidhëse

Kunjat 1 dhe 2 të këtij lidhësi janë fuqia dhe tokëzimi. Pin 3 është menduar për lidhjen e një treguesi të temperaturave negative (katodë në lidhës, anodë në +5V përmes një rezistence 200 - 300 Ohm). Sensorët janë të lidhur nëpërmjet një teli me tre tela. Sensori i parë është i lidhur me pinin 5, dhe sensori i dytë është i lidhur me pinin 6. Pajisja furnizohet me energji nga 7-12 V përmes një stabilizuesi 78L05.

Programimi

Programi është shkruar në një mjedis të njohur programimi. Ai zë rreth 70% të memories së mikrokontrolluesit dhe mund të kompilohet me sukses në versionin demo të BASCOM"a. Programi nuk është i komplikuar. Më poshtë janë disa elementë kodi

Trajtuesi i ndërprerjeve Kohëmatësi 0:

Przerwanie0: Kohëmatësi0 = 131 Vendos F4ms Incr Dziel(1) Nëse Dziel(1) = 25 Pastaj Dziel(1) = 0 Vendos F100ms Incr Dziel(2) Nëse Dziel(2) = 10 Atëherë Dziel(2) = 0 Vendos F1s Fund Nëse Fundi Nëse Kthimi

Cikli kryesor:

Bëje nëse F4ms = 1 Pastaj Rivendos F4ms "co 4ms Wysw = T Gosub Wyswietl_zmierz Fundi Nëse Nëse F100ms = 1 Pastaj Rivendos F100ms "co 100ms Nëse Pind.2 = 0 Atëherë Kanal = 1 Nëse Pina.0 = 0 Atëherë Kanal = 0 Fund Nëse Fundi i ciklit

Procedura e kontrollit të ekranit:

Wyswietl_zmierz: Incr Mux Nëse Mux = 5 Atëherë Mux = 0 Portd.3 = Jo Minus Për I = 1 në 3 Wysw_pomoc = Wysw Mod 10 Ww = Wysw_pomoc W(i) = Kërko (ww , Tabela) Wysw = Wysw / 10 Tjetër I Nëse W(3) = 40 Atëherë W(3) = 255 "wygaszenie zera wiodącego Zgjidh Rastin Mux 0: Portb = W(3) Rivendos Portd.6 Rasti 1: Vendos Portd.6 Portb = W(2) Dhe &B11011111 Rivendos Portd.5 Rasti 2: Vendos Portd.5 Portb = W(1) Rivendos Portd.4 Rasti 3: Cakto Portd.4 Portb = 255 Gosub Temp "Rasti 4: Fund Zgjidh Tabelën e Kthimit: Të dhënat 40 , 235 , 50 , 162 , 225, 164, 36, 234, 32, 160

Procedura e matjes së temperaturës:

Temp: Nëse F1s = 1 Pastaj Rivendos F1s 1wreset Pind , Kanal 1wwrite &HCC , 1 , Pind , Kanal 1wwrite &HBE , 1 , Pind , Kanal T = 1wread(2 , Pind , Kanal): Minus = T.15 T = Abs( ) T = T * 10 T = T / 16 1wreset Pind , Kanal 1wwrite &HCC , 1 , Pind , Kanal 1wwrite &H44 , 1 , Pind , Kanal Fund If Return

Fusat e mikrokontrolluesit duhet të vendosen për të punuar me oshilatorin e brendshëm RC 8 MHz

Fotografitë

Lista e radioelementeve

Emërtimi Lloji Emërtimi sasi shënimDyqanblloku im i shënimeve
U1 MK AVR 8-bit

ATtiny2313

1 SO20 Në bllokun e shënimeve
U3 Rregullator linear

L78L05

1 SOT89 Në bllokun e shënimeve
T1-T3 Tranzistor bipolar

BC857

3 Në bllokun e shënimeve
C1 Kondensator100 nF1 Në bllokun e shënimeve
C2, C3 Kondensator elektrolitik10 µF2 Tantalum SMD 3216A Në bllokun e shënimeve
R1-R3 Rezistencë

3.3 kOhm

3 SMD 0805 Në bllokun e shënimeve
R4-R11 Rezistencë

330 Ohm

8 SMD 0805 Në bllokun e shënimeve
R12, R13 Rezistencë

4.7 kOhm

2 SMD 0805 Në bllokun e shënimeve
W1 Treguesi i shtatë segmenteveAT5636BMR1

Lloji i pajisjes: Termometër, pajisje kontrolli termik, analizues i temperaturës.

Prodhuesi: Rusia

Seria: TK-5

Modeli: TK-5.11

Përshkrimi: Aparat për matjen e temperaturës dhe lagështisë relative.

Garancia për termometrin kontaktues TK-5.11: 24 muaj.

Termometri për të kontakt TK-5.11 është përfshirë në Regjistrin Shtetëror të Instrumenteve Matëse.

Qëllimi i pajisjes:

Termometri dixhital i kontaktit TK-5.11 është projektuar për të matur temperaturën e mjediseve të ndryshme dhe lagështinë relative të ajrit me kontakt të drejtpërdrejtë të sondës me objektin e matjes. Termometri është një pajisje me dy kanale që lejon funksionimin e njëkohshëm të dy sondave matëse. Përbëhet nga një njësi elektronike dhe sonda të zëvendësueshme. Konvertuesit termoelektrikë (TC) nga NSKh në GOST R 8,585. Dhe sensorët kondensativ të lagështisë përdoren si një element matës në sondat e lagështisë relative.

Funksionaliteti i termometrit TK-5.11:

  • matje e njëkohshme e lagështisë ose temperaturës nëpërmjet dy kanaleve në çdo kombinim me një pajisje;
  • matje e temperaturës me rezolucion prej 0,1 °C;
  • matja e lagështisë me rezolucion prej 0.1%;
  • mundësia e ndryshimit të sondës;
  • aftësia për të shfaqur temperaturën e sensorit të kompensimit të temperaturës;
  • aftësia për të shfaqur temperaturën e ajrit kur përdorni një sondë lagështie;
  • ruajtja e vlerave të matura të temperaturës ose lagështisë në kujtesën e pajisjes;
  • shfaqja e vlerës mesatare të temperaturës ose lagështisë për një numër të caktuar matjesh;
  • shfaqja e vlerës maksimale të temperaturës ose lagështisë (për një numër të caktuar matjesh);
  • shfaqja e vlerës minimale të temperaturës ose lagështisë (për një numër të caktuar matjesh);
  • treguesi i tensionit të furnizimit;
  • vendosja e vlerave kufitare të temperaturës ose lagështisë së matur;
  • tregues zanor kur arrihen nivele të caktuara të temperaturave ose lagështisë së matur;
  • drita treguese;
  • mbyllja automatike e pajisjes pas një kohe të caktuar;
  • kursim automatik kur fikni rrymën, mesataren, max, min, tensionin e furnizimit, kohën e mbetur të funksionimit të pajisjes në momentin e fikjes.

Karakteristikat e termometrit TK-5.11:

  • Matja e lagështisë.
  • Matja e njëkohshme e temperaturës dhe lagështisë.
  • Mundësia e punës me sonda të zëvendësueshme.
  • Kanal i dyfishtë.
  • Mundësuar nga bateritë standarde AA.
  • Konsumi i ulët i energjisë (të paktën 350 orë funksionim nga një grup baterish).

Karakteristikat teknike të termometrit TK-5.11:

Gama e temperaturave të matura, °C

100...+1800 (në varësi të llojit të sondës së përdorur)

Gabim relativ, %

±0.5 + njësi ml.madhësia

Çmimi për njësi i shifrës më të ulët, °C

0,1

Numri i llojeve të sondave zëvendësuese

Gama e matjes së lagështisë relative, %

3...97

Gabim absolut i matjes së lagështisë relative, %

Kushtet e funksionimit, °C

20...+50

Tensioni i furnizimit, V

1.5x2

kushtet e përdorimit

temperatura e ambientit, °C

20...+50

lageshtia relative, %

jo më shumë se 80% në T = 35 °C

presioni atmosferik, kPa

86 - 106

Fusha e aplikimit të termometrit TK-5.01:

  • Inxhinieri termike dhe pajisje teknike të shërbimeve komunale. Auditimi energjetik i ambienteve, kontrolli i temperaturës së cilësisë së shërbimeve, rregullimi i kushteve termike në dhomat e kaldajave.
  • Ndërmarrjet industriale. Monitorimi i temperaturës së pjesëve gjatë saldimit, në metalurgji, rregullimi i kushteve të temperaturës në prodhimin e materialeve të ndërtimit dhe produkteve plastike, përcaktimi i temperaturës së kallëpeve në industrinë e qelqit dhe ëmbëlsirave.
  • Industria ushqimore. Monitorimi i temperaturës së proceseve teknike të gatimit, pirjes së duhanit, pjekjes, prodhimit të majave, maltit etj.

Seti i dorëzimit të termometrit TK-5.01P:

  • termometri TK-5.11
  • manual udhëzimi dhe pasaportë
  • certifikatën e verifikimit
  • çantë-këllëf

*Specifikimet dhe qëllimi i dorëzimit të pajisjeve të kontrollit të temperaturës janë subjekt i ndryshimit nga prodhuesi pa njoftim paraprak.

Informacione shtesë për termometrat mund të merren duke kontaktuar specialistët tanë duke telefonuar numrat e treguar seksioni" kontaktet".

Ne dërgojmë pajisje matëse të temperaturës në të gjithë Rusinë nga shërbime korrierësh dhe kompani transporti.

Vendosa të bëj një termometër me dy kanale, por jo një të zakonshëm, por me një sensor wireless për rrugën. Ideja sigurisht nuk është e re; termometra të ngjashëm industrialë janë tashmë në treg. Meqenëse kisha përvojë në lidhjen e moduleve të radios me një mikrokontrollues, fillova të zhvilloj versionin tim të një termometri pa tel.

Për të matur temperaturën, përdora sensorët e zakonshëm DS18B20 dhe për të shfaqur leximet përdora atë jo më pak të njohur. Kam diskutuar modulet e radios dhe algoritmin e transmetimit të të dhënave më herët në një artikull rreth

Më poshtë është një diagram i një sensori pa tel në një mikrokontrollues PIC12F675.

Pas futjes së energjisë, mikrokontrolluesi lexon vlerën e temperaturës nga sensori BK1 dhe i dërgon këto të dhëna në radio transmetuesin A1, pas së cilës ai hyn në modalitetin e fjetjes. Mikrokontrolluesi zgjohet nga një ndërprerje, e cila krijohet nga një ndryshim në nivelin në linjën GP0. Një qark RC në elementët R2 dhe C4 është i lidhur me këtë linjë, i cili kryen funksionin e një kohëmatësi. Kur dilni nga modaliteti i gjumit, linja GP0 vendoset në një nivel të ulët logjik, duke shkarkuar kështu kondensatorin C4. Para se të shkojë në "gjumë", linja rregullohet në hyrje, kondensatori fillon të ngarkohet përmes rezistencës R4 dhe kur arrihet voltazhi i pragut (rreth 1.2 V), mikrokontrolluesi ndërpritet dhe zgjohet. Me vlerat e R2 dhe C4 të treguara në diagram, periudha e zgjimit është afërsisht 5 minuta. Duke instaluar kërcyesin JP1, mund ta zvogëloni periudhën në 5,5 sekonda. Duke zgjedhur një kondensator dhe rezistencë, mund të rregulloni kohën e dëshiruar të periudhës, por duhet të merrni parasysh rrymën e karikimit të kondensatorit për sa i përket konsumit të energjisë.

Vlera e temperaturës transmetohet në kanalin e radios në formën e një pakete prej 3 bajtësh, bajt i fundit është shuma e kontrollit të 2 bajtit të parë. Algoritmi i transmetimit të të dhënave që unë përdor, në parim, na lejon të bëjmë pa një kontroll; probabiliteti për të marrë të dhëna të pasakta është i ulët. Shpejtësia e transmetimit është 3.3 Kbps. Çdo herë pas matjes së temperaturës dërgohen 3 pako bajt, pauza midis paketave është 10 ms, unë përdora këtë opsion transmetimi për të rritur besueshmërinë e marrjes së të dhënave nga marrësi. Kjo për faktin se pala marrëse ndërpret marrjen e sinjalit për 4-5 ms gjatë matjes së temperaturës nga sensori i brendshëm (shtëpia).

Një bateri 6F22 9V ("Krona") përdoret si energji elektrike; moduli i radiotransmetuesit A1 furnizohet drejtpërdrejt nga bateria. Për të fuqizuar mikrokontrolluesin, përdoret një stabilizues i tensionit me mikrofuqi 5V DA1 (MCP1702); konsumi i rrymës së vetë stabilizatorit është vetëm 1-2 µA, rryma maksimale e ngarkesës është deri në 250 mA. Stabilizuesi MCP1702 mund të zëvendësohet me LP2950, ​​konsumi aktual i të cilit është më i lartë dhe është 75 μA. Stabilizuesit konvencional të tensionit të llojit L78xx kanë një konsum të lartë të rrymës prej disa miliamp, dhe për këtë arsye nuk janë të përshtatshëm për pajisjet me bateri. Konsumi aktual i pajisjes në modalitetin e gjumit ndryshon me kalimin e kohës kur kondensatori C4 ngarkohet; për 2,5 minutat e para konsumi është 10 μA, për 2,5 minutat e ardhshme rryma rritet gradualisht derisa të dalë nga modaliteti i fjetjes. Ky fenomen ndodh për shkak të pranisë së rrymave komutuese në buferin e hyrjes së mikrokontrolluesit.

Dua të vërej se në temperatura të ulëta kapaciteti i baterisë zvogëlohet më shpejt; jo të gjitha llojet e baterive mund të përdoren në kushte të tilla. Bateritë e litiumit kanë performancën më të mirë në temperatura negative, të ndjekura nga bateritë Ni-Mh, bateritë alkaline zënë vendin e tretë, qelizat e kripës nuk janë të përshtatshme për kushte të tilla.

Më poshtë është një diagram i një termometri në një mikrokontrollues PIC16F628A.


Ekrani HG1, sensori BK1 dhe mikrokontrolluesi mundësohen nga një tension prej 3.3 V nga stabilizuesi DA2. Kjo vlerë u zgjodh për shkak të karakteristikave të ekranit, voltazhi maksimal i furnizimit i të cilit është 3.3 V; përveç kësaj, nuk ka nevojë të përputhen nivelet e tensionit midis linjave hyrëse/dalëse të ekranit dhe mikrokontrolluesit. Moduli i marrësit A1 mundësohet nga stabilizuesi DA1, me një tension daljeje 5V. Rezistorët R6, R7 janë instaluar që të përputhen me nivelet e tensionit.

Mikrokontrolluesi DD1 lexon vlerën e temperaturës nga sensori BK1 çdo 2 sekonda, paralelisht merr një sinjal nga marrësi dhe kur merret një paketë bajtesh nga transmetuesi, LED HL1 pulson. Në krye të ekranit shfaqet mbishkrimi "Home", nën të cilin shfaqet vlera e temperaturës nga sensori i brendshëm (shtëpia), nën mbishkrimin "Rruga" dhe temperatura e marrë nga sensori me valë. Pas marrjes së të dhënave përmes kanalit të radios, mikrokontrolluesi nis një kohëmatës që numëron mbrapsht kohën për të kontrolluar marrjen e të dhënave. Nëse të dhënat nuk janë marrë gjatë periudhës së numërimit mbrapsht të kohëmatësit, në vend të leximeve të temperaturës, në ekran shfaqen simbolet e vizës “- – – – –”. Koha e numërimit mbrapsht mund të caktohet nga 1 deri në 15 minuta me hapa një minutë. Për ta bërë këtë, përpara se të programoni mikrokontrolluesin, duhet të shkruani një numër nga 1 në 15 në qelizën EEPROM me adresën 0x00. Periudha e paracaktuar është 7 minuta. Nëse sensorët BK1 nuk funksionojnë mirë, për të dyja pajisjet, në vend të vlerës përkatëse të temperaturës, shfaqet mesazhi "GABIM". Butoni SB1 kontrollon dritën e prapme të ekranit; si parazgjedhje, drita e prapme është e ndezur. Butoni SB2 është krijuar për të rregulluar kontrastin e ekranit, pasi mund të ndryshojë nga një model në tjetrin.

Një burim energjie i pastabilizuar me një tension dalës 8-12 V është i përshtatshëm për të fuqizuar pajisjen. Të dy pajisjet janë të vendosura në kuti plastike. Antena për modulet e radios është bërë në formën e një pjese teli me një bërthamë 17 cm të gjatë (një e katërta e gjatësisë së valës së frekuencës së bartësit).





Termometër me dy kanale i bazuar në mikrokontrolluesin ATmega8 dhe sensorët DS18B20

Karakteristikat e termometrit:
— 2 kanale për matjen e temperaturës aktuale, sensorët janë të lidhur me pjesë të ndryshme të portës së mikrokontrolluesit
— çdo kanal ju lejon të matni temperaturën aktuale në rangun nga +125 ºС deri në -55 ºС me një rezolucion deri në 0,1 ºС
- gabimi i matjes së temperaturës ±0,5 ºС
- zbulimi dhe treguesi i gabimeve të mundshme në punën me sensorët e temperaturës
— Intervali aktual i matjes së temperaturës — 2 sekonda

Të dashur lexues të faqes!
Nëse jeni të interesuar posaçërisht për hartimin e një termometri me dy kanale, atëherë unë mund të rekomandoj përdorimin e firmuerit për dizajnin për të ndezur mikrokontrolluesin (këtu është një kod më i optimizuar dhe "i kombinuar")

Sot, në vazhdim të zhvillimit të projektit në ATmega8, ne do të shikojmë dizajnin e " Termometër me dy kanale me sensorë të temperaturës DS18B20«.
Dizajni i sjellë në vëmendjen tuaj është i thjeshtë, përmban një minimum pjesësh dhe nuk kërkon konfigurim.

(Dëshiroj t'ju paralajmëroj menjëherë se koha nuk qëndron ende dhe pas publikimit të artikullit u finalizua programi i termometrit - u bënë tre ndryshime: në punë përdoret vetëm një kohëmatës T0, frekuenca e orës së brendshme të mikrokontrolluesi u rrit në 8 MHz, algoritmi për përcaktimin e të dhjetave të temperaturës u ndryshua (tani të dhjetat nuk llogariten, por marrin një vlerë në varësi të numrit të shkruar në gërvishtjen e ulët të regjistrit të kafshimit LS. Programi i ri është postuar më poshtë një i përshkruar në këtë artikull))

Temperatura aktuale tregohet në dy tregues LED me shtatë segmente treshifrore, me:
- temperatura nën +100 ºС - treguesi kryhet në tre shifra me një saktësi prej të dhjetave
- temperatura mbi +99,9 ºС - treguesi kryhet në tre shifra me një saktësi prej një shkalle
- temperatura mbi -10 ºС - kryhet treguesi: shifra e parë është shenja "-", shifra e dytë dhe e tretë janë njësi dhe dhjetëra gradë
- temperatura nën -9,9 ºС - kryhet treguesi: shifra e parë është shenja "-", shifra e dytë dhe e tretë janë dhjetëra dhe njësi gradë
- zero të parëndësishme nuk shfaqen
Nëse ndodhin gabime të mundshme kur punoni me sensorë të temperaturës, në treguesit shfaqet sa vijon:
- nuk ka nivel të lartë në linjën DQ të sensorit - "Er1"
- pa puls prezence nga sensori - "Er2"
- pas pulsit të pranisë, linja DQ nuk u kthye në gjendjen logjike "1" - "Er3"
Tregimi i gabimit lejon që defektet të identifikohen dhe korrigjohen në kohën e duhur.

Diagrami i një termometri me dy kanale të bazuar në sensorët ATmega8 dhe DS18B20:


Pjesët e përdorura në projektimin e termometrit

Mikrokontrolluesi ATmega8-16PU me një frekuencë të brendshme të orës 4 MHz.
Treguesit— Treguesit LED me shtatë segmente treshifrore me qark komutues "katodë të përbashkët".
Transistorët— Strukturat “NPN” BC547 (tranzistorët mund të zëvendësohen me çdo strukturë tjetër NPN me fuqi të ulët).
Rezistenca të vazhdueshme- çdo lloj, fuqi 0,25 W, afër vlerësimeve të treguara në diagram.
Sensorët— Sensorët e temperaturës DS18B20. Rezolucioni është vendosur "si parazgjedhje" - 12 bit, që korrespondon me një rezolutë të matjes së temperaturës prej 0,0625 ºС.

Sensorët komunikojnë me mikrokontrolluesin nëpërmjet një autobusi me 1 Tela, e cila lejon, në parim, të "vendosin" sensorët në të njëjtën linjë. Në modelin e paraqitur, sensorët janë të lidhur me pjesë të ndryshme të portës "PB" (përkatësisht 6 dhe 7) për tre arsye:
— nëse është e nevojshme të hapni sensorë në drejtime të ndryshme, vendosja e linjave lidhëse thjeshtohet
- programi është thjeshtuar - nuk ka nevojë të përcaktohen kodet 64-bit të sensorëve, dhe në përputhje me rrethanat zvogëlohet koha e shpenzuar për komunikimin me sensorët (gjë që është e rëndësishme në këtë dizajn kur shfaqen në mënyrë dinamike 6 shifra të treguesve)
- dhe kështu i gjithë porti mbetet i papërdorur
Kontrolli ciklik i tepricës (CRC) nuk është i përcaktuar - në këtë dizajn, nuk shoh asnjë pikë për të kontrolluar transmetimin e saktë të rezultateve të konvertimit të temperaturës nga sensorët.
Në distanca të mëdha midis sensorëve dhe njësisë kryesore, mund të jetë e nevojshme të zgjidhni rezistorët tërheqës (nga 1 në 5 kOhm). Mund të jetë më mirë t'i lidhni këto rezistorë direkt me sensorët.

Struktura mundësohet nga një burim i stabilizuar 5 volt. Si burim energjie, mund të përdorni një karikues të panevojshëm celular me një tension daljeje prej 5 volt.

Funksionimi i termometrit

Programi i termometrit me dy kanale është shkruar në mjedisin Algorithm Builder


Programi përdor dy kohëmatës të mikrokontrolluesit ATmega8 - T0 dhe T1, të cilat janë konfiguruar për të thirrur ndërprerje kur numëruesit tejmbushin.
Kur pajisja ndizet, bëhen cilësimet paraprake për portat e mikrokontrolluesit të përfshirë në funksionim, të dhënat e nevojshme futen në variabla dhe aktivizohen ndërprerjet, më pas programi kalon në një lak të pafund. Në të ardhmen, i gjithë funksionimi i pajisjes kryhet me ndërprerje nga kohëmatësit T0 dhe T1.
ku:
Kur përpunoni një ndërprerje nga kohëmatësi T0:
- tregues dinamik i vlerave aktuale të temperaturës në treguesit LED
— lexim alternativ i të dhënave nga sensorët e temperaturës
— llogaritja dhe konvertimi i temperaturës për shfaqjen në tregues
Kur përpunoni një ndërprerje nga kohëmatësi T1,
— dërgimi në mënyrë alternative i një komande për konvertimin e temperaturës me sensorë (me një frekuencë prej 1 sekonde)
Ndarësit e frekuencës së kohëmatësit në frekuencën e brendshme të mikrokontrolluesit prej 4 MHz janë konfiguruar këto:
- T1 - SK/64 - thirrja e ndërprerjes ndodh pothuajse pas 1 sekonde
— T0 — cilësimi i frekuencës së ndarësit për kohëmatësin duhet të jetë SK ose SK/8 — 512 mcs ose 64 mcs — jo kritik (por jo më pak se 2 ms). Kjo për faktin se koha e përpunimit të ndërprerjes nga kohëmatësi T1 është e barabartë me kohën që i duhet sensorit për të kthyer temperaturën (sipas fletës së të dhënave, me rezolucion 12 bit, koha maksimale e konvertimit është 750 ms, në realiteti është shumë më i shpejtë)

Për të përditësuar më shpesh temperaturën aktuale Mund të vendosni oshilatorin e brendshëm të mikrokontrolluesit në një frekuencë prej 8 MHz dhe të vendosni ndarësit e frekuencës së kohëmatësit:
— T0 — SK/64 (frekuenca e thirrjes së ndërprerjes është rreth 2 ms)
- T1 - SK/64 (frekuenca e thirrjes së ndërprerjes është rreth 0,5 sek)
e cila do t'ju lejojë të përditësoni temperaturën aktuale nga sensorët çdo sekondë. Komandat më të shpeshta për të kthyer temperaturën në sensorë mund të çojnë në ngrohjen e tyre dhe, në përputhje me rrethanat, në një rritje të gabimit të matjes.

Nëse jeni "miq" me programin "Algorithm Builder". atëherë mund të konfigurohet që të përditësojë vazhdimisht temperaturën aktuale, menjëherë pasi temperatura të konvertohet nga sensori. Për ta bërë këtë ju duhet të bëni sa më poshtë:
1. Çaktivizo kohëmatësin T1
2. Çaktivizo rutinën e përpunimit të ndërprerjeve nga kohëmatësi T1 (nuk duhet ta çaktivizosh)
3. Përfshi një pjesë të "kodit gri" në një "lak të pafund"
Është e mundur që për të parandaluar dridhjen e treguesve, frekuenca e orës së mikrokontrolluesit do të duhet të rritet në 8 MHz
4. Vendosni ndarësin e frekuencës së kohëmatësit T0 në një frekuencë ndërprerjeje prej të paktën 2ms

Nëse treguesit ende dridhen, provoni të "luani" me komandat NOP në fillim dhe në fund të lakut të pafund - shtoni ose hiqni. P.sh.


Një pjesë e kodit të programit është çaktivizuar; synon të zvogëlojë rezolucionin e sensorëve. Për të ndryshuar rezolucionin e konvertuesit të temperaturës duhet:
1. Përfshini një pjesë të kodit në faqen kryesore dhe nënprogramin për ndryshimin e rezolucionit në skedën "DS18B20":

2. Aktivizo konstantet e theksuara me të kuqe në skedën "DS18B20":

Qëllimi i konstantave:
- Read_Scratchpad - Komanda e funksionit DS18B20 ($4E). Kjo komandë lejon pajisjen e kontrollit të shkruajë 3 bajt të dhëna në memorien DS18B20. Bajt i parë i të dhënave shkruhet në regjistër (TH), bajt i dytë shkruhet në regjistër (TL), bajt i tretë shkruhet në regjistrin e konfigurimit
— TH dhe TL — Regjistrat e alarmit të kufirit të sipërm dhe të poshtëm, konstante b#01010101 — korrespondon me 85 ºС (siç është vendosur në sensorë si parazgjedhje)
bit 11— regjistri i konfigurimit, duke shkruar konstanten b#01011111 do të ndryshojë rezolucionin nga 12 në 11 bit, gjë që do të përgjysmojë kohën e konvertimit të temperaturës së sensorëve. Për rezolucionin 10-bit - b#00111111, për rezolucionin 9-bit - b#00011111
3. Ndryshoni numrin 625 në nënprogramin e llogaritjes së temperaturës në skedën "DS18B20" në numrin e rezolucionit të matjes së temperaturës për rezolucionin përkatës (125, 25, 5) dhe numrat përkatësisht 1000 dhe 999 (për 125 - 1000 dhe 999, për 25 - 100 dhe 99, për 5 - 10 dhe 9)

Nëse keni ndonjë pyetje, shkruani, unë do t'ju përgjigjem.

Shtojcat e artikullit:

(50,6 KiB, 26,984 goditje)

Shperndaje te:

Kohët e fundit, në literaturën radio amatore janë botuar shumë përshkrime të dizajneve të ndryshme në mikrokontrollues, më shpesh të familjes picmicro nga mikroçipi. Pa ia hequr meritat e tyre, autori vendosi të kujtojë se ka mikrokontrollues të tjerë dhe bëri pajisjen e propozuar në njërën prej tyre - AT89C2051 nga familja mcs-51.

Mikrokontrolluesit e familjes MC5-51 janë kampionët e padyshimtë midis tetë-bitëve si në numrin e varieteteve ashtu edhe në numrin e kompanive që prodhojnë modifikimet e tyre. Përfaqësuesi i parë i kësaj familjeje, Intel 8051, u lëshua në vitin 1980. Për kohën e tij, ky ishte një produkt shumë kompleks. Ka 128 mijë transistorë në çipin e tij, katër herë më shumë se në mikroprocesorin Intel 8086, bazë për kompjuterët personalë ibm pc. Një grup i suksesshëm i pajisjeve periferike, aftësia për të punuar me memorien e programit të jashtëm dhe të brendshëm dhe një çmim i përballueshëm i siguruan mikrokontrolluesit Intel 8051 sukses të madh. Një rol të rëndësishëm luajti politika e hapur e Intel, e cila shpërndau gjerësisht licencat për prodhimin e pajisjeve me bërthamën 8051 midis kompanive kryesore gjysmëpërçuese në botë: philips, siemens, intel, atmel, dallas. temic, ow. amd, mhs, lg (winbond, sistemet e silikonit dhe një sërë të tjerash. Në BRSS, mikrokontrolluesit e familjes msc-51 u prodhuan në Kiev (1816BE31. 1816BE51), Voronezh (1830BE31, 1830BE51), Minsk (BEZ18) dhe Minsk (183) (1850BE31).
Sot, më shumë se 200 modifikime të mikrokontrolluesve të kësaj familjeje prodhohen në të gjithë botën, duke filluar nga 20-pin e thjeshtë në 100-pin komplekse me ADC të integruara, numërues të shumtë kohëmatës, shumëzues harduerësh dhe 64 KB memorie programore në një. çip i vetëm. Ata të gjithë kanë një sistem komandimi të përbashkët dhe, nga këndvështrimi i një programuesi, ndryshojnë vetëm në numrin e regjistrave për qëllime të veçanta.
Kur autori kishte nevojë të mbronte bodrumin e garazhit nga ngrirja duke monitoruar dhe rregulluar nga distanca temperaturën në të, mikrokontrolluesi at89c2051-24pi nga familja e përmendur u zgjodh për njësinë e matjes së temperaturës dhe kontrollin e ngrohësit. Për shkak të mungesës së memories jo të paqëndrueshme të të dhënave në të për të ruajtur informacionin rreth modalitetit të caktuar dhe vlerave të lejuara të temperaturës, ishte e nevojshme të përdoret një çip i veçantë memorie jo i paqëndrueshëm në 24c02-10pi. Të dy çipat janë krijuar për të funksionuar në "industrial ” diapazoni i temperaturave të ambientit (-40...+85 ° C) .
Zgjedhja u ndikua gjithashtu nga fakti se kostoja totale e këtyre mikroqarqeve në një nga kompanitë tregtare të Moskës është gjysma e çmimit të mikrokontrolluesit popullor pic16f84a-04i/p, që funksionon në të njëjtin interval të temperaturës.

Karakteristikat kryesore teknike
Lloji i sensorit ds1820 ose ds18b20
Temperatura e matur, °C
maksimale+99.9
minimale- 55
Rezolucioni i leximit, "C 0.1
Temperatura e mbajtur C
maksimale+99,9
minimale0
Konsumi i kohës për futjen e një vlere të re të temperaturës së ruajtur, s.
jo më15

Diagrami i paraqitur në Fig. 1 është bërë pothuajse klasik për pajisjet mikrokontrolluese për këtë qëllim. Mikrokontrolluesi dd1 ngarkohet me programin e paraqitur në tabelë.


Kapaciteti i ngarkesës së daljeve të mikrokontrolluesit të përdorur është 20 mA në një nivel të tensionit të ulët në to dhe vetëm 50 μA në një nivel të tensionit të lartë; prandaj, treguesit LED me shtatë elementë hg1 dhe hg2 zgjidhen me anoda të zakonshme. Për të reduktuar numrin e kunjave të mikrokontrolluesit të nevojshëm për lidhjen e treguesve, një ekran dinamik organizohet në mënyrë programore me një kohëzgjatje ekrani prej 3 ms. Elementi g (shenja minus) i treguesit hg1.1 lidhet në vend të elementit h (pika dhjetore) të treguesit hg1.2. kështu që treguesi është në të vërtetë treshifror, cikli i plotë i tij zgjat 9 ms.
Shpesh, gjatë marrjes së leximeve të sensorit, llogaritjes së temperaturave, shkrimit të të dhënave në eeprom dhe operacioneve të tjera relativisht të gjata, ekrani dinamik pezullohet, i cili perceptohet si tregues dridhje. Për të eliminuar këtë fenomen të pakëndshëm, programi është optimizuar dhe funksionon me një lidhje strikte me tempin e ekranit.
Rezistorët r7-r14 kufizojnë rrymën e katodave të treguesve hg1 dhe hg2. Transistorët vt1, vt2, vt4 ndërrojnë anodat e tyre, duke u lidhur nga ana tjetër me pozitivin e burimit të energjisë. Rezistorët r1, r2 kufizojnë rrymën në rast të qarqeve të shkurtra aksidentale të telave që shkojnë te sensorët VK1 dhe VK2, gjatësia e të cilave mund të arrijë disa metra. Meqenëse këto tela mund të vendosen në afërsi të kabllove të energjisë, hyrjet P3.2 të mikrokontrolluesit dd1 dhe SCL të çipit të memories ds1 mbrohen nga zhurma e mundshme e impulsit nga diodat vd5 dhe vd6. Përdorimi i të njëjtit pin mikrokontrollues për komunikimin me sensor dhe menaxhimin e kujtesës është i mundur sepse këto funksione nuk ekzekutohen kurrë në të njëjtën kohë. Rezistenca r4 është një ngarkesë për linjën e ndërfaqes me 1 tela, sipas së cilës komandat dhe të dhënat shkëmbehen midis mikrokontrolluesit dhe sensorit.
Rezistenca r3 ruan një nivel të lartë logjik në hyrjen RZ.Z të mikrokontrolluesit kur asnjë nga butonat e kontrollit sb1-sb3 nuk shtypet. Diodat vd7-vd9 eliminojnë pasojat e shtypjes së disa butonave në të njëjtën kohë. Transistori vt3, sipas komandave të mikrokontrolluesit, ndez dhe fik rele K1, i cili kontrollon ngrohësin (ose aktivizuesin tjetër) dhe sinjalin LED hl1. Dioda vd10 mbron LED hl1 nga tensioni i kundërt.
LED hl2, i lidhur në vend të elementit h të treguesit hg2.2, shërben si një tregues shtesë. Për shembull, fiket kur shfaqen leximet e sensorit VK1 në tregues dhe ndizet kur shfaqen leximet e sensorit VK2.
Njësia e furnizimit me energji elektrike të pajisjes përbëhet nga një ndreqës në një urë diodë vd1 -vd4 dhe një stabilizues i tensionit +5 V da1.
Sensorët dixhitalë të temperaturës VK1, VK2 - ds1820 ose më moderne ds18s20 - përfshihen në Regjistrin Shtetëror të Instrumenteve Matëse nën nr. 3169-02 dhe, kështu, janë miratuar zyrtarisht për përdorim në Federatën Ruse. Në disa raste kjo është kritike. Sensorët funksionojnë me një tension furnizimi prej 3...5,5 V, duke konsumuar një rrymë prej jo më shumë se 1 μA në modalitetin e gatishmërisë, dhe gjatë leximit të temperaturës dhe gjenerimit të rezultatit (këto procese zgjasin jo më shumë se 750 ms) - afërsisht 1 mA . Rezolucioni i rezultatit të matjes (0,5 C) mund të zvogëlohet duke lexuar vlerat e regjistrave të sensorëve count_remain (pjesa e mbetur pas numërimit) dhe count_perc (numri që korrespondon me një gradë Celsius). Duke i ditur ato dhe leximin e temperaturës (temperatura e lexuar nga sensori në mënyrë standarde), vlera e saj më e saktë mund të llogaritet duke përdorur formulën:

Kjo teknikë sjell diskretitetin e paraqitjes së temperaturës në 0,1 °C.
Secilit shembull të llojeve të mësipërme të sensorëve i caktohet një numër individual unik prej 48 shifrash binare, i ruajtur në ROM-in e tij të brendshëm. Kjo ju lejon të lidhni një numër pothuajse të pakufizuar sensorësh paralelisht, duke bashkëvepruar me secilin prej tyre veç e veç.
Në pajisjen e përshkruar, mikrokontrolluesi së pari dërgon komandën skip_rom (OSSN) te sensorët, duke i udhëzuar ata të kalojnë procedurën për kontrollimin e numrit individual. Më pas, komanda convert_t (44H) fillon procesin e matjes së temperaturës në dy sensorë njëherësh. Pas 750 ms që kërkohen për të përfunduar këtë proces, mikrokontrolluesi lëshon komandën match_rom (55H), shoqëruar me numrin individual të njërit prej sensorëve. Si rezultat, vetëm ky sensor i përgjigjet komandës tjetër read_scratchpad (ARIES) dhe raporton rezultatin e matjes te mikrokontrolluesi. Më pas (pas komandës fillestare të konfigurimit) sekuenca e komandave match_rom dhe read_scratchpad përsëritet për sensorin e dytë.
Mikrokontrolluesi përpunon të dhënat e marra dhe i shfaq ato në tregues. Për lehtësi, zeroja e parëndësishme nuk shfaqet në tregues, dhe shenja minus, nëse është e nevojshme, është ngjitur me shifrën më të rëndësishme në të majtë. Nëse komunikimi me një sensor dështon, gjë që mund të tregojë një sensor të dëmtuar ose të munguar, një mesazh "-dat" do të shfaqet (në formë të stilizuar) në vend të vlerës së temperaturës.
Duke shtypur shkurtimisht butonin sb1, pajisja kalon në shfaqjen e leximeve të sensorit VK1 ose VK2. Nëse e mbani të shtypur këtë buton për më shumë se 5 s, do të aktivizohet mënyra e daljes automatike sekuenciale të leximeve të sensorëve me një periudhë prej 5 s. Dilni nga ky modalitet duke shtypur shkurtimisht të njëjtin buton.
Termostati funksionon gjithmonë sipas leximeve të sensorit BK2. Duke shtypur butonin sb2 në tregues, vlerat e temperaturës thirren në sekuencën vijuese: pragu i poshtëm (kur arrihet, ngrohësi është i ndezur) - pragu i sipërm (kur të arrihet, ngrohësi do të kthehet fikur) - aktuale. Shfaqja e temperaturës së pragut të sipërm në tregues shoqërohet me ndezjen e LED-së hl2.
Ndryshoni vlerën e temperaturës së pragut të shfaqur aktualisht në tregues duke shtypur butonat sbi (në rritje) dhe 5ВЗ (ulje). Hapi i ndryshimit është 0,1 °C. Nëse mbani shtypur butonin përkatës për më shumë se 1 sekondë, vlera do të fillojë të rritet ose të ulet me një shpejtësi prej 30 hapash në sekondë. Nëse asnjë buton nuk shtypet brenda 5 s, pajisja kalon automatikisht në shfaqjen e temperaturës aktuale. Për të fikur termostatin, mjafton të vendosni pragjet e temperaturës të barabarta ose ajo e poshtme të jetë më e madhe se ajo e sipërme.
Para se të filloni të matni temperaturën dhe ta rregulloni atë, pajisja duhet të "regjistrojë" sensorët e lidhur me të - të përcaktojë dhe të mbajë mend numrat e tyre individualë. Për t'u regjistruar, sensorët lidhen një nga një (i dyti duhet të fiket në këtë kohë).
Pasi të ndizni pajisjen, shtypni butonin sb2 dhe mbajeni të shtypur për të paktën 5 s derisa mesazhi i stilizuar "pr1" të shfaqet në tregues. që tregon gatishmërinë për të regjistruar sensorin e lidhur si BK1. Nëse keni nevojë të regjistroni sensorin si BK2, shtypni shkurtimisht butonin sb2, i cili do të shfaqë mesazhin "pr2" në tregues. Me një shtypje tjetër mund të ktheni mesazhin "pr1" në tregues dhe kështu me radhë.
Regjistrimi aktual ndodh pasi shtypni butonin sb1. Nëse nëntë përpjekjet e mikrokontrolluesit për të komunikuar me sensorin, për të përcaktuar dhe mbajtur mend numrin e tij individual janë të pasuksesshme, do të nxirret përfundimi se sensori është i gabuar ose mungon dhe mesazhi "-dat" do të shfaqet në tregues. Pas regjistrimit të suksesshëm, treguesi do të shfaqë vlerën e temperaturës së matur nga sensori i regjistruar. Procedura e përshkruar duhet të ndiqet gjithashtu nëse zëvendësohen një ose të dy sensorët. Të dhënat rreth sensorëve dhe mënyrave të ekranit ruhen në çipin e memories jo të paqëndrueshme ds1.


Termometri-termostati është montuar në një tabelë të qarkut të printuar të njëanshëm me përmasa 75x74 mm, të paraqitur në Fig. 2. Qëllimi i arritjes së densitetit maksimal të montimit dhe dimensioneve minimale të tabelës nuk u vendos gjatë zhvillimit të saj. Në kushte amatore, lehtësia e prodhimit, lehtësia e instalimit dhe konfigurimit janë shumë më të rëndësishme. Natyrisht, duke përdorur elementë me përmasa të vogla dhe montim në sipërfaqe të dyanshme, dimensionet e tabelës mund të reduktohen ndjeshëm. Por kjo nuk do të jepte ndonjë përfitim operacional. Ka shumë hapësirë ​​të lirë ku duhet të instalohet pajisja. Pamja e bordit të montuar dhe të funksionimit është treguar në Fig. 3.

Pajisja mundësohet nga rrjeti elektrik përmes çdo transformatori në rënie me një tension në mbështjelljen dytësore prej 9 V me një rrymë prej 300 mA dhe izolim të mirë të ndërthurjes. Në vend të treguesve LED të dyfishtë jeshil hlec-d512gwb, mund të përdorni çdo tjetër me një anodë të përbashkët, nga njëshifror në katërfish. Natyrisht, me rregullimet e duhura në tabelën e qarkut të printuar.
Diodat 1n4148 zëvendësohen me çdo diodë silikoni me fuqi të ulët, për shembull, seria KD522, dhe diodat 1n4007 zëvendësohen me dioda ndreqës me një rrymë prej të paktën 300 mA, për shembull, seritë KD208 ose KD209. Zëvendësimi i transistorëve KT307A KT502B, KT502G, VS327. Stabilizuesi 7805 mund të zëvendësohet me KR142EN5A ose KR142EN5V shtëpiake. Këshillohet që ta pajisni me një ftohës të vogël. Në vend të mikroqarkut AT24C02, mund të përdorni AT24C01A. Frekuenca e rezonatorit të kuarcit mund të jetë në intervalin 10 ... 12 MHz. Rele K1 - me një dredha-dredha 12 V, një rrymë funksionimi prej 70 mA dhe kontakte të dizajnuara për një rrymë prej 10 A në një tension prej 250 V. Në vend të një rrepe elektromagnetike, mund të përdorni një çelës triac me izolim optik, duke e montuar atë sipas në një qark të ngjashëm me atë të treguar në Fig. 2 në artikullin e S. Koryakov "Termometer me funksion kohëmatësi ose kontroll termostati" (Radio. 2003, Nr. 10, f. 26-28).
Pajisja vendoset në një strehë të bërë nga materiali izolues me lidhës për lidhjen e sensorëve (lidhës audio me tre kunja me një diametër prizë prej 3.5 mm janë të përshtatshëm), një rrjet dhe një ngrohës.

Seksioni: [Pajisjet në mikrokontrolluesit]
Ruani artikullin në:
Lini komentin ose pyetjen tuaj:

Artikujt më të mirë mbi këtë temë