Dviejų kanalų termometro schema ant mikrovaldiklio. Elektroninis termometras su belaidžiu jutikliu

Paveikslėlyje parodyta termometro schema, pagrįsta mikrovaldikliu PIC16F628A, kaip jutiklis naudojamas DS18B20 skaitmeninis temperatūros jutiklis. Termometro indikatorius susideda iš 4 skaitmenų septynių segmentų indikatoriaus. Išmatuotas temperatūros diapazonas nuo-55 iki + 125 laipsnių Celsijaus. Temperatūra skaitoma kas 15 sekundžių, skaitymo laiką galima keisti kode.

Termometro maitinimo įtampa 5V, srovės suvartojimas 90 mA. Grandinėje naudojami BC337 arba panašūs tranzistoriai. Kiekvieno indikatoriaus segmento srovės suvartojimas yra 15 mA (dinaminis indikatorius), kurį riboja 220 omų rezistoriai (indikatorius su bendru katodu).

Firmware failas -

Skaitmeninis termometras DS18B20 su programuojama skiriamąja geba, nuo 9 iki 12 bitų, kuris gali būti saugomas įrenginio EEPROM atmintyje. DS18B20 keičiasi duomenimis per 1-wire magistralę ir gali būti vienintelis įrenginys linijoje arba dirbti grupėje. Visus procesus magistralėje valdo centrinis mikroprocesorius.

Matavimo diapazonas nuo –55°C iki +125°C ir 0,5°C tikslumas diapazone nuo –10°C iki +85°C. Be to, DS18B20 gali būti maitinamas duomenų linijos įtampa („parazitinė galia“), jei nėra išorinio įtampos šaltinio.
Kiekvienas DS18B20 turi unikalų 64 bitų serijinį kodą, leidžiantį palaikyti ryšį su keliais DS18B20 jutikliais, sumontuotais toje pačioje magistralėje. Šis principas leidžia vienu mikroprocesoriumi valdyti daug DS18B20 jutiklių, paskirstytų dideliame plote. Programos, kurioms gali būti naudinga ši funkcija, apima temperatūros valdymo sistemas pastatuose ir įrenginiuose arba mašinose, taip pat temperatūros procesų stebėjimą ir valdymą.

  • Panašūs straipsniai

Prisijunkite naudodami:

Atsitiktiniai straipsniai

  • 10.10.2014

    Paveikslėlyje parodyta diagrama pirminis stiprintuvas su tonų bloku, tonų blokas įtrauktas į grandinę Atsiliepimas pirminis stiprintuvas. Įrenginio maitinimo įtampa gali svyruoti nuo 12 iki 24 V, srovės suvartojimas ne didesnis kaip 10 mA. Įvesties signalas ateina per sukabinimo kondensatorių C1, rezistoriai R1 ir R2 nustato tranzistoriaus VT1 poslinkio įtampą po išankstinio stiprinimo ...

Aš nusprendžiau padaryti dviejų kanalų termometras, bet ne įprastą, o su bevieliu lauko jutikliu. Idėja tikrai nėra nauja, panašūs pramoniniai termometrai jau yra rinkoje. Kadangi turėjau patirties prijungiant radijo modulius prie mikrovaldiklio, pradėjau kurti savo belaidžio termometro versiją.

Temperatūrai matuoti naudojau įprastus DS18B20 jutiklius, o rodmenims rodyti – ne mažiau populiarų. Radijo modulius ir duomenų perdavimo algoritmą aptariau anksčiau straipsnyje apie

Žemiau yra PIC12F675 mikrovaldiklio belaidžio jutiklio schema.

Įjungus maitinimą, mikrovaldiklis nuskaito temperatūros reikšmę iš jutiklio BK1 ir siunčia šiuos duomenis į radijo siųstuvą A1, po kurio jis persijungia į miego režimą. Mikrovaldiklis atsibunda dėl pertraukimo, kurį generuoja GP0 linijos lygio pasikeitimas. Prie šios linijos prijungta elementų R2 ir C4 RC grandinė, kuri atlieka laikmačio funkciją. Išeinant iš miego režimo, GP0 linija nustatoma į žemą loginį lygį, taip iškraunant kondensatorių C4. Prieš „miegojimą“ linija priderinama prie įėjimo, per rezistorių R4 pradeda krauti kondensatorius, o pasiekus slenkstinę įtampą (apie 1,2V), mikrovaldiklis pertraukiamas ir pažadinamas. Kai diagramoje nurodytos R2 ir C4 reikšmės, pabudimo laikotarpis yra maždaug 5 minutės. Įdiegę trumpiklį JP1, galite sutrumpinti laikotarpį iki 5,5 sekundės. Pasirinkę kondensatorių ir rezistorių, galite reguliuoti norimą periodo laiką, tačiau turite atsižvelgti į kondensatoriaus įkrovimo srovę energijos suvartojimo požiūriu.

Temperatūros reikšmė radijo kanalu perduodama 3 baitų paketo pavidalu, paskutinis baitas yra pirmųjų 2 baitų kontrolinė suma. Duomenų perdavimo algoritmas, kurį naudoju, iš esmės leidžia apsieiti be kontrolinės sumos, tikimybė gauti neteisingus duomenis yra maža. Perdavimo greitis yra 3,3 Kbps. Kiekvieną kartą išmatavus temperatūrą siunčiami 3 paketai baitų, pauzė tarp paketų 10ms, šią perdavimo galimybę naudojau tam, kad padidinčiau imtuvo duomenų priėmimo patikimumą. Taip yra dėl to, kad, matuojant temperatūrą iš vidinio (namų) jutiklio, priimančioji pusė nutraukia signalo priėmimą 4-5 ms.

A1 radijo siųstuvo modulis maitinamas tiesiogiai iš baterijos. Mikrovaldikliui maitinti naudojamas 5 V mikro maitinimo įtampos stabilizatorius DA1 (MCP1702), stabilizatoriaus srovės suvartojimas yra tik 1-2 µA, maksimali apkrovos srovė yra iki 250 mA. MCP1702 stabilizatorius gali būti pakeistas LP2950, ​​kurio srovės suvartojimas yra didesnis ir yra 75 μA. Įprasti L78xx tipo įtampos stabilizatoriai sunaudoja didelę kelių miliamperų srovę, todėl netinka akumuliatoriais maitinamai įrangai. Įrenginio srovės suvartojimas miego režimu laikui bėgant keičiasi, kai kondensatorius C4 kraunasi pirmąsias 2,5 minutės suvartojimas yra 10 μA, kitas 2,5 minutes srovė palaipsniui didėja, kol išjungiamas miego režimas. Šis reiškinys atsiranda dėl to, kad mikrovaldiklio įvesties buferyje yra perjungimo srovių.

Noriu pastebėti, kad esant žemai temperatūrai akumuliatoriaus talpa mažėja greičiau tokiomis sąlygomis. Esant neigiamoms temperatūroms geriausiai veikia ličio baterijos, toliau rikiuojasi Ni-Mh baterijos, šarminės baterijos užima trečią vietą, druskos elementai tokioms sąlygoms netinka.

Žemiau yra PIC16F628A mikrovaldiklio termometro schema.


HG1 ekranas, BK1 jutiklis ir mikrovaldiklis maitinami 3,3 V įtampa iš DA2 stabilizatoriaus. Ši reikšmė pasirinkta dėl ekrano, kurio maksimali maitinimo įtampa yra 3,3V, charakteristikų, be to, nereikia derinti įtampos lygių tarp ekrano įvesties/išvesties linijų ir mikrovaldiklio. Imtuvo modulis A1 maitinamas stabilizatoriumi DA1, kurio išėjimo įtampa yra 5 V. Rezistoriai R6, R7 sumontuoti taip, kad atitiktų įtampos lygius.

Mikrovaldiklis DD1 kas 2 sekundes nuskaito temperatūros reikšmę iš jutiklio BK1, lygiagrečiai gauna signalą iš imtuvo, o kai iš siųstuvo gaunamas baitų paketas, mirksi HL1 šviesos diodas. Ekrano viršuje rodomas užrašas „Home“, po kuriuo rodoma temperatūros reikšmė iš vidinio (namų) jutiklio, po užrašu „Gatvė“ ir iš belaidžio jutiklio gauta temperatūra. Gavęs duomenis radijo kanalu, mikrovaldiklis paleidžia laikmatį, kuris skaičiuoja atgal laiką, kad kontroliuotų duomenų gavimą. Jei per laikmačio atgalinės atskaitos laikotarpį duomenys nebuvo gauti, vietoj temperatūros rodmenų ekrane rodomi brūkšnelių simboliai „- – – – -“. Atgalinės atskaitos laiką galima nustatyti nuo 1 iki 15 minučių vienos minutės žingsniais. Norėdami tai padaryti, prieš programuodami mikrovaldiklį, į EEPROM langelį, kurio adresas yra 0x00, turite įrašyti skaičių nuo 1 iki 15. Numatytasis laikotarpis yra 7 minutės. Jei BK1 jutikliai neveikia, abiejuose įrenginiuose vietoj atitinkamos temperatūros rodomas pranešimas „ERROR“. Mygtukas SB1 valdo ekrano apšvietimą pagal numatytuosius nustatymus, apšvietimas įjungtas. Mygtukas SB2 skirtas reguliuoti ekrano kontrastą, nes jis gali skirtis priklausomai nuo modelio.

Prietaisui maitinti tinka nestabilizuotas maitinimo šaltinis, kurio išėjimo įtampa yra 8-12V. Abu įrenginiai yra plastikiniuose dėkluose. Radijo modulių antena pagaminta iš viengyslio 17 cm ilgio laido gabalo (ketvirtadalis nešlio dažnio bangos ilgio).





Termometras ant PIC16F628A ir DS18B20 (DS18S20) mikrovaldiklio - straipsnis su išsamiu atminties termometro grandinės aprašymu ir, be to, logiškas straipsnio, kurį anksčiau paskelbiau „Yandex“ svetainėje pichobbi.narod.ru, tęsinys. Šis termometras puikiai pasiteisino, todėl buvo nuspręsta jį šiek tiek modernizuoti. Šiame straipsnyje papasakosiu, kokie schemos pakeitimai ir darbo programa, aprašysiu naujas funkcijas. Straipsnis bus naudingas pradedantiesiems. Vėliau perdaryta Dabartinė versija termometras viduje.

PIC16F628A ir DS18B20 (DS18S20) mikrovaldiklio termometras gali:

  • išmatuoti ir rodyti temperatūrą diapazone:
    -55...-10 ir +100...+125 1 laipsnio tikslumu (ds18b20 ir ds18s20)
    -diapazone -9,9...+99,9 0,1 laipsnio tikslumu (ds18b20)
    -riboje -9,5...+99,5 0,5 laipsnių tikslumu (ds18s20);
  • Automatiškai aptikti DS18B20 arba DS18S20 jutiklį;
  • Automatiškai patikrinti jutiklio gedimą;
  • Prisiminkite maksimalią ir mažiausią išmatuotą temperatūrą.

Termometras taip pat leidžia lengvai pakeisti 7 segmentų indikatorių iš OK į indikatorių su OA. Surengta švelni rašymo į mikrovaldiklio EEPROM atmintį procedūra. Šiame straipsnyje aprašytas voltmetras, kuris gerai pasiteisino.

Skaitmeninio termometro ant mikrovaldiklio grandinės schema buvo sukurta patikimam ir ilgalaikiam naudojimui. Visų grandinėje naudojamų dalių trūksta. Šabloną lengva sekti ir jis puikiai tinka pradedantiesiems.

Termometro schema parodyta 1 paveiksle

1 pav. PIC16F628A + ds18b20/ds18s20 termometro schema

Neapibūdinsiu visos termometro schemos, nes ji yra gana paprasta, gyvensiu tik prie savybių.

Naudojamas kaip mikrovaldiklis PIC16F628A iš Microchip. Tai nebrangus valdiklis, kurio taip pat netrūksta.

Skaitmeniniai jutikliai naudojami temperatūrai matuoti DS18B20 arba DS18S20 nuo Maksimo. Šie jutikliai yra nebrangūs, mažo dydžio, o informacija apie išmatuotą temperatūrą perduodama skaitmeniniu būdu. Šis sprendimas leidžia nesijaudinti dėl laidų skerspjūvio, jų ilgio ir kt. Jutikliai DS18B20,DS18S20 gali veikti temperatūros diapazone nuo -55… +125 °C.

Temperatūra rodoma 7 segmentų 3 skaitmenų LED indikatoriuje su bendru katodu (OK) arba su (OA).

Kad indikatoriuje būtų rodoma didžiausia ir mažiausia išmatuota temperatūra, reikia mygtuko SB1. Norint iš naujo nustatyti atmintį, taip pat reikia mygtuko SB1

Mygtuku SA1 galite greitai perjungti jutiklius (gatvė, namas).

Norint perjungti bendrą LED indikatoriaus laidą, reikia trumpiklio. SVARBU! Jei indikatorius yra gerai, nustatykite trukdiklį į žemiausią padėtį pagal diagramą ir lituokite tranzistorius VT1-VT3 pnp laidumas. Jei LED indikatorius yra OA, tada pagal schemą perkeliame trukdiklį į viršutinę padėtį ir lituojame tranzistorius VT1-VT3 su n-p-n laidumu.

1 lentelėje galite pamatyti visą dalių sąrašą ir galimą jų pakeitimą analogu.

1 lentelė – Termometro surinkimo dalių sąrašas
Pozicijos žymėjimas vardas Analogas/pakeitimas
C1, C2 Keraminis kondensatorius - 0,1 μFx50V -
C3 Elektrolitinis kondensatorius - 220μFx10V
DD1 Mikrovaldiklis PIC16F628A PIC16F648A
DD2, DD3 Temperatūros jutiklis DS18B20 arba DS18S20
GB1 Trys 1,5 V AA baterijos
HG1 7 segmentų LED indikatorius KEM-5631-ASR (gerai) Bet koks kitas mažos galios dinaminis indikatorius ir tinkamas prijungimui.
R1, R3, R14, R15 Rezistorius 0,125 W 5,1 Ohm SMD dydis 0805
R2, R16 Rezistorius 0,125 W 5,1 kOhm SMD dydis 0805
R4, R13 Rezistorius 0,125 W 4,7 kOhm SMD dydis 0805
R17-R19 Rezistorius 0,125 W 4,3 kOhm SMD dydis 0805
R5-R12 Rezistorius 0,125W 330Om SMD dydis 0805
SA1 Bet koks tinkamas jungiklis
SB1 Taktiškas mygtukas
VT1-VT3 Tranzistorius BC556B indikatoriui su OK / tranzistorius BC546B indikatoriui su OA KT3107/KT3102
XT1 Gnybtų blokas 3 kontaktams.

Pirminiam skaitmeninio termometro derinimui buvo naudojamas virtualus „Proteus“ modelis. 2 paveiksle galite pamatyti supaprastintą Proteus modelį

2 pav. Proteus mikrovaldiklio PIC16F628A termometro modelis

3-4 paveiksle parodyta skaitmeninio termometro plokštė

3 paveikslas – PIC16F628A mikrovaldiklio termometro spausdintinė plokštė (apačioje) nepatenka į mastelį.

4 paveikslas – PIC16F628A mikrovaldiklio (viršuje) termometro spausdintinė plokštė (viršuje) nekeičiama.

Termometras, surinktos darbinės dalys, pradeda veikti iš karto ir nereikia derinti.

Darbo rezultatas – 5-7 pav.

5 pav. Išvaizda termometras

6 pav. – termometro išvaizda

7 paveikslas – termometro išvaizda

SVARBU! Termometro programinėje įrangoje neįsiūta reklama gali būti panaudota savo malonumui.

Darbo programos pakeitimai:

1 automatinis aptikimas jutiklis DS18B20 arba DS18S20;

2. Perrašymo laikas EEPROM sutrumpintas (jei įvykdoma perrašymo sąlyga) nuo 5 minučių iki 1 minutės.

3. Padidintas taško mirksėjimo dažnis;

Daugiau Išsamus aprašymas Termometro veikimą galite peržiūrėti dokumente, kurį galite atsisiųsti šio straipsnio pabaigoje. Jei nenorite atsisiųsti, tada svetainėje www.pichobbi.narod.ru Prietaiso veikimas taip pat puikiai aprašytas.

Paruošta lenta puikiai tilpo į kinišką žadintuvą (8, 9 pav.).

8 paveikslas – visas kiniško žadintuvo įdaras

9 paveikslas – visas kiniško žadintuvo užpildymas

Vaizdo įrašas – termometro veikimas naudojant PIC16F628A

Ant MK. Jo širdis yra PIC16F628A mikrovaldiklis. Termometro grandinėje naudojamas 4 skaitmenų arba 2+2 LED indikatorius su bendru anodu. Naudojamas DS18B20 tipo temperatūros jutiklis, o mano atveju jutiklio parodymai rodomi 0,5*C tikslumu. Termometras turi temperatūros matavimo ribas nuo -55 iki +125*C, to pakanka visoms progoms. Norint maitinti termometrą, IP su tranzistoriumi 13001 buvo naudojamas įprastas mobiliojo telefono įkroviklis.

PIC16F628A mikrovaldiklio termometro schema:

Norėdami suaktyvinti PIC16F628A programinę-aparatinę įrangą, naudojau „ProgCode“ programą, įdiegdamas ją kompiuteryje ir surinkdamas „ProgCode“ programuotoją pagal gerai žinomą schemą:

Naudojamo mikrovaldiklio kontaktų ir kai kurių kitų panašių MK kontaktų žymėjimas:

Programa ProgCode ir instrukcijos su nuotraukomis žingsnis po žingsnio programinė įranga yra archyvuojami forume. Taip pat yra visi šiai schemai reikalingi failai. Programoje atidarykite ir spustelėkite mygtuką "įrašyti viską" Mano pagamintame įrenginyje, kaip matyti iš nuotraukų, vienu metu surenkami 2 termometrai, viršutinis indikatorius rodo temperatūrą namuose, apatinis indikatorius. rodo temperatūrą lauke. Jis dedamas bet kurioje patalpoje ir jungiamas prie jutiklio ekrane. Medžiaga, kurią redagavo: [)eNiS.

Termometro veikimo aprašymas

Šio termometro paskirtis yra tiesiog parodyti temperatūrą. Nedideli skirtumai nuo kitų panašių schemų yra tik LED indikatoriaus temperatūros išvesties formatu, kuris yra 4 skaitmenų itin ryškus CA04-41SRWA. DS18B20 naudojamas kaip temperatūros jutiklis įprastoje jungtyje su atskiru maitinimo laidu.

Grandinė skirta maitinti baterijomis, todėl įjungus maitinimą indikatorius nieko nerodo. Termometro programa pradedama inicijuoti ir iškart pereina į miego režimą. Mikrovaldiklio miego režimas leidžia taupyti energiją iš maitinimo šaltinio. Paspaudus mygtuką, prijungtą prie PORTB0, indikatorius įsijungia.
Indikatorius rodo užuominą:



Tada indikatoriuje rodomi patys temperatūros rodmenys.



Skaitymo išvesties tipas yra toks:






Išvesties forma skiriasi tik esant žemai teigiamai temperatūrai. Nurodant tokią temperatūrą, prie simbolio „laipsnis“ pridedamas ženklas „C“. Tai yra, Celsijaus laipsniai. Simbolis „laipsnis“ yra ant indikatoriaus esant bet kokiai išmatuotai temperatūrai.

Temperatūros jutiklis DS18B20 matuoja temperatūrą 0,0625 laipsnių Celsijaus raiška. Termometras nuskaito jutiklio rodmenis ir suapvalina juos iki artimiausios dešimtosios laipsnio dalies. Dešimtosios laipsnio dalys rodomos visais rodymo režimais, išskyrus žemesnę nei -10 laipsnių Celsijaus temperatūrą. Tai daroma taip, kad neigiamos temperatūros rodmenys visada turėtų minuso ženklą.

Rodmenys rodomi indikatoriuje 30 sekundžių. Tada prietaisas vėl persijungia į miego režimą ir indikatorius išsijungia.


Termometro modeliavimas „Proteus“.


Modelis Proteus leido mums treniruotis programinės įrangos dalis termometras nesumontuojant paties prietaiso techninėje įrangoje. Visi režimai buvo išbandyti. Programoje nėra modeliavimo klaidų.



Patį modelį galima atsisiųsti iš nuorodos: termo_i_v2.DSN

Termometro schema


Grandinė nubrėžta pagal spausdintinės plokštės konstrukciją. Pirma, spausdintinės plokštės laidai buvo atlikti taip, kad laidų ilgis ir dalių išdėstymas būtų optimalus, ir tik po to, kai spausdintinės plokštės PIC16F628A mikrovaldiklio prievadai atitiko CA04-41SRWA indikatoriaus kaiščius, buvo sudaryta tiksli grandinės schema.


Termometro plokštė


mob_info