Šema dvokanalnog termometra na mikrokontroleru. Elektronski termometar sa bežičnim senzorom

Na slici je prikazan dijagram termometra baziranog na mikrokontroleru PIC16F628A kao senzor se koristi digitalni senzor temperature DS18B20. Indikator termometra sastoji se od 4-cifrenog indikatora sa sedam segmenata. Izmjereni temperaturni raspon od-55 do +125 stepeni Celzijusa. Temperatura se očitava svakih 15 sekundi, vrijeme očitavanja se može promijeniti u kodu.

Napon napajanja termometra je 5V, potrošnja struje je 90 mA. Krug koristi BC337 ili slične tranzistore. Trenutna potrošnja svakog segmenta indikatora je 15 mA (dinamička indikacija), što je ograničeno otpornicima od 220 Ohm (indikator sa zajedničkom katodom).

Firmware fajl -

Digitalni termometar DS18B20 sa programabilnom rezolucijom, od 9 do 12 bita, koji se može pohraniti u EEPROM memoriju uređaja. DS18B20 razmjenjuje podatke preko 1-Wire magistrale i može biti ili jedini uređaj na liniji ili raditi u grupi. Svim procesima na sabirnici upravlja centralni mikroprocesor.

Opseg mjerenja od –55°C do +125°C i tačnost od 0,5°C u rasponu od –10°C do +85°C. Osim toga, DS18B20 se može napajati naponom linije podataka (“parazitsko napajanje”) u odsustvu vanjskog izvora napona.
Svaki DS18B20 ima jedinstveni 64-bitni serijski kod koji mu omogućava da komunicira sa više DS18B20 senzora instaliranih na istoj magistrali. Ovaj princip omogućava da se jedan mikroprocesor koristi za kontrolu mnogih DS18B20 senzora raspoređenih na velikom području. Aplikacije koje mogu imati koristi od ove funkcije uključuju sisteme za kontrolu temperature u zgradama i opremi ili mašinama, kao i praćenje i kontrolu temperaturnih procesa.

  • Slični članci

Prijavite se koristeći:

Slučajni članci

  • 10.10.2014

    Na slici je prikazan dijagram preamp sa tonskim blokom, tonski blok uključen u kolo povratne informacije pretpojačalo. Napon napajanja uređaja može varirati od 12 do 24V, potrošnja struje nije veća od 10 mA. Ulazni signal dolazi kroz kondenzator spojnice C1, otpornici R1 i R2 određuju prednapon tranzistora VT1, nakon prethodnog pojačanja ...

Odlučio sam da uradim dvokanalni termometar, ali ne običan, već sa bežičnim vanjskim senzorom. Ideja svakako nije nova da su slični industrijski termometri već na tržištu. Pošto sam imao iskustvo povezivanja radio modula sa mikrokontrolerom, počeo sam da razvijam sopstvenu verziju bežičnog termometra.

Za mjerenje temperature koristio sam uobičajene senzore DS18B20, a za prikaz očitanja koristio sam ništa manje popularan. Ranije sam raspravljao o radio modulima i algoritmu za prijenos podataka u članku o

Ispod je dijagram bežičnog senzora na PIC12F675 mikrokontroleru.

Nakon uključivanja napajanja, mikrokontroler očitava vrijednost temperature sa senzora BK1 i šalje te podatke radio predajniku A1, nakon čega ulazi u stanje mirovanja. Mikrokontroler se budi prekidom, koji je generisan promjenom nivoa na liniji GP0. Na ovu liniju je spojeno RC kolo na elementima R2 i C4, koje obavlja funkciju tajmera. Prilikom izlaska iz stanja mirovanja, linija GP0 se postavlja na niski logički nivo, čime se kondenzator C4 prazni. Prije prelaska u “sleep” linija se prilagođava ulazu, kondenzator se počinje puniti kroz otpornik R4, a kada se dostigne granični napon (oko 1,2V), mikrokontroler se prekida i budi. Uz vrijednosti R2 i C4 prikazane na dijagramu, period buđenja je otprilike 5 minuta. Instaliranjem džampera JP1 možete smanjiti period na 5,5 sekundi. Odabirom kondenzatora i otpornika možete podesiti željeno vrijeme perioda, ali morate uzeti u obzir struju punjenja kondenzatora u smislu potrošnje energije.

Vrijednost temperature se prenosi preko radio kanala u obliku paketa od 3 bajta, posljednji bajt je kontrolni zbroj prva 2 bajta. Algoritam za prijenos podataka koji koristim, u principu, omogućava nam da bez kontrolne sume, vjerovatnoća primanja netačnih podataka je mala. Brzina prenosa je 3,3 Kbps. Svaki put nakon mjerenja temperature pošalju se 3 paketa bajtova, pauza između paketa je 10 ms, koristio sam ovu opciju prijenosa da povećam pouzdanost prijema podataka od strane prijemnika. To je zbog činjenice da prijemna strana prekida prijem signala na 4-5 ms dok mjeri temperaturu sa unutrašnjeg (kućnog) senzora.

6F22 9V baterija (“Krona”) se koristi kao napajanje modula radio predajnika A1 se napaja direktno iz baterije. Za napajanje mikrokontrolera koristi se 5V mikronaponski stabilizator napona DA1 (MCP1702) Sopstvena potrošnja struje stabilizatora je samo 1-2 µA, maksimalna struja opterećenja je do 250 mA. MCP1702 stabilizator se može zamijeniti LP2950, ​​čija je strujna potrošnja veća i iznosi 75 μA. Konvencionalni stabilizatori napona tipa L78xx imaju veliku potrošnju struje od nekoliko miliampera, pa stoga nisu prikladni za opremu na baterije. Trenutna potrošnja uređaja u režimu mirovanja se menja tokom vremena kako se kondenzator C4 puni tokom prvih 2,5 minuta potrošnja je 10 μA, u narednih 2,5 minuta struja se postepeno povećava dok se ne izađe iz režima mirovanja. Ova pojava nastaje zbog prisustva prekidačkih struja u ulaznom baferu mikrokontrolera.

Želio bih napomenuti da se pri niskim temperaturama kapacitet baterije brže smanjuje; Litijumske baterije imaju najbolje performanse na negativnim temperaturama, zatim Ni-Mh baterije, alkalne baterije zauzimaju treću poziciju, slane ćelije nisu pogodne za takve uslove.

Ispod je dijagram termometra na mikrokontroleru PIC16F628A.


HG1 displej, BK1 senzor i mikrokontroler se napajaju naponom od 3,3V iz DA2 stabilizatora. Ova vrijednost je odabrana zbog karakteristika displeja, čiji je maksimalni napon napajanja 3.3V, osim toga, nema potrebe za usklađivanjem nivoa napona između ulazno/izlaznih linija displeja i mikrokontrolera. Prijemni modul A1 napaja se stabilizatorom DA1, sa izlaznim naponom od 5V. Otpornici R6, R7 su instalirani tako da odgovaraju nivoima napona.

Mikrokontroler DD1 čita vrijednost temperature sa senzora BK1 svake 2 sekunde, paralelno prima signal od prijemnika, a kada se od predajnika primi paket bajtova, HL1 LED treperi. Na vrhu displeja se prikazuje natpis “Home” ispod kojeg je prikazana vrednost temperature sa unutrašnjeg (kućnog) senzora, ispod natpisa “Street” i temperatura primljena od bežičnog senzora. Nakon prijema podataka preko radio kanala, mikrokontroler pokreće tajmer koji odbrojava vrijeme za kontrolu prijema podataka. Ako podaci nisu primljeni tokom perioda odbrojavanja tajmera, umjesto očitavanja temperature, na displeju se prikazuju simboli crtice “- – – – -”. Vrijeme odbrojavanja može se podesiti od 1 do 15 minuta u koracima od jedne minute. Da biste to učinili, prije programiranja mikrokontrolera potrebno je upisati broj od 1 do 15 u EEPROM ćeliju s adresom 0x00. Zadani period je 7 minuta. Ako BK1 senzori ne rade, za oba uređaja, umjesto odgovarajuće vrijednosti temperature, prikazuje se poruka “GREŠKA”. Dugme SB1 kontroliše pozadinsko osvetljenje ekrana, pozadinsko osvetljenje je uključeno. Dugme SB2 je dizajnirano za podešavanje kontrasta ekrana, jer se može razlikovati od modela do modela.

Za napajanje uređaja prikladan je nestabilizirani izvor napajanja s izlaznim naponom od 8-12V. Oba uređaja su smeštena u plastične kutije. Antena za radio module izrađena je u obliku komada jednožilne žice dužine 17 cm (četvrtina valne dužine noseće frekvencije).





Termometar na mikrokontroleru PIC16F628A i DS18B20 (DS18S20) - članak s detaljnim opisom kruga memorijskog termometra i, osim toga, logičan nastavak članka koji sam prethodno objavio na Yandex stranici pichobbi.narod.ru. Ovaj termometar se prilično dobro pokazao, pa je odlučeno da se malo modernizira. U ovom članku ću vam reći koje su promjene napravljene u shemi i program rada, opisat ću nove funkcije. Članak će biti koristan za početnike. Kasnije prepravljen trenutna verzija termometar u .

Termometar na mikrokontroleru PIC16F628A i DS18B20 (DS18S20) može:

  • izmjeriti i prikazati temperaturu u rasponu:
    -55...-10 i +100...+125 sa tačnošću od 1 stepen (ds18b20 i ds18s20)
    -u opsegu -9,9...+99,9 sa tačnošću od 0,1 stepen (ds18b20)
    -u opsegu -9,5...+99,5 sa tačnošću od 0,5 stepeni (ds18s20);
  • Automatski detektujte DS18B20 ili DS18S20 senzor;
  • Automatski provjerite senzor za kvar;
  • Zapamtite maksimalnu i minimalnu izmjerenu temperaturu.

Termometar takođe omogućava jednostavnu zamenu 7-segmentnog indikatora sa OK na indikator sa OA. Organizirana je nježna procedura upisivanja u EEPROM memoriju mikrokontrolera. Voltmetar koji se dobro pokazao opisan je u ovom članku -.

Šema strujnog kruga digitalnog termometra na mikrokontroleru razvijena je za pouzdanu i dugotrajnu upotrebu. Svi dijelovi koji se koriste u krugu nisu u nedostatku. Uzorak je jednostavan za praćenje i savršen za početnike.

Šematski dijagram termometra prikazan je na slici 1

Slika 1 - Šematski dijagram termometra na PIC16F628A + ds18b20/ds18s20

Neću opisivati ​​cijeli dijagram termometra, jer je prilično jednostavan, zadržat ću se samo na karakteristikama.

Koristi se kao mikrokontroler PIC16F628A od Microchipa. Ovo je jeftin kontroler i također nije u nedostatku.

Za mjerenje temperature koriste se digitalni senzori DS18B20 ili DS18S20 od Maxima. Ovi senzori su jeftini, male veličine, a informacije o izmjerenoj temperaturi prenose se digitalno. Ovo rješenje vam omogućava da ne brinete o poprečnom presjeku žica, njihovoj dužini itd. Senzori DS18B20,DS18S20 sposoban za rad u temperaturnom opsegu od -55… +125 °C.

Temperatura se prikazuje na 7-segmentnom trocifrenom LED indikatoru sa zajedničkom katodom (OK) ili sa (OA).

Za prikaz maksimalne i minimalne izmjerene temperature na indikatoru potrebno vam je dugme SB1. Za resetovanje memorije potrebno je i dugme SB1

Pomoću dugmeta SA1 možete brzo prebaciti senzore (ulica, kuća).

Za prebacivanje zajedničke žice za LED indikator potreban je kratkospojnik. BITAN! Ako je indikator u redu, postavite jamper na najniži položaj prema dijagramu i zalemite tranzistori VT1-VT3 pnp provodljivost. Ako je LED indikator OA, onda pomičemo jamper u gornji položaj prema dijagramu i lemimo tranzistore VT1-VT3 s n-p-n vodljivošću.

U tabeli 1 možete videti kompletnu listu delova i njihovu moguću zamenu za analog.

Tabela 1 – Spisak delova za sastavljanje termometra
Oznaka pozicije Ime Analogni/zamjena
C1, C2 Keramički kondenzator - 0,1 μFx50V -
C3 Elektrolitički kondenzator - 220μFx10V
DD1 Mikrokontroler PIC16F628A PIC16F648A
DD2,DD3 Senzor temperature DS18B20 ili DS18S20
GB1 Tri 1.5V AA baterije
HG1 7-segmentni LED indikator KEM-5631-ASR (OK) Bilo koja druga mala snaga za dinamičku indikaciju i pogodna za povezivanje.
R1,R3,R14,R15 Otpornik 0.125W 5.1 Ohm SMD veličina 0805
R2,R16 Otpornik 0,125W 5,1 kOhm SMD veličina 0805
R4,R13 Otpornik 0,125W 4,7 kOhm SMD veličina 0805
R17-R19 Otpornik 0,125W 4,3 kOhm SMD veličina 0805
R5-R12 Otpornik 0.125W 330 Ohm SMD veličina 0805
SA1 Bilo koji odgovarajući prekidač
SB1 Dugme za takt
VT1-VT3 Tranzistor BC556B za indikator sa OK/tranzistor BC546B za indikator sa OA KT3107/KT3102
XT1 Priključni blok za 3 kontakta.

Za početno otklanjanje grešaka digitalnog termometra korišćen je virtuelni model ugrađen u Proteus. Na slici 2 možete vidjeti pojednostavljeni model u Proteusu

Slika 2 – Model termometra na mikrokontroleru PIC16F628A u Proteusu

Slika 3-4 prikazuje ploču digitalnog termometra

Slika 3 – Štampana ploča termometra na PIC16F628A mikrokontroleru (dole) bez razmere.

Slika 4 – Štampana ploča termometra na PIC16F628A mikrokontroleru (gore) u razmjeru.

Termometar, sastavljeni radni dijelovi, počinje s radom odmah i nije potrebno otklanjanje grešaka.

Rezultat rada su slike 5-7.

Slika 5 - Izgled termometar

Slika 6 - Izgled termometra

Slika 7 - Izgled termometra

BITAN! U firmveru termometra nije ušivena oglašavanje možete koristiti za vaše zadovoljstvo.

Izmjene i dopune programa rada:

1 automatska detekcija senzor DS18B20 ili DS18S20;

2. Vrijeme ponovnog pisanja u EEPROM je smanjeno (ako je ispunjen uslov za ponovno upisivanje) sa 5 minuta na 1 minut.

3. Učestalost treptanja tačke je povećana;

Više Detaljan opis Rad termometra možete pogledati u dokumentu koji možete preuzeti na kraju ovog članka. Ako ne želite da preuzmete, onda na web stranici www.picobbi.narod.ru Rad uređaja je također savršeno opisan.

Gotova ploča savršeno se uklapa u kineski budilnik (slike 8, 9).

Slika 8 – Sav nadjev u kineskom budilniku

Slika 9 – Sve popunjavanje kineskog budilnika

Video - Rad termometra na PIC16F628A

Na MK. Njegovo srce je mikrokontroler PIC16F628A. Kolo termometra koristi 4-cifreni ili 2+2 LED indikator sa zajedničkom anodom. Korišteni temperaturni senzor je tipa DS18B20, au mom slučaju očitavanja senzora se prikazuju s tačnošću od 0,5*C. Termometar ima granice mjerenja temperature od -55 do +125*C, što je dovoljno za sve prilike. Za napajanje termometra korišten je običan punjač s mobilnog telefona na IP-u s tranzistorom 13001.

Šematski dijagram termometra na mikrokontroleru PIC16F628A:

Za flešovanje firmvera PIC16F628A, koristio sam program ProgCode, instalirajući ga na računar i sastavljajući programator ProgCode prema poznatoj šemi:

Oznaka pinova korišćenog mikrokontrolera i pinout nekih drugih sličnih MK-a:

Program ProgCode i uputstva sa fotografijama firmware korak po korak su arhivirani na forumu. Tu su i svi fajlovi potrebni za ovu šemu. U programu otvorite i kliknite na dugme "snimi sve" U mom proizvedenom uređaju, kao što se vidi sa fotografija, 2 termometra su sastavljena u jednom kućištu odjednom, gornji indikator pokazuje temperaturu kod kuće, donji indikator. prikazuje temperaturu vani. Postavlja se bilo gdje u prostoriji i povezuje se sa fleksibilnom žicom na ekranu.

Opis rada termometra

Svrha ovog termometra je samo da pokaže temperaturu. Male razlike u odnosu na druge slične šeme su samo u formatu izlaza temperature na LED indikatoru, koji je 4-cifreni super-svetli CA04-41SRWA. DS18B20 se koristi kao temperaturni senzor u normalnoj vezi sa posebnom žicom za napajanje.

Kolo je dizajnirano da se napaja baterijama, tako da kada je napajanje uključeno, indikator ne pokazuje ništa. Program termometra se inicijalizira i odmah prelazi u stanje mirovanja. Režim mirovanja mikrokontrolera omogućava vam uštedu energije iz napajanja. Kada pritisnete dugme spojeno na PORTB0, indikacija se uključuje.
Indikator prikazuje savjet:



Tada se na indikatoru prikazuju sama očitanja temperature.



Vrsta izlaza očitavanja je sljedeća:






Oblik izlaza se razlikuje samo za niske pozitivne temperature. Prilikom označavanja takve temperature, znak "C" se dodaje simbolu "stepen". To jest, stepeni Celzijusa Simbol „stepen“ je prisutan na indikatoru na bilo kojoj izmjerenoj temperaturi.

Senzor temperature DS18B20 mjeri temperaturu sa rezolucijom od 0,0625 stepeni Celzijusa. Termometar očitava očitanja sa senzora i zaokružuje ih na najbliži deseti dio stepena. Desetine stepena se prikazuju u svim režimima prikaza, osim za temperature niže od -10 stepeni Celzijusa. To se radi tako da negativna očitanja temperature uvijek imaju predznak minus.

Očitavanja se prikazuju na indikatoru 30 sekundi. Zatim uređaj ponovo prelazi u stanje mirovanja i indikator se gasi.


Modeliranje termometra u Proteusu


Model u Proteusu nam je omogućio da vježbamo softverski dio termometar bez sklapanja samog uređaja u hardver. Svi modovi su testirani. U programu nema grešaka u simulaciji.



Sam model možete preuzeti sa linka: termo_i_v2.DSN

Šematski dijagram termometra


Kolo je nacrtano na osnovu dizajna štampane ploče. Prvo je urađeno ožičenje štampane ploče tako da dužina provodnika i lokacija delova budu optimalni, a tek nakon što su portovi mikrokontrolera PIC16F628A na štampanoj ploči odgovarali pinovima indikatora CA04-41SRWA, napravljena je tačna strujna šema.


Ploča termometra


mob_info