Termometru digital cu interfata USB. Portalul de știri și analitic „time of electronics”. Calibrarea termometrului USB

Termometru USB DIY

De multă vreme am avut ideea să fac un termometru USB, dar nu a fost nevoie, iar ideea s-a odihnit. Cumva, am observat câteva unități flash USB la casa unui prieten. Unul era mort și l-am primit gratuit. De de curând, le vânez constant, pentru că. în cele mai multe cazuri, controlerul se stinge, iar blițul NAND este activ + cuarț SMD. Și asta nu este întins pe drum.
Așadar, din această unitate flash am luat: cuarț SMD la 12 MHz, mufă USB pe placă și carcasă mică, precum și dezvoltarea ideii de termometru USB.

Pe parcursul săptămânii am dezvoltat:
1. Schema aparatului;
2. Dispunerea PCB pentru carcasa existentă;
3. Program pentru MK ATtiny45;
4. Program gazdă (denumit în continuare pur și simplu gazdă) pentru primirea datelor de la MK.

Programul pentru MK a fost dezvoltat în mediul AVR Studio folosind GCC bazat pe biblioteca avrusb și sursele unui anume Martin'a Thomas'a pentru DS18B20 (nu am avut timp să-l scriu eu). Modul în care gazda interacționează cu dispozitivul este implementat sub forma trimiterii unui cod condiționat către dispozitiv (conform căruia dispozitivul va efectua operațiunile necesare), precum și a solicitării unui pachet de date cu valoarea curentă a temperaturii. Deoarece dimensiunea datelor trimise și primite este mică, a fost ales un raport viitor (tip de pachet de date) datorită ușurinței de a lucra cu acesta.
Dacă doriți să reparați programul MK, vă rugăm să citiți cu atenție documentul USBID-License.txt aflat în folderul usbdrv înainte de a face acest lucru.
Conține o serie de reguli și restricții privind utilizarea bibliotecii avrusb.
Programul gazdă a fost scris în Borland Delphi 7 folosind biblioteca de componente JEDI-VCL, care include componenta TJvHidDeviceController, care implementează acces simplu la dispozitivele USB compatibile HID. Pentru ca utilizarea dispozitivului să fie cât mai convenabilă posibil, s-a decis implementarea gazdei ca o pictogramă cu o valoare a temperaturii în tava de sistem (lângă ceas) fără nicio interfață grafică, cu excepția meniului contextual făcând clic dreapta pe tavă. pictograma.
Am WinXP SP3, nu am încercat programul pe alte sisteme de operare.

În general, gazda funcționează conform următorului algoritm:
1. În funcție de cronometru (la fiecare 2 secunde), începem căutarea dispozitivului nostru. Criterii de căutare - numele text ale producătorului (furnizorului) și dispozitivului (produsului);
2. Primim informații de la dispozitiv cu numeroase verificări de eroare. Dacă există, puneți pictograma „NA” - fără acces;
3. Dăm comanda de citire a temperaturii de la senzor. Așteptăm;
4. Dăm comanda să începem măsurarea temperaturii;
5. Reveniți la punctul 1 după 2 sec.

Care are limite de măsurare a temperaturii de la -55 la +125 grade Celsius. În general, iată o listă cu tot ce aveți nevoie pentru un termometru:

  1. Microcontroler ATmega8 (de preferință fără „L” la sfârșit).
  2. Senzori de temperatură DS18B20, necesari fără indice PAR la capăt, altfel max. temperatura va fi de +85 de grade.
  3. Cuarț 12 MHz.
  4. 2 condensatoare 22 pF și un condensator pentru alimentare (10V și cel puțin 100 uF, deoarece USB are scăderi groaznice de tensiune pe linia de alimentare).
  5. 2 rezistențe 68 Ohm, 1 rezistență 200 Ohm, 1 rezistență aproximativ 2,2 - 4,7 kOhm, 1 rezistență 10 kOhm și 1 rezistență 1,5 kOhm.
  6. 2 diode zener 3.6V.
  7. mufă sau priză USB.
  8. Dioda electro luminiscenta.
  9. Ei bine, un sigiliu sau o machetă pe care va fi asamblat totul.

Diagrama dispozitivului:

Schema este foarte simplă. În stânga sunt toți cei 4 pini USB. Condensatorul C3 este aceeași sursă de alimentare. Diodele Zener VD1 și VD2 reduc tensiunea pe linia de date la 3,3V. Senzor DS18B20 Nu îl puteți pune pe placă, ci aduceți-l la locul potrivit, în general, lungimea firului poate fi de până la 100 de metri, dar nu recomand mai mult de 50 de metri. LED-ul își schimbă starea (se aprinde/se stinge) de fiecare dată când este pornită măsurarea temperaturii. Dacă clipește cu o viteză haotică, atunci senzorul de temperatură funcționează normal, dacă este aprins constant sau nu este aprins - există o problemă cu senzorul (conectat incorect, nefuncționează sau un fir foarte lung, lângă care există interferențe electromagnetice puternice). În dreapta este un conector pentru programarea în circuit a microcontrolerului. Firmware pentru el - USBThermometer\MCU\USB_thermometer\default\main.hex. După încărcarea firmware-ului, trebuie să setați siguranțele corect, altfel dispozitivul nu va funcționa, în STK500 de la AVR Studio arată astfel:

Dacă ați asamblat corect dispozitivul și ați introdus corect MK-ul, atunci când vă conectați la computer prin USB, Windows va găsi un nou dispozitiv și va întreba unde este driverul. Se află în folder USBThermometru\windows-driver\, unde trebuie să specificați calea. Când se instalează driverul, reporniți computerul. Apoi rulați programul USBThermometer.exe. Dacă dispozitivul nu este conectat, atunci se va scrie „Neconectat” în locul temperaturii. iar la tragerea fereastra se va „îngheța” puțin în fiecare secundă, deoarece programul va actualiza datele de pe dispozitivele conectate în fiecare secundă până când va găsi acest termometru. Dacă conectați dispozitivul, mesajul „Termometrul este conectat” va apărea în tavă, fereastra nu se va mai îngheța și veți vedea asta:

De asemenea, ceea ce este foarte convenabil, există o funcție „Mini fereastră” și „Pe deasupra tuturor ferestrelor”. De obicei bifez toate cele 2 casete de selectare și obțin asta:

Întreaga zonă gri este fereastra programului într-o „mini-vizualizare” (fondul alb-albastru cu becuri este desktopul). Ca:) ?. Acest lucru este convenabil deoarece fereastra este mică (96x198), întotdeauna deasupra tuturor ferestrelor și nu interferează cu alte aplicații. În plus, programul nu este afișat în bara de activități, ci doar în tavă și, trecând cu mouse-ul peste pictograma programului, puteți vedea temperatura în Celsius:

Am testat acest termometru pe mai multe PC-uri staționare, laptopuri și netbook-uri care rulează sistemele de operare Windows Home Edition, Windows Professional și Windows Vista. Totul a funcționat grozav! Doar aici pe whist, la o temperatură pe senzorul de temperatură sub -9 și peste 99 de grade. litera „C” (unde temperatura este în Celsius) nu era vizibilă, pentru că am ales fontul pentru afișarea temperaturii „Comic Sans MS”, dar nu cred că aceasta este o problemă pentru nimeni.

Program, firmware, surse, driver, placa de circuit inclus

P.S. Dacă nu aveți un programator și aveți nevoie de un microcontroler deja flash sau doriți să cumpărați un termometru gata făcut, atunci contactați-mă prin e-mail: devices2000 (stsobaka) ya.ru
Accept si comenzi pentru dezvoltarea si fabricarea dispozitivelor pe microcontrolere, pentru aceasta va rog sa contactati acelasi email.

Lista elementelor radio

Desemnare Tip de Denumire Cantitate NotăScorBlocnotesul meu
MK AVR pe 8 biți

ATmega8

1 La blocnotes
senzor de temperatura

DS18B20

1 La blocnotes
VD1, VD2 diodă Zener

1N4729A

2 3,6 V La blocnotes
C1, C2 Condensator22 pF2 La blocnotes
C3 condensator electrolitic100uF1 La blocnotes
R1 Rezistor

10 kOhm

1 La blocnotes
R2 Rezistor2,2-4,7 kOhm1 La blocnotes
R3, R4 Rezistor

68 ohmi

2 La blocnotes
R5 Rezistor

1,5 kOhm

1 La blocnotes
R6 Rezistor

200 ohmi

1 La blocnotes
LED1 Dioda electro luminiscenta 1 La blocnotes
Z1 Cuarţ12 MHz1

Concurs de radioamatori pentru începători
„Designul meu de radio amator”

Circuitul și software-ul unui termometru simplu USB pe microcontrolerul ATmega8, care poate fi asamblat de un radioamator începător cu propriile mâini

Design competitiv al unui radioamator începător:
„Termometru USB pe microcontrolerul ATmega8”

Salutare dragi prieteni si vizitatori ai site-ului!
Vă prezint instanței dumneavoastră a doua lucrare competitivă.
Autorul designului Grigoriev Ilya Sergheevici.

Termometru USB pe microcontroler ATmega8

Buna ziua tuturor! Am vrut să adun un termometru pentru a cunoaște temperatura fie acasă, fie în afara ferestrei. Partea mea este însorită și termometrul obișnuit este foarte culcat, se încălzește.
A început să sape pe internet. Ca întotdeauna, o mulțime de lucruri inutile, prea complicate, costisitoare.
In sfarsit, am gasit un circuit pe placul meu, conform caruia am inceput sa fac un termometru USB.

Deci iată diagrama:

Pentru asamblare avem nevoie de:
♦ MS Atmega 8 și un pat pentru ea pentru 28 de picioare
♦ Senzor de temperatură DS18B20
♦ Rezistoare (am 0,5W):
- 10k
- 4,7k
- 68ohm *2 buc
- 1,5k
- 200 ohmi
♦ Conders
- 22pF *2 buc
- 100uF pe electrolit de 16V
♦ 2 diode zener la 3.6V
♦ Rezonator cuarț 12MHz
♦ LED
♦ O bucată de textolit unilateral 5*5cm

Începem totul cu marcaje pe textolit, apoi tăiem
Apropo, obișnuiam să sufere mult timp tăind piesele necesare cu un cuțit de clerical, a fost lung, trist... Am comandat recent roți de tăiat cu diamant pentru un dremel pe ebay. Într-o secundă ... vvvzhik și tăiați!


10 bucăți de astfel de cercuri 100 de ruble (pentru căutare - 10X 20mm Discuri de tăiere cu două laturi acoperite cu diamante Emery cu 2 pârghii de îmbinare).

Apoi, imprimăm o diagramă pe revistă, apoi o încălzim cu un fier de călcat, apoi o înmuiăm:


Apoi otrăvim, ștergem tonerul, găurim:


Și apoi începem să colectăm:


Atmega 8-16PU în pătuț:


Spălăm placa de flux, pentru că. Am folosit da activ și strică foarte mult vizualizarea:


Apoi, am preluat senzorul. Am decis sa fac 2 senzori. Primul va fi scurt și situat în cameră. Pe al doilea îl voi face lung și îl voi pune afară.


Introducem senzorul în conector, conform pinout-ului.

Acum trebuie să flashăm Atmega. Luăm cel făcut anterior de mine și completăm firmware-ul.
În SinaProg, trebuie să setăm siguranțele:


NECESAR! Înainte de conectare, verificăm placa pentru prezența unui scurtcircuit !!!

Introducem placa în usb și avem imediat un dispozitiv necunoscut:



Intrăm în managerul de dispozitive, găsim un dispozitiv necunoscut și actualizăm lemnul de foc.
În timpul instalării, va apărea o fereastră în care selectăm - „Instalare oricum acest software driver”
După aceea, va apărea un nou dispozitiv în managerul de dispozitive:


Și LED-ul va începe să clipească aleatoriu. Aceasta înseamnă că dispozitivul funcționează corect!
Apoi, rulați programul pentru a monitoriza temperatura.

Dacă eroarea nu se poate scrie în C: / temp / USBThermometer_config.ini începe să apară în mod repetat, atunci mergeți la unitatea C, porniți toate folderele vizibile și dacă există un folder temporar, apoi creați un bloc de note acolo, numiți-l USBThermometer_config și schimbați extensia sa la .ini. Dacă nu există niciun folder, creați-l mai întâi. După aceea eroarea mea a dispărut. Dacă folderul a fost creat, atunci, pentru a nu interfera, îl puteți ascunde.

Programul este simplu și ușor de înțeles.
Fereastra principala:


Mini fereastră, poate fi folosită ca gadget:


Asta e tot. Am cheltuit destul de mulți bani și timp pe toate! Senzorul este în jur de 90r și aveam deja aproape toate lucrurile mărunte. Acum am un termometru electronic de acasă, cu capacitatea de a măsura temperatura casei și pe stradă.

MP707
Termometru digital USB
1410 rub.

Unitatea va permite unui radioamator să obțină un termometru digital multicanal conectat la un computer printr-un port USB. De fapt, este un adaptor USB cu 1 fir cu caracteristici suplimentare. 2 actuatoare externe sunt conectate la MP707 (de exemplu, două BM146) și 2 sarcini sunt comutate în funcție de modificarea valorii temperaturii de la 2 (doi) din oricare dintre cei 32 de senzori de temperatură (se realizează controlul temperaturii), care sunt conectați în paralel cu linia. Distanța până la ultimul senzor de temperatură este de 100 de metri.
LA deconectat lucrare MP707 nu necesită o conexiune la PCși poate fi alimentat de orice adaptor de alimentare +5V cu un conector USB.
O tensiune de alimentare de +3,6…5V (de exemplu, de la o baterie standard cu litiu) poate fi aplicată și prin conectorul J2 la punctul Vdd.

Am recitit toate informațiile, am văzut fișierele BM1707.cmd și example.ftp. Dar nu știu ce să înlocuiesc în [numele serverului ftp] sau [calea completă și numele fișierului pe server]. A încercat lucruri diferite - nu vrea. Arată-mi ce ai pus în aceste rânduri?
BM1707.cmd:
ftp -n D:\Temp\example.ftp
exemplu.ftp:
deschide ftp.narod.ru
utilizator usbsergdev _parolă_
pune D:\Temp\BM1707.html /BM1707/BM1707-html.html
închide
- Înlocuiți numele de utilizator usbsergdev cu al dvs.,
- parola este și a ta.
- Desigur, fișierul html ar trebui să fie acolo unde este indicat,
- directorul BM1707 trebuie să existe și pe server.
- De asemenea, citiți despre accesul ftp pe site-ul www.narod.ru, au schimbat ceva acolo pentru noii utilizatori...

- Cum se setează termostatul să funcționeze de la un alt senzor de temperatură extern?
Alocați un senzor de temperatură activ pentru funcționarea termostatului, pentru care, vă rugăm să urmați pașii de mai jos:
- Selectați tipul de program „Tabel”.
- Folosiți butonul stâng al mouse-ului pentru a selecta senzorul de temperatură dorit.
- Faceți clic dreapta pentru a selecta „Current Thermostat Sensor”.

Am conectat senzori externi DS1820 și DS1822, dar nu pot seta precizia măsurării temperaturii. După finalizarea procedurii de modificare a preciziei, apare mesajul „Precizia măsurării temperaturii este setată pentru toți senzorii conectați”. Ce se poate face?
- Acest lucru este posibil din cauza lipsei unei astfel de setari la unii senzori de temperatura. Vă rugăm să verificați funcționarea dispozitivului cu senzori de temperatură DS18B20.

Aș dori să văd în versiunile viitoare posibilitatea de a selecta o sondă de control pentru fiecare ieșire de termostat.
- Puteți crește numărul de canale de control utilizând MP710 împreună cu MP701.

În modul autonom MP707 termostatul nu funcționează - semnalul ON este pornit. (încălzitor), deși pragul superior este setat la +30°C și senzorul este încălzit la +34°C. Când este conectat la un PC, totul este în regulă. ce fac greșit?
- Dacă ați conectat senzori termici suplimentari, aceștia trebuie să fie înregistrați în dispozitiv. Pentru a face acest lucru, vă rugăm să introduceți: Control --- Termostat --- Instalare.

Am conectat un senzor de temperatură la dispozitiv la o distanță de 5 metri - funcționează bine. Apoi l-am conectat la o distanță de 40 de metri - aparatul nu îl vede! Dar la urma urmei, distanța până la ultimul senzor termic este de 100 de metri peste un cablu de categoria 5 pereche răsucită. Dar am o distanta de 40 de metri! În același timp, măcar RĂSUCITĂ, cel puțin NU RĂSUCITĂ, dar dispozitivul nu vede senzorul de temperatură! Ce se poate face?

Când conectați senzori de temperatură la o distanță considerabilă (mai mult de 20 de metri) de unitatea de bază, este important ca firele de conectare să aibă cea mai mică rezistență, de exemplu. au fost cupru și nu prea subțire, de exemplu, MKESh-3x0.5 http://www.cable-msk.ru/catalog/mkesh/. Prin urmare, cablul cu pereche răsucită de categoria 5 pentru așezarea rețelelor de calculatoare nu este cea mai bună opțiune.

Senzorii digitali de temperatură DS18B20 au capacitatea de a le conecta la magistrală (paralel unul cu celălalt). Fiecare senzor are un număr de serie unic atribuit în fabrică în timpul producției. Acest lucru permite adresarea fiecărui senzor indiferent de locația sa fizică pe autobuz. Împreună cu dispozitivul, puteți utiliza atât DS18B20, cât și DS18S20, DS1822, DS1820 (cu precizie descrescătoare la + -2 grade). Senzorii termici sunt „atașați” la anumite sarcini în mod programatic. Distanța până la ultimul senzor de temperatură de pe linie este de până la 100 m. Dacă lungimea liniei este mai mare de 10 metri, utilizați conexiunea senzorilor de temperatură conform schemei TREI FIRME(folosind trei fire). Cablu recomandat - cablu CAT5 pereche răsucită (bandă de frecvență 100 MHz) - cablu cu patru perechi pentru așezarea rețelelor locale și linii telefonice (suporta rate de transfer de date de până la 100 Mbps) - opt linii care sunt răsucite în perechi (pereche răsucită) - patru răsucite perechi. Pentru fiecare semnal, utilizați o pereche răsucită separată, ambele fire sunt conectate între ele. Total: din patru perechi răsucite: o pereche este conectată la VCC (putere), o pereche este conectată la DQ (date), o pereche este conectată la GND (comun). În total, se folosesc 3 perechi răsucite din patru.

Cerințe pentru conectarea senzorilor digitali de temperatură:
- Linia trebuie să aibă un început și un capăt.În acest caz, lipsesc mai multe „capete” (NU O STEA!).
- Un controler este instalat la începutul liniei.
- La capatul liniei este instalat ultimul senzor de temperatura, distanta pana la 100 de metri;
- Între ele - senzori de temperatură intermediară.

- Multumesc pentru sfat! Totul a funcționat cu adevărat pe un cablu de 110 metri (nu mai era)!
1) S-a înlocuit R5 cu un trimmer R5 = 5 kΩ (rezistență la care a funcționat 1 kΩ).
2) Se instalează la capătul liniei Сdop.=1 µF ceramică + Сdop.=47 µF electrolitic.
3) Instalat la începutul liniei C = 47 uF din partea laterală a controlerului. Nu a funcționat fără el.
4) Dioda nu sa scurtat.

Care este motivul prezenței a două diode în serie în circuitul MP707 în partea de sus? Pot fi scurtcircuitați ambele pentru a ridica tensiunea de pe linia senzorului de temperatură la valoarea nominală de 5 volți?
- Busul USB este alimentat de +5V iar nivelurile logice pentru D+/D- sunt 0...3.3V. Diodele formează o cădere de tensiune de 1,4...1,6 V, ceea ce asigură potrivirea nivelurilor logice. Deviația acestora poate face ca driverul USB să perceapă acest lucru ca un scurtcircuit pe linia de date și să nu mai lucreze cu dispozitivul.

- Programul meu VM1707.exe „s-a defectat”. Ce se poate face?
- În acest caz:
- Ștergeți fișierul ini.
- Rulați din nou VM1707.exe.

- MP707 merge bine, releele comută (clic), dar LED-urile nu se aprind. Care ar putea fi problema?
- Motiv posibil - instalarea incorectă a LED-urilor pe placă. Vă rugăm să instalați LED-urile conform polarității lor.

- Este posibil să conectați mai multe MP707 la un singur computer și cum să le configurați corect pentru a funcționa împreună?
- Da, puteți conecta mai multe MP707 la un singur computer. Pentru asta:
- Creați un folder separat pe computer.
- Descărcați în el (sau copiați) BM1707.exe cel puțin versiunea 11.
- Rulați BM1707.exe și citiți ID-ul dispozitivului accesând View --- Control, Information --- USB ID).
- Închideți BM1707.exe.
- Deschideți BM1707.ini.
- Găsiți ID=* în el.
- Înlocuiți * cu numărul dispozitivului (8 caractere!).
- Salvați fișierul.
- Închideți BM1707.ini.
- Rulați BM1707.exe.
Fișierul ini, îl puteți utiliza (copia) pe cel vechi. În acest caz, ar trebui să adăugați ID-ul de intrare=XXXXXXXXX la secțiune.
Pentru a rula a doua copie, repetați pașii de mai sus.

Când computerul este repornit, programul pentru MP707 pornește, dar nu mai recunoaște senzorii (13 senzori). Este necesar să scoateți și să reintroduceți termometrul propriu-zis de pe USB, după care acesta este recunoscut și începe să funcționeze. Deoarece computerul este la distanță, repornirea acestuia după o întrerupere de curent va întrerupe măsurarea temperaturii, ceea ce este nedorit. Cum poate fi rezolvată problema?
- Setați în fișierul ini:
AUTOTUNE=1
- Rulați programul.
- Inchide-l.
- Instalare:
AUTOTUNE=0
- Reporniți computerul în mod normal.

În modul „grafic”, scala de temperatură nu este scalată pentru întregul interval de valori măsurate. Puteți observa doar un interval de 40-45 de grade lățime și trebuie să mutați graficele în sus și în jos pentru a le vedea părțile una câte una. Cum să te descurci?
- În setul de fișiere ini:
LeftAxis_Automatic=1

- Este posibil să conectați senzori de presiune atmosferică la MP707?
- MP707 are 1 intrare digitală cu 1 fir (fără intrări analogice), astfel încât senzorii de presiune atmosferică nu pot fi conectați la el.

- Cum este implementat algoritmul de măsurare a temperaturii de către fiecare dintre senzorii de temperatură din MP707?
- Comanda START pentru măsurarea temperaturii este trimisă la toți senzorii simultan. Apoi citirile de temperatură sunt citite secvenţial pentru toţi senzorii.

Se știe că în MP707 canalul 1 controlează încălzitorul (Tlow = ON, Thigh = OFF) iar canalul 2 controlează COOLER (Tlow = OFF, Thigh = ON). Canalul 1 poate fi setat să controleze răcitorul de lichid?
- Din păcate, nu este posibil să setați modul de funcționare al canalului 1 în MP707 pentru a controla răcitorul.

MP707 păstrează un fișier jurnal sau este doar pentru monitorizare?
- Da, MP707 scrie citiri în 2 (două) fișiere jurnal:
1. Cu temperaturi și timpi (Vezi descriere!!!)
2. Cu operațiunile finalizate (dezactivat implicit)

- Este posibil să folosiți diferiți senzori pe o buclă - 18V20 pe placă și 18S20 pe buclă?
- Da, MP707 funcționează simultan cu diferiți senzori de temperatură din linie: atât 18V20, cât și 18S20.

Am conectat trei senzori termici la MP707. Pe ecranul computerului, liniile tuturor senzorilor sunt afișate într-o singură culoare (albastru). Este posibil să schimbați culoarea fiecărei linii pentru o mai bună percepție?
- Da, intrarea din fișierul ini a tipului este responsabilă pentru culoarea:
DD000001A4BB4728_COLOR=16711680
Culorile sunt date în 3 octeți, 16711680 (dec) = 0xFF0000 (hex) - acesta este albastru pur.
Puteți seta astfel:
DD000001A4BB4728_COLOR=0xFF0000 Acesta va fi albastru pur.
sau
DD000001A4BB4728_COLOR=0x00FF00
sau
DD000001A4BB4728_COLOR=0x0000FF
sau combinațiile lor.

Supliment conectat. senzor DS18B20 la MP707. Lungimea firelor este de 50 cm Senzorul este determinat de programul BM1707, nu dă erori în jurnalele, dar temperatura arată 127,5 grade. Când se modifică precizia temperaturii senzorilor, zecimile senzorului conectat se modifică, de exemplu. 127,5; 127,75; 127,875; 127.9735 În același timp, senzorul standard este pe placă, arată temperatura reală. Ce se poate face?
- În timpul conversiei, DS18B20 își crește consumul și pur și simplu nu are tensiunea de alimentare. Tensiunea scade din cauza R5, iar conversia eșuează. Pentru funcționarea normală a senzorului de temperatură, vă rugăm să instalați un rezistor cu o valoare nominală de R=2,4 kOhm pe placă în paralel cu R5.

Articolul prezintă o diagramă a unui termometru USB cu citiri de temperatură afișate pe un monitor de computer. Un tranzistor NPN este utilizat ca senzor, schimbarea tensiunii pe el este de aproximativ 2,3 mV la fiecare 10°C.

Microcontrolerul PIC18F2550 are un convertor analog-digital pe 10 biți. Circuitul este alimentat de . Interfața pentru un computer personal este clasa HID.

Calibrarea termometrului USB

Senzorii de circuit sunt calibrați în aplicația VB. Când rulați o aplicație VB pentru prima dată, aceasta creează un fișier text „cal.txt” în același folder. Fișierul are 2 numere care stochează citirile senzorului de la 0 la 100 Celsius. Acest lucru este necesar datorită faptului că fiecare senzor are propria sa valoare a tensiunii de ieșire. Înregistrarea datelor de calibrare se face după cum urmează:

  1. Este necesar să plasați senzorul de temperatură în apă cu gheață, apăsați butonul 0°C.
  2. După aceea, aplicația va actualiza fișierul cal.txt cu noua valoare a semnalului senzorului.
  3. Apoi puneți senzorul în apă clocotită (100°C), apăsați butonul 100°C pentru a actualiza datele din fișierul cal.txt.

De asemenea, orice tranzistor NPN într-o carcasă de plastic cu un câștig de cel puțin 100 este potrivit ca senzor de temperatură.