Begrep: 4-leders motstandstermometersensor

I denne artikkelen vil vi diskutere de forskjellige typene temperatursensorer og hvordan de kan brukes fra sak til sak. Temperatur er en fysisk parameter som måles i grader. Det er en viktig del av enhver måleprosess. Områder som krever nøyaktige temperaturmålinger inkluderer medisin, biologisk forskning, elektronikk, materialforskning og termisk ytelse til elektriske produkter. En enhet som brukes til å måle mengden varmeenergi som lar oss oppdage fysiske temperaturendringer, er kjent som en temperatursensor. De er digitale og analoge.

Hovedtyper av sensorer

Generelt er det to metoder for å skaffe data:

1. Kontakt... Kontaktemperaturfølere er i fysisk kontakt med en gjenstand eller et stoff. De kan brukes til å måle temperaturen på faste stoffer, væsker eller gasser.

2. Kontaktløs... Berøringsfri temperatursensorer oppdager temperatur ved å snappe opp noe av den infrarøde energien som sendes ut av en gjenstand eller et stoff og registrere intensiteten. De kan bare brukes til å måle temperaturen i faste stoffer og væsker. De klarer ikke å måle temperaturen på gasser på grunn av fargeløshet (gjennomsiktighet).

Typer temperatursensorer

Det finnes mange forskjellige typer temperatursensorer. Fra enkel på / av-kontroll av en termostatisk enhet til komplekse kontrollsystemer for vannforsyning, med funksjonen for å varme den opp, brukt i prosesser for voksende planter. De to hovedtypene sensorer, kontakt og ikke-kontakt, er videre delt inn i resistive, spennings- og elektromekaniske sensorer. De tre mest brukte temperatursensorene er:

  • Termistorer
  • Motstands termoelementer
  • Termoelement

Disse temperatursensorene skiller seg fra hverandre når det gjelder driftsparametere.

UTVIKLINGSTEKNOLOGIER FOR UTSTYR

Leksjon om å koble integrerte temperatursensorer med analog utgang til Arduino-kontrolleren. Et arbeidsutkast av termometeret presenteres, og den programmerte behandlingen av informasjon fra temperatursensorer er beskrevet.

Forrige leksjon Leksjonsliste Neste leksjon

Med denne publikasjonen begynner jeg en serie leksjoner om temperaturmåling i Arduino-systemet. Totalt er det planlagt fire leksjoner på forskjellige typer temperatursensorer:

  • integrerte temperatursensorer med analog utgang - LM35, TMP35, TMP36, TMP37;
  • silisium temperatur sensorer i KTY81 serien;
  • integrerte sensorer med et 1-leders digitalt grensesnitt - DS18B20;
  • termoelementer (termoelektriske omformere).

I hver leksjon vil jeg fortelle deg:

  • kort om prinsippet om drift og parametere for temperatursensorer;
  • på ordningene for å koble temperatursensorer til mikrokontrollere;
  • Jeg vil fortelle deg om programvarebehandling av informasjon fra temperatursensorer;
  • Jeg vil gi et diagram over et termometer basert på Arduino-kortet og programvare for det.

Hver leksjon vil vurdere et termometerprosjekt basert på en Arduino-kontroller som fungerer:

  • i frittstående modus med informasjonsutgang på LED-indikatoren;
  • i kommunikasjonsmodus med en datamaskin, som ikke bare tillater å vise gjeldende temperatur, men også registrere temperaturendringer med datautdata i grafisk form.

Integrerte temperatursensorer med analog spenningsutgang.

Med alle disse enhetene har følgende generelle egenskaper i seg selv:

  • utgangsspenningen er lineært proporsjonal med temperaturen;
  • sensorene har en kalibrert skaleringsfaktor for avhengigheten av utgangsspenningen på temperaturen; ytterligere kalibrering er ikke nødvendig.

Enkelt sagt, for å måle temperaturen ved hjelp av sensorer av denne typen, er det nødvendig å måle spenningen ved utgangen, og gjennom en skaleringsfaktor konvertere den til temperatur.

Det er mange termiske sensorer som faller inn i denne kategorien. Jeg vil fremheve følgende typer temperatursensorer:

  • LM35;
  • TMP35;
  • TMP36;
  • TMP37.

Dette er de vanligste, ganske nøyaktige og rimelige enhetene. Jeg har skrevet artikler om disse sensorene. Du kan se på lenkene LM35 og TMP35, TMP36, TMP37. Alle parametere, tekniske egenskaper til enheter, typiske tilkoblingsskjemaer er beskrevet i detalj der.

Koble temperaturfølere til en mikrokontroller.

Det er mest praktisk å bruke sensorer i TO-92-pakken.

Koblingsskjemaet for enheter i TO-92-pakken ser slik ut.

Alle sensorene som er oppført vil fungere i henhold til dette skjemaet. Informasjon om andre ordninger for å slå på temperatursensorer finner du på lenkene LM35 og TMP35, TMP36, TMP37.

Grunnleggende parametere, sensorforskjeller.

De grunnleggende forskjellene mellom de oppførte sensorene fra hverandre er at:

  • TMP36 er den eneste av de listede temperatursensorene som kan måle negative temperaturer.
  • Sensorene har forskjellige temperaturmåleområder.

Vi snakker om temperatursensorer koblet i henhold til diagrammet ovenfor. For eksempel er det en LM35-bryter som lar deg måle negative temperaturer. Men det er vanskeligere å implementere og krever ekstra kraft. Det er bedre å bruke TMP36 for negative temperaturer.

Jeg oppsummerte hovedparametrene til temperaturfølere LM35, TMP35, TMP36, TMP37 for denne kretsen i en tabell.

En typeMåleområde for temperatur, ° CUtgangsspenningsforskyvning, mVSkalafaktor, mV / ° CUtgangsspenning ved +25 ° C, mV
LM35, LM35A0 … + 150010250
LM35C, LM35CA0 … + 110010250
LM35D0 … + 100010250
TMP35+ 10 … + 125010250
TMP36— 40 … + 12550010750
TMP37+ 5 … + 100020500

For alle temperatursensorer kan utgangsspenningen bare være positiv, men på grunn av forspenningen er TMP36 i stand til å måle negative temperaturer. Null spenning ved utgangen tilsvarer en temperatur på -40 ° C, og med en utgangsspenning på 0,5 V vil temperaturen være 0 ° C. Jeg synes TMP36 er den mest brukervennlige analoge I / C temperaturføleren, og jeg bruker dem ganske mye.

Arduino-prosjekt med termometer på temperatursensorer LM35, TMP35, TMP36, TMP37.

Vi vil utvikle et termometer som vil:

  • I frittstående modus, vis temperaturverdien på en firesifret syv-segment lysdiode (LED) -indikator.
  • Send den nåværende temperaturverdien til datamaskinen. Du kan observere det ved hjelp av Arduino IDE seriell portmonitor.
  • Ved hjelp av et spesielt toppnivåprogram (jeg skrev det): vis den målte temperaturen på dataskjermen.
  • registrer temperaturendringer og vis dem grafisk.

Termometerkrets basert på Arduino UNO R3-kort.

Det er nødvendig å koble til Arduino-kortet:

  • firesifret syv-segment LED-indikator i multiplekset modus;
  • temperaturføler TMP36 eller lignende.

Jeg valgte LED-indikatoren type GNQ-3641BUE-21. Det er lyst, størrelsen er optimal for denne oppgaven. Vi koblet den til Arduino-kortet i leksjon 20. I denne leksjonen kan du se dokumentasjonen for indikatoren, tilkoblingsdiagrammer. Det er også en beskrivelse av biblioteket for å kontrollere syv-segment LED-indikatorer.

Termometerkretsen basert på Arduino UNO R3-kortet ser slik ut.

LED-indikatoren er koblet til kontrolleren i multiplekset modus (leksjon 19, leksjon 20).

Temperatursensoren er koblet til analog inngang A0. Kondensator C1 - blokkerer strømforsyningen til sensoren, R1 og C2 - det enkleste analoge filteret. Hvis temperatursensoren er installert i nærheten av mikrokontrolleren, kan filteret ekskluderes fra kretsen.

TMP35, TMP36, TMP37 tillater arbeid på en last med en kapasitet på opptil 10 nF og LM35 - ikke mer enn 50 pF.Derfor, hvis sensoren er koblet til kontrolleren med en lang linje med betydelig kapasitans, må motstanden R1 være installert på sensorsiden, og kondensatoren C2 på kontrollersiden. Blokkeringskondensatoren C1 er alltid installert ved siden av temperatursensoren.

I alle fall vil digital filtrering av signalet fra sensoren implementeres i kontrollerprogrammet.

For å teste det, monterte jeg enheten på et brødbrett.

Beregning av temperatur.

Prinsippet er enkelt. For å beregne temperaturen på sensorene LM35, TMP35, TMP37, må du:

  • Les ADC-koden.
  • Beregn spenningen ved sensorutgangen som Uout = N * Uion / 1024, hvor
  • Uout - spenning ved utgangen til temperatursensoren;
  • N - ADC-kode;
  • Uion - spenning til referansespenningskilden (for kretsen vår 5 V);
  • 1024 - maksimalt antall ADC-graderinger (10 bits).
  • Del spenningen ved sensorutgangen med skaleringsfaktoren.
  • For TMP36-sensoren, trekk forspenningen (0,5 V) før du deler med skaleringsfaktoren.
  • Formlene for å beregne temperaturen for forskjellige sensorer med en referansespenning på 5 V ser slik ut.

    SensortypeFormelen for beregning av temperaturen T (° C), med en referansespenning på 5 V, fra ADC-koden - N.
    LM35, TMP35T = (N * 5/1024) / 0,01
    TMP36T = (N * 5/1024 - 0,5) / 0,01
    TMP37T = (N * 5/1024) / 0,02

    Hvis digital filtrering brukes, er det også nødvendig å ta hensyn til koeffisienten for den. Du må også forstå at formlene er skrevet i en lettfattelig form. I et ekte program er det bedre å beregne den konstante delen av formelen på forhånd og bruke den som en koeffisient. Dette er beskrevet i detalj i leksjon 13. Det er også informasjon om lesing og digital filtrering av et analogt signal.

    Arduino termometerprogram.

    Programmet skal utføre følgende funksjoner:

    • lese verdiene til ADC-kodene;
    • gjennomsnitt dem (digital filtrering) for å øke støyimmuniteten;
    • beregne temperaturen fra ADC-koden;
    • vise temperaturverdien på en firesifret LED-indikator i formatet: tegn;
    • tiere;
    • enheter;
    • tidel av ° C.
  • overfør temperaturverdien til datamaskinen i tegnformat en gang per sekund.
  • Utviklingen av programmet er basert på det vanlige prinsippet:

    • en timeravbrudd med en periode på 2 ms er implementert;
    • i det skjer en parallell prosess: regenerering av LED-indikatoren;
    • lese ADC-koder og beregne verdiene deres;
    • programvaretimere.
  • I utgangspunktet skjer en asynkron prosess:
      synkronisering fra programtimeren 1 sek;
  • beregning av temperatur;
  • overføre temperaturverdien til datamaskinen.
  • Hvis du leser de foregående leksjonene, vil alt være klart.

    Bibliotekene MsTimer2.h og Led4Digits.h må være koblet til. Du kan laste ned bibliotekene fra leksjon 10 og leksjon 20. Det er også en detaljert beskrivelse og eksempler. Se leksjon 13 for måling av spenningen til analoge innganger.

    Jeg vil umiddelbart gi en skisse av programmet.

    // termometer, sensorer LM35, TMP35, TMP36, TMP37 # inkluderer # inkluderer

    #define MEASURE_PERIOD 500 // målingstid, * 2 ms #define ADC_RESOLUTION 4.8828125 // ADC oppløsning, mV (5000 mV / 1024) #define OFFSET 500. // utgangsspenningsforskyvning, mV (for TMP36) #definer SCALE_FACTOR 10. / / skaleringsfaktor, mV (for TMP36)

    int timeCount; // teller av målingstid lang sumA0; // variabel for summering av ADC-koder lang avarageTemp; // gjennomsnittstemperaturverdi (sum av ADC-koder, gjennomsnittsverdi * 500) boolsk flaggTempReady; // tegn på beredskap for temperaturmåling flottør temperatur; // beregnet temperatur, ° C

    // indikator type 1; produksjon av kategorier 5,4,3,2; segmentpinner 6,7,8,9,10,11,12,13 Led4Digits disp (1, 5,4,3,2, 6,7,8,9,10,11,12,13);

    ugyldig oppsett () {MsTimer2 :: set (2, timerInterrupt); // sett tidsavbruddsperioden til 2 ms MsTimer2 :: start (); // aktivere timer avbryte Serial.begin (9600); // initialiser porten, hastighet 9600}

    ugyldig sløyfe () {

    hvis (flagTempReady == true) {flagTempReady = false; // data er klar

    // beregne temperaturtemperaturen = (avarageTemp * ADC_RESOLUTION / 500. - OFFSET) / SCALE_FACTOR;

    // viser temperaturen på indikatoren hvis (temperatur> = 0) {// positiv temperatur disp.print ((int) (temperatur * 10.), 4, 1); } annet {// negativ temperatur disp.digit [3] = 0x40; // minus vises disp.print ((int) (temperatur * -1 * 10.), 3, 1); } disp.digit [1] | = 0x80; // lys punktet til det andre sifferet // overfør temperaturen til datamaskinen Serial.println (temperatur); }}

    // —————————————— avbryter behandler 2 ms ugyldig timerInterrupt () {disp.regen (); // regenerere LED-indikatoren

    // måling av gjennomsnittstemperatur tidCount ++; // +1 teller for gjennomsnitt av prøver sumA0 + = analogRead (A0); // summering av ADC-kanal A0-koder

    // sjekk antall gjennomsnittsprøver hvis (timeCount> = MEASURE_PERIOD) {timeCount = 0; avarageTemp = sumA0; // overbelaste gjennomsnittsverdien sumA0 = 0; flagTempReady = sant; // signer at resultatet er klart}}

    Du kan laste ned skissen fra denne lenken:

    Registrer deg og betal. Bare 40 rubler. per måned for tilgang til alle ressurser på nettstedet!

    Laster, sjekker. Vi starter seriell portmonitor og sjekker dataene på datamaskinen.

    Programmet er designet for TMP36-sensorer, men det er enkelt å tilpasse seg andre typer sensorer. For å gjøre dette er det nok å endre verdiene til skaleringsfaktoren og forskyvningen, spesifisert i begynnelsen av programmet med #define-setningene.

    SensortypeFaktor og skjevhet
    LM35, TMP35#define OFFSET 0. #define SCALE_FACTOR 10.
    TMP36#define OFFSET 500. #define SCALE_FACTOR 10.
    TMP37#define OFFSET 0. #define SCALE_FACTOR 20.

    Termometerets oppløsning og nøyaktighet.

    Oppløsningen til ADC i kretsen vår er 5 V / 1024 = 4,88 mV.

    Termometeroppløsning:

    • ved en skaleringsfaktor på 10 mV / ° C (LM35, TMP35, TMP36 sensorer) er mindre enn 0,5 ° C;
    • ved en skaleringsfaktor på 20 mV / ° C (TMP37-sonde) er mindre enn 0,25 ° C.

    Ganske anstendige parametere.

    Når det gjelder målefeilen, er den noe verre.

    Målefeilen til sensorene selv er:

    • ikke mer enn 0,5 ° C for LM35;
    • ikke mer enn 1 ° C for TMP35, TMP36, TMP37.

    Målefeil av ADC på Arduino-kortet.

    I enheten brukte vi en 5 V referansespenning, dvs. strømforsyningsspenning. I Arduino UNO R3-kort dannes 5 V-spenningen på NCP1117ST50 lineær regulator. Spesifikasjoner i PDF-format kan vises på denne lenken NCP117.pdf. Stabiliteten til utgangsspenningen til denne mikrokretsen er ganske høy - 1%.

    De. den totale målefeilen til termometeret er ikke mer enn 2%.

    Det kan økes litt ved å måle spenningen på 5 V på kortet og sette ADC-oppløsningen i parameteren ikke til 5 V, men til en mer nøyaktig verdi. På kortet mitt viste spenningen seg å være 5,01 V. I programmet mitt må du fikse:

    #define ADC_RESOLUTION 4.892578 // ADC-oppløsning, mV (5010 mV / 1024)

    Bruker en ekstern spenningsreferanse for Arduino-kortet.

    Men det er en radikal måte å forbedre både ADC-målenøyaktighet og oppløsning. Dette er bruken av en ekstern spenningsreferanse.

    Den vanligste kilden til stabil spenning er LM431, TL431, etc. Jeg skal skrive en artikkel om denne mikrokretsen. Foreløpig vil jeg gi en lenke til informasjonen - LM431.pdf.

    Jeg vil gi LM431-bryterkretsen som en 2,5 V referansespenning for Arduino-kortet.

    I programmet må du endre linjen som bestemmer oppløsningen til ADC:

    #define ADC_RESOLUTION 2.44140625 // ADC-oppløsning, mV (2500 mV / 1024)

    Og i oppsett () kobler du til en ekstern spenningsreferanse:

    analogReferanse (EKSTERN); // ekstern referansespenning

    Som et resultat vil oppløsningen reduseres med 2 ganger, og stabiliteten vil avta med en størrelsesorden. Bare det samme, for å forbedre nøyaktigheten, er det nødvendig å måle den virkelige spenningen til LM431 med et voltmeter og korrigere den i programmet.

    En slik modifikasjon av termometeret er absolutt nødvendig hvis enheten får strøm fra en ustabilisert strømkilde med en spenning nær 5 V, for eksempel fra galvaniske batterier eller et oppladbart batteri. I dette tilfellet er det ikke nødvendig å snakke om strømforsyningens stabilitet, og uten stabilisering av referansespenningskilden vil målingen være veldig betinget.

    Toppnivå termometerprogram.

    Å se på løpende talllinjer i Arduino IDE-skjermvinduet blir fort kjedelig. Jeg vil bare se temperaturverdien. I tillegg må Arduino IDE-programvaren installeres for praktisk bruk av termometeret med en datamaskin. Ikke alle datamaskiner har det. Også, folk er ofte interessert i temperaturendringer, prosessen med oppvarming eller kjøling over tid. Jeg ønsker å kunne registrere temperaturendringer og vise dem grafisk.

    For å gjøre dette skrev jeg et enkelt toppnivåprogram som:

    • viser gjeldende temperaturverdi;
    • registrerer temperaturendringen med en diskrethet på 1 sek;
    • viser informasjon om temperaturendringer i grafisk form.

    Dette programmet kan brukes både med termometeret fra denne artikkelen og til termometrene i de påfølgende leksjonene med andre typer sensorer.

    Programmet fungerer under operativsystemene Windows 95, 98, XP, 7. Jeg har ikke prøvd resten.

    Installere applikasjonen.

    • Last ned arkivfilen Thermometer.zip:

    Registrer deg og betal. Bare 40 rubler. per måned for tilgang til alle ressurser på nettstedet!

    • Pakk den ut til arbeidsmappen din. Du kan forlate mappen fra termometerarkivet.

    Søknaden består av to filer:

    • Thermometer.exe - kjørbar fil;
    • Conf.txt - konfigurasjonsfil.

    Det er ikke nødvendig å installere programmet, bare kjør filen Thermometer.exe.

    Koble termometeret til datamaskinen.

    Datautveksling mellom datamaskinen og kontrolleren utføres gjennom COM-porten. Porten kan være ekte eller virtuell.

    Den mest praktiske måten er å bruke den virtuelle porten, som er opprettet av driveren til Arduino-kortet. Porten vises når kortet er koblet til datamaskinen. Du trenger ikke å starte Arduino IDE. Portnummeret kan vises: Kontrollpanel -> System -> Enhetsbehandling -> Porter (COM og LPT)

    Jeg har COM5.

    Du kan koble datamaskinen din via en slags USB-UART-bro. Jeg bruker PL2303 USB UART Board-moduler. Hvordan koble til er skrevet i artikkelen om programmet Overvåk kjøleskapet på Peltier-elementet.

    Hvis datamaskinen har en standard COM-port (RS232-grensesnitt), trenger du ikke installere noen drivere. For å koble til kontrolleren i dette tilfellet er det nødvendig å bruke en RS232 - TTL nivåomformer, ADM232, SP232, MAX232 mikrokretsløp og lignende.

    Det er mange tilkoblingsmuligheter. Det viktigste er at en COM-port, virtuell eller ekte, dannes på datamaskinen.

    Første lansering av programmet.

    Før du starter programmet, må det allerede være opprettet en virtuell COM-port på datamaskinen. Og siden porten er opprettet når du kobler til Arduino-kortkontakten, betyr dette at du først må koble kortet til datamaskinen.

    Kjør deretter Thermometer.exe-programmet. Noe COM-port er skrevet i programkonfigurasjonsfilen. Programmet vil prøve å åpne det ved oppstart. Hvis det ikke fungerer, vil det vise en melding med nummeret på feil port.

    Klikk OK og programvinduet åpnes. Det blir bindestreker i stedet for temperatur. Det er ikke noe data.

    Velg modus for portvalg fra menyen (øverst). Et valgvindu åpnes.

    Angi portnummeret for brettet ditt. Hver port har sin tilstand skrevet. Naturligvis må du velge mellom porter som er merket "gratis".

    Lukke vinduet. Den valgte COM-porten lagres i konfigurasjonsfilen og vil alltid ringes opp når programmet starter. Du trenger ikke å angi porten hver gang du starter programmet.

    Hvis kortet er slått på, er programmet lastet inn, alt fungerer som det skal, og en gang i sekundet skal en sirkel-LED blinke foran temperaturverdien. Det blinker når nye data kommer.

    Registrator.

    Det er en opptaker i programmet som lar deg observere dynamikken i temperaturendringer. Opptakeren slås på automatisk når programmet starter. Den registrerer temperaturverdier i trinn på 1 sekund. Maksimal registreringstid er 30 000 sekunder eller 8,3 timer.

    For å se opptaksresultatene, trykk på menyen "Opptaker".

    Det var jeg som varmet opp sensoren med et loddejern.

    Du kan forstørre fragmentet ved å velge et rektangulært område med høyre museknapp inne. Området må velges fra venstre til høyre, topp til bunn.

    Ved å velge et område med musen fra venstre til høyre, fra bunn til topp, vises visningen av all grafisk informasjon. Det er enkelt.

    Dette programmet vil bli brukt i de neste tre leksjonene med andre typer temperaturmåleprosjekter.

    I neste leksjon måler vi temperaturen ved hjelp av KTY81-serien silisiumsensorer.

    Forrige leksjon Leksjonsliste Neste leksjon

    Støtt prosjektet

    2

    Forfatter av publikasjonen

    frakoblet 5 dager

    Edward

    139

    Kommentarer: 1584 Publikasjoner: 161 Registrering: 13-12-2015

    Termistor

    En termistor er en følsom motstand som endrer dens fysiske motstand med temperaturen. Vanligvis er termistorer laget av et keramisk halvledermateriale som kobolt, mangan eller nikkeloksyd og er belagt med glass. De er små flate forseglede skiver som reagerer relativt raskt på temperaturendringer.

    På grunn av materialets halvledende egenskaper har termistorer en negativ temperaturkoeffisient (NTC), dvs. motstand synker med økende temperatur. Imidlertid er det også PTC-termistorer hvis motstand øker med økende temperatur.

    Termistor tidsplan

    Fordeler med termistorer

    • Høy hastighet på respons på temperaturendringer, nøyaktighet.
    • Lav pris.
    • Høyere motstand i området 2.000 til 10.000 ohm.
    • Mye høyere følsomhet (~ 200 ohm / ° C) innenfor et begrenset temperaturområde på opptil 300 ° C.

    Temperaturavhengighet av motstand

    Avhengigheten av motstanden til temperaturen uttrykkes ved følgende ligning:

    Hvor A, B, C - dette er konstanter (gitt av beregningsvilkårene), R - motstand i Ohms, T - temperatur i Kelvin. Du kan enkelt beregne endringen i temperatur fra en endring i motstand eller omvendt.

    Hvordan bruke en termistor?

    Termistorer er vurdert for deres motstandsverdi ved romtemperatur (25 ° C). En termistor er en passiv resistiv enhet, så den krever produksjon av overvåking av gjeldende utgangsspenning. Som regel er de koblet i serie med passende stabilisatorer som danner en hovedspenningsdeler.

    Eksempel: Vurder en termistor med en motstandsverdi på 2,2K ved 25 ° C og 50 ohm ved 80 ° C. Termistoren er koblet i serie med en 1 kΩ motstand gjennom en 5 V forsyning.

    Derfor kan utgangsspenningen beregnes som følger:

    Ved 25 ° C, RNTC = 2200 ohm;

    Ved 80 ° C, RNTC = 50 ohm;

    Det er imidlertid viktig å merke seg at ved romtemperatur er standard motstandsverdier forskjellige for forskjellige termistorer, da de er ikke-lineære. En termistor har en eksponentiell temperaturendring, og derfor en beta-konstant, som brukes til å beregne dens motstand for en gitt temperatur. Motstandens utgangsspenning og temperatur er lineært relatert.

    Koble til Arduino-kortet

    Som nevnt ovenfor kan DS18B20 temperatursensoren kobles til Arduino-kortet på to måter (direkte og parasittisk). I tillegg kan en eller en hel gruppe sensorer henges på en Arduino-inngang. La oss starte med det enkleste alternativet. Figuren nedenfor viser kretsen for direkte tilkobling av en enkelt sensor til Arduino Nano.

    Figur №3 - skjema for direkte tilkobling av en enkelt sensor

    Alt er ganske enkelt her. Vi driver DS18B20 fra selve Arduino-kortet, og leverer 5V til Vdd-pinnen på sensoren. På samme måte kobler vi GND-pinnene til hverandre. Koble den midterste terminalen på den termiske sensoren, for eksempel til D2-pinnen på Arduino Nano. Du kan koble datautgangen (DQ) til nesten hvilken som helst Arduino-inngang, etter å ha tidligere skrevet nummeret i skissen. Det eneste og viktigste punktet å være oppmerksom på er tilstedeværelsen av en 4,7 k motstand mellom pluss strømforsyningen og datalinjen til temperatursensoren. Denne motstanden tjener til å trekke datalinjen til en logisk enhet, og dens fravær vil forårsake en feil i informasjonsutvekslingsalgoritmen. Verdien på 4,7k er ikke veldig kritisk og kan endres innen visse grenser, det viktigste er ikke å la seg rive med.

    Med direkte tilkobling av en sensor er alt klart, nå vil vi vurdere den direkte tilkoblingen av en gruppe sensorer til en pin av Arduino. Figur 4 viser et eksempel på tilkobling av 5 DS18B20 sensorer. Dette tallet kan være hvilket som helst og er bare begrenset av tidsrammen for avstemning hver av dem (750ms).

    Figur №4 - koble til en gruppe DS18B20 sensorer

    Som du kan se fra figuren ovenfor, er absolutt alle sensorer på bussen koblet parallelt, og det er en opptrekksmotstand for hele gruppen. Selv om endringene i kretsen er logiske og minimale, er det litt vanskeligere å jobbe med flere temperatursensorer når det gjelder å lage et program. I dette tilfellet er det nødvendig å adressere hver enkelt separat ved hjelp av unike adresser.Programmeringen av hver av modusene vil bli diskutert senere.

    Den parasittiske strømforsyningsmodus skiller seg fra direkte modus ved at sensorene mottar strøm direkte fra datalinjen, uten å bruke direkte 5V. I dette tilfellet er Vdd- og GNG-pinnene til hver temperatursensor koblet til hverandre. Denne prosessen er vist tydeligere i figur 5.

    Figur 5 - tilkobling av en enkelt sensor og en gruppe sensorer i parasittstrømforsyningsmodus fra datalinjen.

    Som i de foregående diagrammene er det en 4,7 k motstand her, som i dette tilfellet spiller en dobbel rolle, nemlig: å trekke datalinjen til logikk "1" og drive selve sensoren. Muligheten for slik inkludering er gitt av en spesiell krets innebygd i DS18B20 og en bufferkondensator Cpp (figur 2). Noen ganger kan du lagre en ledning i den felles sløyfen for å koble til en gruppe temperaturfølere, som spiller en viktig rolle i noen prosjekter.

    Etter å ha vurdert bryterkretsene, er det på tide å gå videre til programmering, og her kan du gå på tre måter:

    • Bruk ferdige, velprøvde biblioteker til å jobbe med DS18B20;
    • Kommuniser med sensoren direkte gjennom listen over installerte kommandoer;
    • Skriv ditt eget bibliotek på lavt nivå, inkludert funksjoner for overføring av databiter etter tidsluker, gitt i den tekniske dokumentasjonen.

    Det tredje alternativet er det vanskeligste og krever studier av en stor mengde informasjon. Innenfor rammen av denne artikkelen vil de to første alternativene bli vurdert.

    Motstandstemperaturfølere

    Temperaturmotstandssensorer (RTD) er laget av sjeldne metaller, for eksempel platina, hvis elektriske motstand varierer med temperaturen.

    Resistive temperaturdetektorer har en positiv temperaturkoeffisient, og gir, i motsetning til termistorer, høy temperaturmåle nøyaktighet. Imidlertid har de dårlig følsomhet. Pt100 er den mest tilgjengelige sensoren med en standard motstandsverdi på 100 ohm ved 0 ° C. Den største ulempen er høye kostnader.

    Fordelene med slike sensorer

    • Bredt temperaturområde fra -200 til 650 ° C
    • Gi strøm med høyt fall
    • Mer lineær sammenlignet med termoelementer og RTD

    Visninger

    Varmesensorer er klassifisert i henhold til forskjellige kriterier. Avhengig av installasjonen er de innebygde og eksterne.

    For elektriske gulv

    Mekaniske regulatorer er enkle å designe og vedlikeholde. De er egnet for små rom. Justering skjer ved hjelp av hjul eller nøkkel. Noen modeller er utstyrt med en barnesikringsfunksjon.

    Den eneste ulempen er mangelen på presis temperaturkontroll.

    For vanngulv

    Elektroniske modeller er ideelle for å regulere varmen i vanngulvet. De kan kontrollere temperaturen på gulvnivå eller innendørs. Utstyrt med en skjerm, utføres kontrollen ved hjelp av knapper. En elektronisk regulator lar deg justere gulvtemperaturen mer nøyaktig.

    For infrarøde gulv

    Bruken av en digital termostat med en infrarød temperaturføler kan redusere strømforbruket med 70%. Kontrollen utføres ved hjelp av berøringsskjermen.

    Dyre modeller har en programmeringsfunksjon. Kostnaden når opp til $ 500. Noen modeller kan styres via Internett.

    Infrarøde gulv

    Den infrarøde temperaturføler for gulvvarme er montert etter samme prinsipp som i elektriske gulv.

    Den plasseres mellom varmekomponentene, i et plastrør. Eller 15 cm fra kanten av filmen til grafittstripen ved hjelp av aluminiumstape.

    Termoelement

    Termoelementtemperaturfølere brukes oftest fordi de er nøyaktige, fungerer over et bredt temperaturområde fra -200 ° C til 2000 ° C, og er relativt billige. Et termoelement med ledning og en plugg på bildet nedenfor:

    Termoelementdrift

    Et termoelement er laget av to forskjellige metaller sveiset sammen for å produsere en potensiell forskjell over temperatur.Fra temperaturforskjellen mellom de to kryssene genereres en spenning som brukes til å måle temperaturen. Spenningsforskjellen mellom de to kryssene kalles Seebeck-effekten.

    Hvis begge forbindelsene har samme temperatur, er potensialet for forskjell i forskjellige forbindelser null, dvs. V1 = V2. Imidlertid, hvis kryssene har forskjellige temperaturer, vil utgangsspenningen i forhold til temperaturdifferansen mellom de to kryssene være lik deres V1 - V2 forskjell.

    iwarm-no.techinfus.com

    Oppvarming

    Kjeler

    Radiatorer