Termometru cu termocuplu pe microcontroler foto. Termometru pe ATmega8 și senzor de temperatură DS18B20. Algoritmul programului de termometru pe ATmega și DS18B20

Termometru pe microcontrolerul PIC16F628A și DS18B20 (DS18S20) - un articol cu ​​o descriere detaliată a circuitului termometrului cu memorie și, în plus, o continuare logică a articolului pe care l-am publicat anterior pe site-ul Yandex pichobbi.narod.ru. Acest termometru s-a dovedit destul de bine și s-a decis să-l modernizeze puțin. În acest articol vă voi spune ce modificări au fost aduse schemei și programului de lucru, voi descrie noile funcții. Articolul va fi util pentru începători. Mai târziu am convertit versiunea actuală a termometrului în .

Termometrul de pe microcontrolerul PIC16F628A și DS18B20 (DS18S20) poate:

  • măsurați și afișați temperatura în intervalul:
    -55...-10 și +100...+125 cu o precizie de 1 grad (ds18b20 și ds18s20)
    -în intervalul -9,9...+99,9 cu o precizie de 0,1 grade (ds18b20)
    -in intervalul -9,5...+99,5 cu o precizie de 0,5 grade (ds18s20);
  • Detectează automat senzorul DS18B20 sau DS18S20;
  • Verificați automat senzorul pentru defecțiune;
  • Amintiți-vă temperaturile maxime și minime măsurate.

Termometrul oferă, de asemenea, înlocuirea ușoară a indicatorului cu 7 segmente de la OK la un indicator cu OA. A fost organizată o procedură blândă de scriere în memoria EEPROM a microcontrolerului. Un voltmetru care s-a dovedit bine este descris în acest articol -.

Schema de circuit a unui termometru digital pe un microcontroler a fost dezvoltată pentru o utilizare fiabilă și pe termen lung. Toate piesele utilizate în circuit nu sunt în lipsă. Modelul este ușor de urmat și perfect pentru începători.

Schema schematică a termometrului este prezentată în figura 1

Figura 1 - Schema schematică a unui termometru pe PIC16F628A + ds18b20/ds18s20

Nu voi descrie întreaga diagramă de circuit a termometrului, deoarece este destul de simplu, mă voi opri doar asupra caracteristicilor.

Folosit ca microcontroler PIC16F628A de la Microcip. Acesta este un controler ieftin și, de asemenea, nu este puțin disponibil.

Senzorii digitali sunt utilizați pentru măsurarea temperaturii DS18B20 sau DS18S20 de la Maxim. Acești senzori sunt ieftini, de dimensiuni mici, iar informațiile despre temperatura măsurată sunt transmise digital. Această soluție vă permite să nu vă faceți griji cu privire la secțiunea transversală a firelor, lungimea acestora etc. Senzori DS18B20,DS18S20 capabil să funcționeze în intervalul de temperatură de la -55... +125 °C.

Temperatura este afișată pe un indicator LED cu 7 segmente și 3 cifre cu un catod comun (OK) sau cu (OA).

Pentru a afișa temperaturile maxime și minime măsurate pe indicator, aveți nevoie de butonul SB1. Pentru a reseta memoria aveți nevoie și de butonul SB1

Folosind butonul SA1 puteți comuta rapid senzorii (stradă, casă).

Este necesar un jumper pentru a comuta firul comun pentru indicatorul LED. IMPORTANT! Dacă indicatorul este OK, atunci punem jamperul în poziția inferioară conform diagramei și lipim tranzistoarele VT1-VT3 cu conductivitate p-n-p. Dacă indicatorul LED este OA, atunci mutam jamperul în poziția superioară conform diagramei și lipim tranzistoarele VT1-VT3 cu conductivitate n-p-n.

În Tabelul 1 puteți vedea întreaga listă de piese și posibila înlocuire a acestora cu un analog.

Tabel 1 – Lista pieselor pentru asamblarea termometrului
Desemnarea postului Nume Analogic/de înlocuire
C1, C2 Condensator ceramic - 0,1 μFx50V -
C3 Condensator electrolitic - 220μFx10V
DD1 Microcontroler PIC16F628A PIC16F648A
DD2,DD3 Senzor de temperatură DS18B20 sau DS18S20
GB1 Trei baterii AA de 1,5 V
HG1 Indicator LED cu 7 segmente KEM-5631-ASR (OK) Orice altă putere mică pentru indicație dinamică și potrivită pentru conectare.
R1, R3, R14, R15 Rezistor 0,125 W 5,1 Ohm Dimensiunea SMD 0805
R2,R16 Rezistor 0,125 W 5,1 kOhm Dimensiunea SMD 0805
R4,R13 Rezistor 0,125 W 4,7 kOhm Dimensiunea SMD 0805
R17-R19 Rezistor 0,125 W 4,3 kOhm Dimensiunea SMD 0805
R5-R12 Rezistor 0.125W 330 Ohm Dimensiunea SMD 0805
SA1 Orice comutator potrivit
SB1 Butonul tact
VT1-VT3 Tranzistor BC556B pentru indicator cu OK/tranzistor BC546B pentru indicator cu OA KT3107/KT3102
XT1 Bloc terminal pentru 3 contacte.

Pentru depanarea inițială a termometrului digital, a fost folosit un model virtual construit în Proteus. În Figura 2 puteți vedea un model simplificat în Proteus

Figura 2 – Modelul unui termometru pe microcontrolerul PIC16F628A din Proteus

Figura 3-4 prezintă placa de circuite a termometrului digital

Figura 3 – Placa de circuit imprimat a unui termometru pe un microcontroler PIC16F628A (jos) nu la scară.

Figura 4 – Placa de circuit imprimat a unui termometru pe un microcontroler PIC16F628A (sus) nu la scară.

Termometrul, piese de lucru asamblate, începe să funcționeze imediat și nu necesită depanare.

Rezultatul lucrării este figurile 5-7.

Figura 5 - Aspectul termometrului

Figura 6 - Aspectul termometrului

Figura 7 - Aspectul termometrului

IMPORTANT!În firmware-ul termometrului nu cusut publicitatea poate fi folosită pentru plăcerea dumneavoastră.

Modificări aduse programului de lucru:

1 detecție automată a senzorului DS18B20 sau DS18S20;

2. Timpul de rescriere în EEPROM a fost redus (dacă este îndeplinită condiția de rescriere) de la 5 minute la 1 minut.

3. Frecvența de clipire a punctului a fost mărită;

O descriere mai detaliată a funcționării termometrului poate fi găsită în document, care poate fi descărcat la sfârșitul acestui articol. Dacă nu doriți să descărcați, atunci pe site www.pichobbi.narod.ru Funcționarea dispozitivului este, de asemenea, perfect descrisă.

Placa finită se potrivește perfect într-un ceas cu alarmă chinezesc (Figurile 8, 9).

Figura 8 – Toate umpluturile dintr-un ceas cu alarmă chinezesc

Figura 9 - Toată umplerea ceasului cu alarmă chinezesc

Video - Funcționarea termometrului pe PIC16F628A

PIC16F676 Aplicație: stație de lipit, control al proceselor la temperatură înaltă etc. cu funcție de control PID a elementului de încălzire

Am decis să introduc un termometru în laminatorul meu, un termometru cu termocuplu de tip K. Pentru a fi mai informativ pentru mine, cred că un radioamator hobby nu poate fi mulțumit când doar două LED-uri „POWER” și „READY” sunt aprinse pe un astfel de dispozitiv. Aranjez esarfa pentru detaliile mele. Pentru orice eventualitate, cu capacitatea de a-l tăia în jumătate (aceasta este o oarecare versatilitate). Imediat cu un loc pentru partea de alimentare pe tiristor, dar deocamdată nu folosesc această parte, acesta va fi circuitul meu pentru un fier de lipit (când îmi voi da seama cum să atașez un termocuplu la vârf)


Nu este suficient spațiu în laminator (mecanismele sunt amplasate foarte strâns, știi în China), folosesc un mic indicator cu șapte segmente, dar asta nu e tot, nici toată placa nu se potrivește, aici este versatilitatea a plăcii este la îndemână, am tăiat-o în jumătate (dacă folosiți un conector, partea superioară se potrivește multor dezvoltări pe micile informații de la ur5kby.)


L-am setat, mai intai fac asa cum s-a spus pe forum, nu lipim in termocuplu, am setat 400 (desi daca acest parametru este in memorie, acest articol va disparea), am setat variabilele la aproximativ temperatura camerei si exact la punctul de fierbere,

Un astfel de controler funcționează teoretic până la 999°C, dar acasă este puțin probabil să se găsească o astfel de temperatură, cel mult este un foc deschis, dar această sursă de căldură are o neliniaritate puternică și sensibilitate la condițiile externe.

iată un exemplu de tabel.
și, de asemenea, pentru claritate

Deci, există puține opțiuni în alegerea unei surse pentru ajustarea citirilor controlerului.

Nu se mai joacă cu butoane, totul poate fi adunat,
Am folosit un termocuplu de la un tester chinezesc. Și o postare pe forum m-a sfătuit că acest termocuplu poate fi înmulțit, lungimea lui este de aproape jumătate de metru, am tăiat 2 cm.

Fac un transformator răsucindu-l cu cărbune, se obține o minge, iar la cele două capete este exact la fel, de-a lungul unui fir de cupru, pentru o lipire bună la firele mele.

O serie de articole despre măsurarea temperaturii cu controlere Arduino ar fi incompletă fără o poveste despre termocupluri. Mai mult, nu există altceva cu care să măsori temperaturile ridicate.

Termocupluri (convertoare termoelectrice).

Toți senzorii de temperatură din lecțiile anterioare au făcut posibilă măsurarea temperaturii într-un interval nu mai mare de – 55 ... + 150 °C. Pentru măsurarea temperaturilor mai mari, cei mai des întâlniți senzori sunt termocuplurile. Ei:

  • au un domeniu de măsurare a temperaturii extrem de larg -250 … +2500 °C;
  • poate fi calibrat pentru o precizie ridicată de măsurare, până la o eroare de cel mult 0,01 °C;
  • au de obicei un preț scăzut;
  • sunt considerați senzori de temperatură fiabili.

Principalul dezavantaj al termocuplurilor este necesitatea unui contor de precizie destul de complex, care trebuie să ofere:

  • măsurarea valorilor scăzute ale termo-EMF cu o valoare superioară în intervalul de zeci și uneori chiar de unități de mV;
  • compensarea termo-EMF a joncțiunii rece;
  • liniarizarea caracteristicilor termocuplului.

Principiul de funcționare al termocuplurilor.

Principiul de funcționare al acestui tip de senzor se bazează pe efectul termoelectric (efect Seebeck). Prin urmare, un alt nume pentru un termocuplu este un convertor termoelectric.

Într-un circuit, se formează o diferență de potențial între metale diferite conectate. Valoarea acestuia depinde de temperatură. Prin urmare, se numește termo-EMF. Materiale diferite au valori ale CEM termice diferite.

Dacă într-un circuit îmbinările (joncțiunile) conductorilor diferiți sunt conectate într-un inel și au aceeași temperatură, atunci suma termo-EMF este egală cu zero. Dacă joncțiunile firelor sunt la temperaturi diferite, atunci diferența totală de potențial dintre ele depinde de diferența de temperatură. Ca rezultat, ajungem la proiectarea unui termocuplu.

Două metale diferite 1 și 2 formează o joncțiune de lucru într-un punct. Joncțiunea de lucru este plasată în punctul a cărui temperatură trebuie măsurată.

Joncțiunile reci sunt punctele în care metalele unui termocuplu se conectează la un alt metal, de obicei cuprul. Acestea pot fi blocurile de borne ale instrumentului de măsurare sau firele de comunicare din cupru către termocuplu. În orice caz, este necesar să se măsoare temperatura joncțiunii reci și să se țină cont de aceasta în calculul temperaturii măsurate.

Principalele tipuri de termocupluri.

Cele mai utilizate termocupluri sunt XK (chromel - copel) și XA (chromel - alumel).

Nume Denumirea NSKh Materiale Domeniu de măsurare, °C Sensibilitate, µV/°C, (la temperatură, °C) Termo-EMF, mV, la 100 °C
THC (chromel-copel) L Chromel, copel - 200 … + 800 64 (0) 6,86
TCA (cromel-alumel) K Chromel, alumel - 270 … +1372 35 (0) 4,10
TPR (platină-rodiu) B Platinodiu, platină 100 … 1820 8 (1000) 0, 03
TVR (tungsten-reniu) A Tungsten-reniu, wolfram-reniu 0 … 2500 14 (1300) 1,34

Cum să măsori practic temperatura folosind un termocuplu. Tehnica de măsurare.

Caracteristica statică nominală (NSC) a termocuplului este dată sub forma unui tabel cu două coloane: temperatura joncțiunii de lucru și termo-emf. GOST R 8.585-2001 conține NSCH de termocupluri de diferite tipuri, specificate pentru fiecare grad. Poate fi descărcat în format PDF de la acest link.

Pentru a măsura temperatura folosind un termocuplu, urmați acești pași:

  • măsurați termo-EMF al termocuplului (Etotal);
  • măsurați temperatura joncțiunii reci (T joncțiunea rece);
  • Folosind tabelul NSH de termocuplu, determinați termo-EMF al joncțiunii rece folosind temperatura joncțiunii rece (joncțiunea rece E);
  • determinați termo-EMF al joncțiunii de lucru, adică se adaugă EMF-ul joncțiunii reci la termo-EMF total (E joncțiune de lucru = E total + E joncțiune rece);
  • Folosind tabelul NSH, determinați temperatura joncțiunii de lucru folosind termo-EMF a joncțiunii de lucru.

Iată un exemplu despre cum am măsurat temperatura unui vârf de fier de lipit folosind un termocuplu TXA.

  • Am atins joncțiunea de lucru cu vârful fierului de lipit și am măsurat tensiunea la bornele termocuplului. Rezultatul a fost 10,6 mV.
  • Temperatura mediului ambiant, de ex. temperatura joncțiunii rece este de aproximativ 25 °C. EMF de joncțiune rece din tabelul GOST R 8.585-2001 pentru un termocuplu de tip K la 25 °C este de 1 mV.
  • EMF termică a joncțiunii de lucru este 10,6 + 1 = 11,6 mV.
  • Temperatura din același tabel pentru 11,6 mV este de 285 °C. Aceasta este valoarea măsurată.

Trebuie să implementăm această secvență de acțiuni în programul termometrului Arduino.

Termometru Arduino pentru măsurarea temperaturilor ridicate folosind un termocuplu de tip TXA.

Am găsit un termocuplu TP-01A. Un termocuplu TCA tipic, utilizat pe scară largă de la un tester. Asta voi folosi la termometru.

Parametrii indicați pe ambalaj sunt:

  • tip K;
  • domeniul de măsurare – 60 … + 400 °C;
  • Precizie ±2,5% până la 400°C.

Domeniul de măsurare se bazează pe cablu din fibră de sticlă. Există un termocuplu similar TP-02, dar cu o sondă lungă de 10 cm.

TP-02 are o limită superioară de măsurare de 700 °C. Deci, vom dezvolta un termometru:

  • pentru termocuplu tip TXA;
  • cu domeniul de măsurare – 60 … + 700 °C.

Odată ce înțelegeți programul și schema de circuit a dispozitivului, puteți crea un contor pentru termocupluri de orice tip, cu orice domeniu de măsurare.

Funcționalitatea rămasă a termometrului este aceeași cu dispozitivele din cele trei lecții anterioare, inclusiv funcția de înregistrare a schimbărilor de temperatură.

Categorie: . Puteți să-l marcați.