Hőmérő magas hőmérséklet mérésére mikrokontrolleren. Kétcsatornás hőmérő ATmega8 mikrokontroller és DS18B20 érzékelők alapján

Rögtön megjegyezném, hogy a nyomtatott áramköri lapot és a dizájnt azzal az elvárással tervezték, hogy egy falra szerelhető kompakt készülék készüljön.

A készülék egy gombbal vezérelhető. A mikrokontroller programja C nyelven íródott, megjegyzésekkel ellátva, és a felhasználók a konkrét feladataiknak megfelelően módosíthatják, vagy bővíthetik a funkcionalitást. Az LCD kijelző vezérléséhez a kész Peter Fleury könyvtárat használjuk (a letölthető archívum a letöltések részben érhető el). Ezenkívül az adatok Celsius vagy Fahrenheit fokban is megjeleníthetők. A jelző háttérvilágításának vezérlésére több mód is létezik.

Érdemes megjegyezni egy másik fontos pontot is: a készülék vezeték nélküli adatátvitelt végezhet Bluetooth protokollon keresztül egy speciális modul segítségével (opcionális).

Sematikus ábrája

Áramkör-tervezési szempontból a készülék egyszerű, az alkotóelemeket külön fogjuk figyelembe venni.

A hőmérő tápellátása szabványos csatlakozású integrált feszültségszabályozó alapján történik (megfelelő szűrőkondenzátorokkal). A 3,3 V-os AMS1117 feszültségszabályozó benne van az áramkörben, de Bluetooth modul használata esetén használható, mert Az ilyen modulok tápellátása gyakran 3,3 V.

A készülékben használt jelző a HD44780 vezérlő szabványos kétsoros jelzője. A tranzisztort úgy tervezték, hogy a jelző háttérvilágítását a mikrokontroller logikai jeleivel vagy a mikrokontroller PWM jeleivel vezérelje. Az R3 ellenállás korlátozza a tranzisztor bázisán áthaladó áramot, az R1 ellenállás pedig nulla potenciálra húzza a bázist.

A hőmérő alapja egy 8 MHz-es frekvencián működő mikrokontroller, amely az összes környező perifériát vezérli.

A DHT-11 érzékelő egy alacsony költségű hőmérséklet és relatív páratartalom érzékelő, amelyet a projektben kültéri érzékelőként használnak. Nem nagy sebesség és pontosság jellemzi, de alacsony költsége miatt amatőr rádióprojektekben használják. A DHT-11 egy kapacitív páratartalom érzékelőből és egy termisztorból áll. Ezenkívül az érzékelő tartalmaz egy egyszerű ADC-t a páratartalom és a hőmérséklet analóg értékeinek konvertálásához.

Főbb jellemzők:

  • alacsony költségű;
  • tápfeszültség 3 V - 5 V;
  • adatátvitel 1 vezetékes buszon keresztül 20 m távolságig;
  • páratartalom meghatározása 20-80% 5% pontossággal;
  • maximális áramfelvétel 2,5 mA;
  • hőmérséklet-meghatározás 0...50°, 2%-os pontossággal;
  • lekérdezési frekvencia legfeljebb 1 Hz (legfeljebb 1 másodpercenként egyszer);
  • méretek 15,5 × 12 × 5,5 mm;

Meg kell jegyezni, hogy eladó egy DHT-22 érzékelőt, amely ugyanazzal a felülettel, de jobb tulajdonságokkal rendelkezik.

Az érzékelő egy vezetékes buszon (a diagramon JP3 csatlakozó) csatlakozik a mikrokontrollerhez az adatvezetéken lévő felhúzó ellenállás és a tápegység blokkolókondenzátora segítségével.

A belső érzékelő a széles körben használt LM35 IC5 analóg hőmérséklet-érzékelő, amely az ADC mikrokontroller 1. csatornájához csatlakozik.

A mikrokontroller áramköri programozási interfészének J1 csatlakozója lehetővé teszi a programkód gyors megváltoztatását vagy a szoftver frissítését. A hőmérő UART interfészen keresztüli csatlakoztatásához a JP1 csatlakozót kell használni. Az SW1 vezérlőgomb a mikrokontroller külső megszakítási bemenetére csatlakozik, ezt a bemenetet a port belső ellenállása köti össze a tápegységgel.

A vezeték nélküli adatátvitelt szolgáló Bluetooth modul, amelyet az ábrán IC3, GP-GC021 jellemez, szintén csatlakozik a mikrokontroller UART interfészéhez, és lehetővé teszi az adatok átvitelét számítógépre, mobiltelefonra vagy webszerverre. A nyomtatott áramköri lap helyet biztosít a modul beszereléséhez. A letöltési rész tartalmazza a modul leírását, az interakciós folyamatot és a parancsokat.

Az LCD kijelzőt a nyomtatott áramköri lap elülső részére a csatlakozóba szereljük, ezzel elrejti az alaplapra szerelt alkatrészeket, és egy kompakt készüléket kapunk. A Bluetooth modul beszerelésének helye a nyomtatott áramköri lap hátoldalán található (lásd a kártya fotóját).

A kész nyomtatott áramköri lap megjelenése hőmérőhöz


PCB rajz Eagle CAD-ben

Tábla telepített Bluetooth modullal

Letöltések

Sematikus diagram és nyomtatott áramköri lap (Eagle), szoftver (forráskód, firmware) -
Könyvtár a HD44780 vezérlő LCD kijelzőjével való munkához -
Műszaki leírás a GP-GC021 Bluetooth modulhoz -

Vagy analógjai. Az eszközök jó pontossággal, zajtűréssel rendelkeznek, és az analóg megoldásokhoz képest jelentősen leegyszerűsítik az áramkört. Az ilyen érzékelők által mért hőmérsékleti határok általában a -55 és 125 ºС közötti tartományra korlátozódnak. Mi a teendő, ha 125 °C feletti hőmérsékletet kell mérni? Nyilvánvalóan analóg érzékelőket kell használni, amelyek hőmérséklet-tartománya elérheti a +300 °C-ot. Megjegyzendő, hogy ebben az esetben a mérési pontosság csökken. De gyakran a magas hőmérséklet mérésekor nem szükséges tudni a pontos értéket, és több fokos hiba is elfogadható lesz, és ha analóg skálán jelenítik meg, például egy LED-soron, akkor teljesen észrevehetetlen lesz. .

Az eszköz normál működéséhez 0 ... 250 ° C hőmérsékleten egy analóg érzékelőt választottak, amelynek működési tartománya -40 + 300 ° C. Paraméterei ideálisak a kiválasztott hőmérsékleti tartományhoz. Az adatfeldolgozásért a mikrokontroller (MK) a felelős. Természetesen bármelyik másik is megteszi, de úgy tűnik, hogy a szerző szerint ez az MK az egyik legelérhetőbb és legnépszerűbb. A biztosítékok a gyáriak maradtak. A probléma megoldása során a pontos mérés kritériumai a hátsó égőre kerültek. A néhány fokon belüli hiba elég kielégítő volt.

A mérési eredmények digitális megjelenítése

Az adatok digitális megjelenítésére LCD-kijelzőt használnak. Igény esetén a készülék a programkód módosításával frissíthető. Ehhez elegendő szabad I/O port áll rendelkezésre. Az LCD kijelző 4 bites buszon keresztül csatlakozik (1. ábra). A D4 - D7 indikátor magasabb rendű számjegyei a mikrokontroller alacsony rendű D0 - D4 számjegyeihez csatlakoznak. Mivel ebben az eszközben nincsenek pontos időzítések, nincs szükség külső fő kvarc rezonátorra. A kijelző vezérlőtüskéi a PB6 és PB7 portokhoz csatlakoznak. Mint látható, az összes kijelző vezérlővonala az MK ház egyik oldaláról lép ki, ami leegyszerűsíti a nyomtatott áramköri lap nyomon követését.

A hőmérsékleti érték kiszámítása

Az 1. ábrán látható, hogy az analóg hőmérséklet-érzékelő közvetlenül a mikrokontroller ADC bemenetére csatlakozik. Műveleti erősítő használata esetén a mérési hiba kisebb lenne. A feszültséget az ADC egy termisztorból és egy változtatható ellenállásból álló osztón keresztül táplálják. A jobb hangolási pontosság érdekében a változtatható ellenállás többfordulatú.

Asztal 1. Az ellenállás hőmérséklettől való függése.

Hőmérséklet ºС

Ellenállás Ω

Az 1. táblázat (2. ábra) alapján a Mathcad programban egy grafikont készítve láthatja az analóg érzékelő ellenállásának az alkalmazott hőmérséklettől való függését. A táblázat forrásadatai a KTY84_130 műszaki leírásából származnak. A funkció szinte lineáris, magas hőmérsékleten csak csekély eltéréssel.

0 ºС mért hőmérsékleten a termisztor ellenállása 498 Ohm. Az osztó kimenetén a feszültség

  • U D - feszültség a hőmérséklet-érzékelőn a testhez viszonyítva,
  • U PIT - tápfeszültség,
  • RD - hőmérséklet-érzékelő ellenállása,
  • R 1 - a változó ellenállás beállítása.

0 ºС hőmérsékleten az ADC bemenet feszültségének 0,6 V-nak kell lennie. A hőmérsékleti érték kiszámításához a szerző a következő képletet használta:


  • ADC - 10 bites digitális ADC kód az érzékelőből,
  • U OTC - küszöbérték (60), 0,6 V 0 ºС-on.

A mért hőmérsékleti tartomány 0 ºС és 250 ºС között megfelel az osztóból származó ADC bemeneti feszültségeknek 0,6 és 1,8 V között. Az ADC referenciafeszültsége 5 V, ezért a jelzett értékek mellett a digitális kód a a 123 és 368 közötti tartomány. Ezt a számot a rendszer elhelyezi a regiszterben, és háromjegyű ASCII-kóddá alakítja. Mivel a KTY84_130 érzékelőt 300 ºС maximális hőmérsékletre tervezték, jobb, ha hagy egy kis tartalékot, és 250 ºС-ra korlátozza.

Az 5. ábra a kenyérsütődeszkára szerelt eszközt mutatja. A programkód nyitott, és bárki könnyedén módosíthatja a saját igényei szerint.

MK szoftver és virtuális modell Proteus LCD 16×2-hez -

MK szoftver és virtuális modell Proteus LCD 8×2-hez -

A hőmérő működésének leírása

Ennek a hőmérőnek az a célja, hogy a hőmérsékletet mutassa. Kis különbségek a többi hasonló sémához képest csak a LED-jelző hőmérséklet-kimenetének formátumában vannak, amely egy 4 számjegyű szuperfényes CA04-41SRWA. A DS18B20 hőmérséklet-érzékelőként használható normál csatlakozásban, külön tápvezetékkel.

Az áramkört akkumulátoros táplálásra tervezték, így a tápfeszültség bekapcsolásakor a jelző nem mutat semmit. A hőmérő program inicializáláson megy keresztül, és azonnal alvó üzemmódba lép. A mikrokontroller alvó üzemmódja lehetővé teszi, hogy energiát takarítson meg a tápegységből. Ha megnyomja a PORTB0-hoz csatlakoztatott gombot, a jelzés bekapcsol.
Az indikátor egy tippet jelenít meg:



Ezután maguk a hőmérsékleti értékek jelennek meg a kijelzőn.



Az olvasási kimenet típusa a következő:






A kimenet alakja csak alacsony pozitív hőmérsékleten tér el. Ilyen hőmérséklet jelzésekor a „C” jel hozzáadódik a „fok” szimbólumhoz. Azaz Celsius-fok A „fok” szimbólum minden mért hőmérsékleten megjelenik a kijelzőn.

A DS18B20 hőmérséklet-érzékelő 0,0625 Celsius fokos felbontással méri a hőmérsékletet. A hőmérő leolvassa az érzékelő leolvasását, és a legközelebbi tized fokra kerekíti. A -10 Celsius-foknál alacsonyabb hőmérsékletek kivételével minden megjelenítési módban a tized fok látható. Ez azért történik, hogy a negatív hőmérsékleti értékek mindig mínuszjellel rendelkezzenek.

A mért értékek 30 másodpercig megjelennek a kijelzőn. Ezután a készülék ismét alvó üzemmódba lép, és a jelzőfény kialszik.


Hőmérő modellezése Proteusban


A Proteus modell lehetővé tette a hőmérő szoftveres részének kidolgozását anélkül, hogy magát a készüléket hardveresen összeszerelték volna. Minden módot teszteltek. A programban nincsenek szimulációs hibák.



Maga a modell letölthető a következő linkről: termo_i_v2.DSN

A hőmérő sematikus diagramja


Az áramkör megrajzolása a nyomtatott áramköri lap tervezése alapján történik. Először a nyomtatott áramköri lap bekötését úgy végezték el, hogy a vezetők hossza és az alkatrészek elhelyezkedése optimális legyen, és csak miután a nyomtatott áramköri lapon lévő PIC16F628A mikrokontroller portjai megfeleltek a CA04-41SRWA jelző érintkezőinek, pontos kapcsolási rajz készült.


Hőmérő áramköri lap


Jó napot, kedves olvasók. Ahogy a cikk címe is sugallja, egy PIC-re szerelt hőmérőről lesz szó. Így. Miért és hogyan kezdődött az egész?!
Szükségem volt egy egyszerű hőmérő diagramjára a garázs alagsorához. Elkezdtem keresni egy megfelelő sémát az interneten. Fontos kritérium volt a minimális számú elem használata az áramkörben. Azonnal elmondom, hogy rengeteg ilyen hőmérő áramkör van az interneten. De! Leggyakrabban AVR-eken készülnek, amelyekkel, legnagyobb sajnálatomra, nem vagyok barátok. Szóval elkezdtem keresni egy PIC áramkört. De még itt is csalódtam. Vannak vázlatok a PIC hőmérőkhöz. De vagy tranzisztorokat használnak az indikátorokhoz, vagy külső kvarcot, vagy valami mást, ami bonyolította az áramkört, és az én esetemben elfogadhatatlan volt. Végül hosszas keresgélés után itt találtam egy számomra megfelelő sémát:

http://www.labkit.ru/html/show_meter?id=38
És ezt többször sikeresen megismételték. Minden remekül működik. (az áramkör szerzőjének webhelyén megtalálható a firmware és a nyomtatott áramköri kártya a hőmérő replikálásához). Ahogy telt az idő. És egy szép alkalommal először világossá váltak ennek az áramkörnek a hiányosságai, és egy Common Cathode-os indikátort is kellett használnom (a szerző honlapján a firmware csak a Common Anode-hoz volt). Most a séma hiányosságáról az eredeti forrásban. Kezdetben a szerző áramköre nem tartalmaz felhúzó ellenállást a hőmérséklet-érzékelőhöz. Vagyis nincs 4,7K ellenállás az áramkörben. Igen, valóban, az áramkör ilyen kialakításával a hőmérő működhet, de csak akkor, ha a hőmérséklet-érzékelő közvetlenül a táblába van forrasztva, vagy a vezeték hossza, amelyen az érzékelő található, nem haladhatja meg az egy méter vezetékhosszt. , másfél méter. Nem több. Ellenkező esetben a jelző valami értelmetlenséget kezd mutatni, nem a hőmérsékletet.
Ez a fordulat egyáltalán nem tett boldoggá. Mert legalább 10 méter kellett a vezeték hosszának az érzékelővel.
Ezt a problémát nagyon egyszerűen és gyorsan megoldották, mégpedig úgy, hogy egy 4,7K-os felhúzó ellenállást szereltek az érzékelőre. Ezután az érzékelő stabilan működni kezdett bármilyen hosszúságú vezetéknél. De mi van, ha csak közös katóddal rendelkező indikátoraim vannak! És a firmware az anódhoz készült... Itt Stanislav Dmitriev segített nekem. Amiért nagyon hálás vagyok neki. Nem csak a közös anód firmware-jét írta. De közös katódhoz és különböző típusú hőmérséklet-érzékelőkhöz is (DS18S20 vagy DS18B20). Ez lehetővé tette a rendszer további egységesítését. És ajánlom ismétlésre. Az áramkörben négybites hétszegmenses és hárombites hétszegmenses eszközök is használhatók. Ami nem nagy dolog, de azért plusz.
Most maga az áramkör

Amint láthatja, a diagram nem különbözik a http://www.labkit.ru webhelyen bemutatotttól
Eredetileg így tervezték. Az egyetlen változás az áramkörben egy további ellenállás felszerelése. A diagramot nem a semmiből rajzoltam át. Csak hozzáadtam az áramkör hiányzó elemét. Lényegében, ha az áramkört még jobban le szeretnéd egyszerűsíteni, és stabil 5V-os áramforrásod van, akkor a lineáris stabilizátort kizárhatod az áramkörből. Az MK-t pedig közvetlenül 5 V-ról táplálják.
Most beszéljünk egy kicsit arról, hogyan szabhatja testre a firmware-t a szükséges indikátorhoz vagy érzékelőhöz. Itt minden egyszerű.

Miután betöltötte a firmware fájlt a programozóba, Ön maga: a szükséges paraméterek alapján, és megnézi ezt a képernyőképet, írja be a szükséges paramétereket a firmware fájlba az EPROM szakaszban. Utána villoghat a kontroller.

Az én nyomtatott áramköri lapom verziójában a kártya nem csak egy lineáris stabilizátornak, hanem egy diódahídnak is helyet biztosít (amely lehetővé teszi az áramkör tápellátását 7,5 V-tól 12 V-ig terjedő feszültséggel. A kártya a beszereléshez is helyet biztosít egy sorkapocs, amely lehetővé teszi, hogy ne forrassza be a hőmérséklet-érzékelőt a táblába, és rögzítse bilincsekkel. Ez kényelmes az érzékelő cseréjekor, vagy az érzékelő hosszú vezetékre történő felszerelésekor.

Táblarajz

Mint látható, a hőmérő két táblára van összeszerelve. Az egyik hétszegmenses (három vagy négy számjegyű) jelzővel van felszerelve. Az áramkör összes többi eleme a második táblára van felszerelve. A táblák fésűvel, vagy esetemben vezetékekkel vannak összekötve egymással.
A végén egy fotó a kész hőmérőmről.

A saját kezűleg összeszerelt digitális hőmérő nem csak a rendeltetésének megfelelően fog szolgálni, hanem mint minden, amit saját kezűleg készítenek, növeli az önbecsülését (és talán néhány éven belül értékessé válik, mint pl. egy emlék).

Kétségkívül hasznos dolog a háztartásban a digitális hőmérő, de nem túl funkcionális: a hőmérséklet mérésén kívül semmi másra nem orientálódik. Ebben a tekintetben a mikrokontroller hőmérője hasznosabb lesz, mivel képes bármilyen terhelést be- és kikapcsolni a hőmérséklet változásaitól függően.

Ha azonban saját kezűleg szeretne valami érdemlegeset csinálni, akkor első lépésként egy ilyen tervezés teljes mértékben indokolt - a megszerzett tapasztalat felbecsülhetetlen.

Kezdésnek tehát válasszuk a legegyszerűbb, PIC16F84A mikrokontrollerre épített hőmérő áramkört, akár 0,5 fokos mérési pontosságú DS18B20 digitális hőmérséklet-érzékelőt és egy négyjegyű, közös anóddal ellátott LED-jelzőt. Az én esetemben az FYQ-3641BG-21E kijelzőt használtam.

Az áramkör előnye az egyszerűség - diszkrét elemekből tucatnyi ellenállásra, több kondenzátorra és egy 4 MHz-es kvarcrezonátorra lesz szükségünk. A fő hátrány az, hogy mint minden elektronikus eszköz, a termosztát is áramforrást igényel.

Az akkumulátorok használata mozgathatóvá teszi a készüléket, de egy elemkészlet élettartama mindössze 1-2 hét lehet. Ha a hőmérőt a hálózati tápegységről táplálja, bármely aljzathoz köti, ami nem mindig kényelmes.

Hozzáteszem, hogy a diagram nem mutatja a mikrokontroller tápellátását - a plusz tápfeszültséget a 14-es érintkezőre, a mínusz tápot pedig a mikroáramkör 5-ös érintkezőjére táplálják.