I2C temperatuuriandur LM75

I2C temperatuuriandur LM75

I2C temperatuuriandur LM75

LM75 I2C temperatuurianduri termomeeter I2C siin

Sisukord

    Toimimispõhimõte

    El IC LM75 on a räni pooljuht ribalaiuse temperatuuriandur.

    Pooljuhtides on keelatud bänd See on elektronide energiatsoon, mida ei saa elektrivälja suurenemisega suurendada, kuna kiiremaks liikumiseks pole olekuid. See keelatud bänd sisaldub vahel valentsriba (madalam energia) ja juhtivusriba (kõrgem energia). Termiline ergutus (temperatuuri tõus meid huvitavatel eesmärkidel) võib panna mõned elektronid omandama piisavalt energiat, et siseneda juhtivusriba.

    Nagu on selgitatud eelmises artiklis elektrooniline temperatuuri mõõtmine, metallides, kuigi kandjate arv ei sõltu temperatuurist (kõik elektronid on alati saadaval), mõjutab nende liikuvust temperatuur, nii et metallide takistus suureneb temperatuuri tõustes elektronide kiiruse vähenemise tõttu. nende suurenemine termiline segamine ja selle tekitatud elektronide hajumist.

    Pooljuhtide puhul selle olemasolu tõttu keelatud bänd Kandjate arv sõltub temperatuurist (olenevalt Fermi-Dirac jaotus), mis põhjustab juhtivuse tõusu temperatuuri tõustes. Pooljuhtides suurendab temperatuuri tõus takistust, kuid suurendab ka juhtivust (edasi).

    osa räni pooljuhtide ribalaiuse temperatuuriandurid, nagu LM75 puhul, töötavad selle põhimõtte kohaselt, võimaldades temperatuuri määrata kvantifitseerides selle mõju ränidioodi pingele.

    LM75 riistvarakomponendid

    LM75-l on ka a analoog-digitaalmuundur Sigma-Delta modulatsiooniga mis vastutab temperatuuri numbrilise (digitaalse) väärtuse saamise eest, mis salvestatakse hiljem (iga 100 ms järel) ühte selle registritest, millest saab lugeda siini kaudu. I2C.

    Temperatuuriandur LM75 I2C. Tööplokkide lihtsustatud skeem

    Lisaks mõõdetud temperatuuri sisaldavale registrile on LM75-l register, kuhu saab salvestada maksimaalse temperatuuri, samuti komparaator, mis on võimeline genereerima signaali, kui mõõdetud temperatuur ületab selles teises registris salvestatut. Et hoiatust mitte uuesti käivitada enne, kui mõõdetud temperatuur langeb alla teatud taseme, võimaldab kolmas register salvestada temperatuuri väärtuse hüsterees.

    LM75 töö konfiguratsioon salvestatakse neljandasse registrisse, milles määratakse hoiatuse genereerimise tingimused, hoiatussignaali käivitamise viis (katkestusrežiim või võrdlusrežiim) ning seadme aktiveerimine (režiim). . tavatöö või väike tarbimine) muude parameetrite hulgas.

    LM75 tehnilised kirjeldused ja teostus

    Temperatuuride vahemik, mida LM75 suudab mõõta, varieerub vahemikus –55 °C kuni +125 °C ja numbriline eraldusvõime on 0.125 °C, kuigi täpsus on parimal juhul vaid ±2 °C, kui temperatuur on vahemikus – 25 °C ja +100 °C ning täpsusega ±3 °C kõige äärmuslikumatel temperatuuridel, vahemikus –55 °C kuni +125 °C.

    LM75. I2C temperatuuriandur. Pinout

    LM75 rakendamine (riistvara) vooluringis on väga lihtne, see ei vaja rohkem komponente kui takistid üles tõmbama kohta buss I2C ja saab toita pingega vahemikus 2,8 V kuni 5,5 V. Samas buss I2C Kuni kaheksa LM75 termomeetrit saab paigutada, konfigureerides nende aadressi kolme viiguga A0, A1 ja A2 kõrgel või madalal tasemel, nagu sellistel juhtudel tavaliselt.

    LM75. I2C temperatuuriandur. Rakendusahel

    Teisest küljest on LM75 kasutamine sondina ebamugav pakendite tõttu, milles see on esitatud, TSSOP (TSSOP8) Või SEC (SO8) ja seda kasutatakse tavaliselt ümbritseva õhu temperatuuri või seadme keskkonnas paiknevate komponentide temperatuuri mõõtmiseks. PCB milles asub termomeeter LM75.

    Käivitamisel on LM75 konfigureeritud tuvastama maksimaalset temperatuuri +80°C, temperatuuri hüsterees +75 °C ja võrdlusrežiimi töörežiim, st režiim, mis emuleerib termostaadi tööd: see aktiveerib hoiatuse, kui maksimaalne temperatuur on saavutatud ja ainult siis, kui see langeb alla hüsterees Taastab teate.

    LM75 kasutamine mikrokontrollerist I2C siini kaudu

    Tänu buss I2C LM75 käsitsemine on väga lihtne, konfiguratsiooni salvestamiseks või lugemiseks ja mõõdetud temperatuuri väärtuse saamiseks lihtsalt pääsete juurde siinis olevale aadressile.

    Aadress I2C LM75 baas on 0B01001XXX ja seda täiendavad, nagu eespool selgitatud, viimase kolme aadressibitiga, mis on seatud riistvara poolt viigudega A0, A1 ja A2 kõrge (väärtus üks) või madal (väärtus null).

    LM75 kui termomeeter

    Viimane mõõdetud temperatuuri (TEMP) salvestav register asub aadressil 0x00, konfiguratsiooniregister (CONF) on aadressil 0x01, register, mis salvestab temperatuuri hüsterees aadressil 0x02 ja maksimaalse või ületemperatuuri (TOS) aadress on 0x03. Välja arvatud praegune temperatuur (TEMP), toimivad need kõik lugemis- ja kirjutamisfunktsioonina.

    Kasutades mõnda jaoks välja töötatud koodinäidet Arduino (millest on saanud peaaegu universaalne viide) saab LM75 toimimist veelgi selgitada. Kõige elementaarsem kasulik näide on kasutada LM75 termomeetrina, lugedes viimase mõõdetud temperatuuri rekordit.

    Protsess on seadmega töötamisel tavaline I2C:

    1. Lisage raamatukogu I2C koodi juurde #include <Wire.h>
    2. Initsialiseerige raamatukogu I2C kasutamine Wire.begin();
    3. Juurdepääs temperatuuriandurile LM75 kasutades Wire.beginTransmission(DIRECCION_LM75)
    4. Saatke selle registri aadress, millele juurdepääsu kasutasite Wire.write(REGISTRO)
    5. Vabastage buss I2C koos Wire.endTransmission()
    6. Juurdepääs uuesti LM75-le
    7. Taotlege registriväärtust kasutades Wire.requestFrom(DIRECCION,CANTIDAD)
    8. Kontrollige, kas andmed on vastu võetud kasutades Wire.available()
    9. Lugege nõutud väärtust Wire.read() (nii mitu korda, kui baitid kokku moodustavad)
    10. Kuigi see pole oluline, vabastage pärast lõpetamist buss I2C

    Lisaks tavapärasele protokollile teabe hankimiseks või salvestamiseks seadme logidesse kasutades buss I2CLM75 pakutavate andmete kasutamiseks on vaja arvestada vorminguga, milles see sisemiselt temperatuuri esitab.

    LM75 temperatuurikirjetesse salvestatud väärtuse saamine

    Eelmise näite koodi real 22 näete, kuidas laadida LM75 kolme temperatuuriregistri poolt salvestatud teavet. See kasutab kahte baiti (16 bitti), millest kehtivad ainult 11 kõige olulisemat bitti. Temperatuuri lugemiseks täisarvuna (märgiga kodeeritud kahe täiend) kõige olulisem bait laaditakse kõigepealt muutujasse int de Arduino ja seda pööratakse 8 bitti vasakule, jättes selle kõige olulisemasse osasse int. Seejärel loetakse teine ​​bait ja lisatakse muutujale. int operatsiooniga VÕI

    LM75 laaditud temperatuuri väärtuse tõlgendamine

    Real 24 näete, kuidas tõlgendada temperatuuri väärtust. Kõigepealt on vaja jagada 32-ga täisarvuna (pöörata vastavaid 11 bitti ilma märki kaotamata) ja jagada 8-ga, mis on "sammude" arv, millega temperatuuri esitatakse (kraadi oktaavid) tüübi väärtuse saamiseks float vastavate kümnendkohtadega. Kuna kompilaatorid (sh toolchain de Arduino) optimeerige täisarvude jagamist 32-ga, pole vaja märgi säilitamist ja bitte "käsitsi" pöörata, kuna toiming ei ole (tuntavalt) kiirem.

    Kontrollige andmete vastuvõttu I2C siinilt

    Kuigi eelmine kood töötab probleemideta vaatamata sellele, et ei kontrollita, kas seadme küsitud andmed on kohale jõudnud. buss I2C, kõige õigeusklikum (ja soovitavam) on oodata, kuni andmed saabuvad sobivas arvus. Kuna edastuskiirus ja veakindlus on enam kui piisavad, siis on tavaline, et leitakse kood, milles andmed lihtsalt küsitakse ja loetakse neid ootamata. Näidete puhul on kasulik seda teha nii, kuna need ei tõmba tähelepanu põhieesmärgilt kõrvale, kuid tootmiskoodi puhul on soovitatav seda teha nii, nagu on soovitatud suhtlusprotsessi loendi seitsmendas punktis I2C. Järgmises näites olev kood tõstab esile soovitatavad muudatused LM75 kasutamiseks kasutusfaasis.

    Seadistage LM75 töö

    LM75 kõige elementaarsem konfiguratsioon seisneb hoiatuse ja hoiatuse genereerimiseks maksimaalse temperatuuri määramises hüsterees, mis määrab, millal see desaktiveeritakse ja seda saab korrata. Nende väärtuste konfigureerimiseks peate need salvestama ainult vastavatesse registritesse.

    Nagu praegune temperatuurirekord, on ka maksimaalne (hoiatus)temperatuur ja hüsterees Nad kasutavad kahte baiti, kuid erinevalt esimesest ei arvesta nad 11 bitti (kaheksandik kraadi), vaid 9 (pool kraadi), nii et isegi väiksema väärtuse salvestamisel võetakse arvesse ainult selle eraldusvõime intervalle.

    Kuna eelmises koodis muudetakse ainult hoiatusega seotud temperatuuride konfiguratsiooni, siis ülejäänud toiming vastab vaikekonfiguratsioonile.

    Selles vaikekonfiguratsioonis on olulised kaks omadust, esiteks hoiatusrežiim, vaikimisi nn "termostaadi režiim", mis seisneb hoiatuse aktiveerimises, kui maksimaalne temperatuur (või hoiatus) on saavutatud, ja seda ei desaktiveerita enne, kui see langeb temperatuurini. temperatuur hüsterees. Alternatiiviks on "katkestusrežiim", mille puhul signaal aktiveeritakse, kui see ületab maksimumi või kui see saavutab väärtuse, mis on väiksem kui hüsterees ja lähtestatakse mis tahes kirje, tavaliselt hetketemperatuuri lugemisega.

    Teine omadus on see, et hoiatussignaal aktiveeritakse madalal tasemel, st OS-i viik on kõrgel tasemel kuni maksimaalse hoiatustemperatuuri saavutamiseni. Kuna hoiatussignaali polaarsus (tase, millel see aktiveeritakse) on konfigureeritav, piisab mõne lihtsa paigalduse korral selle signaali (riistvara) kasutamisest LM75 kasutamiseks, näiteks ventilaatori ühendamiseks või lahtiühendamiseks, kui süsteem saavutab teatud temperatuuri.

    Samuti on võimalik LM75 tööd konfigureerida nii, et see ei hoiataks kohe pärast hoiatustemperatuuri saavutamist, vaid teeb seda pärast mitmeid intsidente. See käitumine on väga kasulik, kui töötate temperatuuripiiranguga või kui see muutub väga kiiresti. LM75 saab konfigureerida hoiatama pärast maksimaalse temperatuuri ületamist üks, kaks, neli või kuus korda.

    Konfiguratsiooniregistris on ka natukene LM75 deaktiveerimiseks ("välja lülitamiseks") ja madala tarbimise režiimi sisenemiseks, millest väljutakse seda bitti uuesti muutes või lihtsalt järgmise registri lugemisel.

    Postita kommentaar

    Võib-olla jäite vahele