I2C teplotný senzor LM75

I2C teplotný senzor LM75

I2C teplotný senzor LM75

LM75 I2C snímač teploty teplomer I2C zbernica

Obsah

    Princíp činnosti

    El IC LM75 je a kremíkový polovodičový snímač teploty bandgap.

    V polovodičoch je zakázaná kapela Je to energetická zóna elektrónov, ktorá sa nemôže zvýšiť so zvýšením elektrického poľa, pretože neexistujú žiadne stavy, ktoré by sa mohli pohybovať rýchlejšie. Toto zakázaná kapela je zaradený medzi valenčné pásmo (nižšia energia) a vodivé pásmo (vyššia energia). Tepelná excitácia (zvýšenie teploty, na účely, ktoré nás zaujímajú) môže spôsobiť, že niektoré elektróny získajú dostatok energie na prechod do vodivé pásmo.

    Ako je vysvetlené v predchádzajúcom článku o elektronické meranie teploty, v kovoch, hoci počet nosičov nezávisí od teploty (všetky elektróny sú vždy k dispozícii), ich pohyblivosť je ovplyvnená teplotou, takže odpor v kovoch rastie s teplotou v dôsledku poklesu rýchlosti elektrónov v dôsledku nárast ich tepelné miešanie a rozptyl elektrónov, ktoré produkuje.

    V prípade polovodičov kvôli prítomnosti tohto zakázaná kapela Počet nosičov závisí od teploty (v závislosti od Fermi-Diracovo rozdelenie), čo spôsobuje zvýšenie vodivosti s teplotou. V polovodičoch spôsobuje zvýšenie teploty zvýšenie odporu, ale tiež (ďalšie) zvýšenie vodivosti.

    undefined kremíkové polovodičové teplotné senzory s medzerou v pásme, ako je to v prípade LM75, pracujú podľa tohto princípu, čo umožňuje určiť teplotu kvantifikáciou jej vplyvu na napätie v kremíkovej dióde.

    Hardvérové ​​komponenty LM75

    LM75 má tiež a analógovo-digitálny prevodník moduláciou Sigma-Delta ktorá je zodpovedná za získanie číselnej (digitálnej) hodnoty teploty, hodnoty, ktorá sa následne (každých 100 ms) uloží do jedného z jej registrov, z ktorých sa dá načítať cez zbernicu I2C.

    Snímač teploty LM75 I2C. Zjednodušená schéma operačných blokov

    Okrem registra, ktorý obsahuje nameranú teplotu, má LM75 register, do ktorého je možné uložiť maximálnu teplotu, ako aj komparátor, ktorý je schopný generovať signál, ak nameraná teplota prekročí teplotu uloženú v tomto druhom registri. Aby sa výstraha nespustila znova, kým nameraná teplota neklesne pod určitú úroveň, umožňuje tretí register uložiť hodnotu teploty hysteréza.

    Konfigurácia činnosti LM75 je uložená vo štvrtom registri, pomocou ktorého sa určujú podmienky, za ktorých sa generuje varovanie, spôsob spustenia tohto varovného signálu (režim prerušenia alebo porovnávacieho režimu), ako aj aktivácia zariadenia (režim). (normálna prevádzka alebo nízka spotreba) okrem iných parametrov.

    Technické špecifikácie a implementácia LM75

    Rozsah teplôt, ktoré je LM75 schopný merať, sa pohybuje od -55 °C do +125 °C a numerické rozlíšenie je 0.125 °C, hoci presnosť je v najlepšom prípade len ±2 °C, keď je teplota medzi − 25 °C a +100 °C a presnosťou ±3 °C pri najextrémnejších teplotách, medzi -55 °C a +125 °C.

    LM75. I2C teplotný senzor. Pinout

    Implementácia (hardvér) LM75 v obvode je veľmi jednoduchá, nepotrebuje viac komponentov ako odpory vytiahni del autobus I2C a môže byť napájaný napätím medzi 2,8 V a 5,5 V. V tom istom autobus I2C Až osem teplomerov LM75 je možné usporiadať konfiguráciou ich adresy pomocou troch kolíkov A0, A1 a A2 na vysokej alebo nízkej úrovni, ako je v týchto prípadoch obvyklé.

    LM75. I2C teplotný senzor. Aplikačný obvod

    Na druhej strane je použitie LM75 ako sondy nepohodlné kvôli baleniam, v ktorých je prezentovaná, TSSOP (TSSOP8) alebo SEC (SO8) a bežne sa používa na meranie teploty okolia alebo na meranie teploty komponentov usporiadaných v okolí PCB v ktorej je umiestnený teplomer LM75.

    Pri spustení je LM75 nakonfigurovaný na detekciu maximálnej teploty +80°C, teda teploty hysteréza +75 °C a prevádzkový režim komparátora, teda režim, ktorý napodobňuje činnosť termostatu: aktivuje varovanie pri dosiahnutí maximálnej teploty a iba vtedy, ak klesne pod hysteréza Regeneruje upozornenie.

    Využitie LM75 z mikrokontroléra cez zbernicu I2C

    Vďaka použitiu autobus I2C Obsluha LM75 je veľmi jednoduchá, stačí pristúpiť na adresu, ktorú zaberá na zbernici, uložiť alebo prečítať konfiguráciu a získať hodnotu nameranej teploty.

    Adresa I2C základňa LM75 je 0B01001XXX a je doplnená, ako je vysvetlené vyššie, o posledné tri adresové bity, ktoré sú hardvérovo nastavené pomocou kolíkov A0, A1 a A2 high (hodnota jedna) alebo low (nulová hodnota).

    LM75 ako teplomer

    Register, ktorý uchováva poslednú nameranú teplotu (TEMP) sa nachádza na adrese 0x00, konfiguračný register (CONF) je na adrese 0x01, register, ktorý ukladá teplotu hysteréza na adrese 0x02 a maximálna alebo nadmerná teplota (TOS) má adresu 0x03. Okrem aktuálnej teploty (TEMP) všetky fungujú ako čítanie a zápis.

    Použitie niektorých príkladov kódu vyvinutých pre Arduino (ktorá sa stala takmer univerzálnou referenciou) môže byť činnosť LM75 ďalej objasnená. Najzákladnejším užitočným príkladom je použitie LM75 ako teplomera načítaním záznamu poslednej nameranej teploty.

    Tento proces je obvyklý pri práci so zariadením I2C:

    1. Pridajte knižnicu I2C ku kódu s #include <Wire.h>
    2. Inicializujte knižnicu I2C použitie Wire.begin();
    3. Prístup k snímaču teploty LM75 získate pomocou Wire.beginTransmission(DIRECCION_LM75)
    4. Pošlite adresu registra, ku ktorému sa pristupuje pomocou Wire.write(REGISTRO)
    5. Uvoľnite autobus I2C s Wire.endTransmission()
    6. Opätovný prístup k LM75
    7. Požiadajte o hodnotu registra s Wire.requestFrom(DIRECCION,CANTIDAD)
    8. Overte, či boli údaje prijaté pomocou Wire.available()
    9. Prečítajte si požadovanú hodnotu Wire.read() (koľkokrát to tvoria bajty)
    10. Hoci to nie je nevyhnutné, po dokončení uvoľnite autobus I2C

    Okrem bežného protokolu na získavanie alebo ukladanie informácií do protokolov zariadenia pomocou autobus I2CNa využitie údajov, ktoré poskytuje LM75, je potrebné zvážiť formát, v ktorom interne reprezentuje teplotu.

    Získanie hodnoty uloženej v teplotných záznamoch LM75

    Na riadku 22 kódu v predchádzajúcom príklade môžete vidieť, ako načítať informácie uložené v troch teplotných registroch LM75. Používa dva bajty (16 bitov), ​​z ktorých je platných iba 11 najvýznamnejších bitov. Na čítanie teploty ako celého čísla (so zakódovaným znakom dvojkový doplnok) najvýznamnejší bajt sa načíta ako prvý do premennej int de Arduino a je otočený o 8 bitov doľava, pričom zostáva v najvýznamnejšej časti int. Druhý bajt sa potom načíta a pridá do premennej. int s operáciou OR

    Interpretácia hodnoty zaťaženej teploty LM75

    V riadku 24 môžete vidieť, ako interpretovať hodnotu teploty. V prvom rade je potrebné deliť 32 ako celé číslo (otočiť príslušných 11 bitov bez straty znamienka) a deliť 8, čo je počet „krokov“, ktorými je teplota reprezentovaná (oktávy stupňa) získať hodnotu typu float so zodpovedajúcimi desatinnými miestami. Keďže kompilátory (vrátane toolchain de Arduino) optimalizovať celočíselné delenie 32, nie je potrebné zachovávať znamienko a "ručne" otáčať bity, keďže operácia nie je (citeľne) rýchlejšia.

    Overte príjem dát zo zbernice I2C

    Aj keď predchádzajúci kód bude fungovať bez problémov aj napriek tomu, že si neoveríte, či prístrojom požadované dáta dorazili. autobus I2C, najortodoxnejšia (a odporúčaná) vec je počkať, kým údaje prídu v príslušnom počte. Keďže prenosová rýchlosť a odolnosť voči chybám je viac než dostatočná, je bežné nájsť kód, v ktorom sú dáta jednoducho vyžiadané a načítané bez čakania. Pre príklady je užitočné to urobiť týmto spôsobom, pretože neodvádzajú pozornosť od hlavného zámeru, ale pre produkčný kód je vhodné to urobiť tak, ako je navrhnuté v siedmom bode zoznamu komunikačného procesu. I2C. Kód v nasledujúcom príklade zdôrazňuje odporúčané zmeny na používanie LM75 vo fáze využívania.

    Nakonfigurujte prevádzku LM75

    Najzákladnejšia konfigurácia LM75 pozostáva zo stanovenia maximálnej teploty na generovanie varovania a hysteréza, ktorý určí, kedy sa deaktivuje a môže sa opakovať. Na konfiguráciu týchto hodnôt ich stačí uložiť do príslušných registrov.

    Rovnako ako aktuálny teplotný rekord, maximálna (výstražná) teplota a hysteréza Používajú dva bajty, ale na rozdiel od prvého nezohľadňujú 11 bitov (osmina stupňa), ale 9 (pol stupňa), takže aj keby bola uložená menšia hodnota, brali by sa do úvahy iba intervaly tohto rozlíšenia.

    Keďže v predchádzajúcom kóde sa mení iba konfigurácia teplôt súvisiacich s varovaním, zvyšok operácie zodpovedá predvolenej konfigurácii.

    V tejto predvolenej konfigurácii sú dôležité dve charakteristiky, po prvé režim varovania, štandardne nazývaný „režim termostatu“, ktorý pozostáva z aktivácie varovania pri dosiahnutí maximálnej teploty (alebo varovania) a jeho deaktivácie, kým nie je znížená na teplota hysteréza. Alternatívou je „režim prerušenia“, v ktorom sa signál aktivuje, keď prekročí maximum alebo keď dosiahne hodnotu nižšiu ako je hysteréza a resetuje sa načítaním akéhokoľvek záznamu, zvyčajne aktuálnej teploty.

    Druhou charakteristikou je, že varovný signál sa aktivuje na nízkej úrovni, to znamená, že kolík OS je na vysokej úrovni, kým sa nedosiahne maximálna varovná teplota. Keďže polarita varovného signálu (úroveň, pri ktorej sa aktivuje) je konfigurovateľná, v niektorých jednoduchých inštaláciách bude stačiť použiť tento signál (hardvér) na využitie LM75, napríklad pripojenie alebo odpojenie ventilátora, keď systém dosiahne určitú teplotu.

    Prevádzku LM75 je tiež možné nakonfigurovať tak, aby nevaroval ihneď po dosiahnutí varovnej teploty, ale po niekoľkých incidentoch. Toto správanie je veľmi užitočné pri práci na teplotnom limite alebo keď sa veľmi rýchlo mení. LM75 môže byť nakonfigurovaný tak, aby varoval po prekročení maximálnej teploty jeden, dva, štyri alebo šesťkrát.

    V konfiguračnom registri je aj bit na deaktiváciu ("vypnutie") LM75 a vstup do režimu nízkej spotreby, ktorý sa ukončí opätovnou zmenou tohto bitu alebo jednoducho pri načítaní ďalšieho registra.

    Pridať komentár

    Možno ste zmeškali