Obsah:

DIY teplotný senzor s jednou diódou: 3 kroky
DIY teplotný senzor s jednou diódou: 3 kroky

Video: DIY teplotný senzor s jednou diódou: 3 kroky

Video: DIY teplotný senzor s jednou diódou: 3 kroky
Video: Lesson 77: Using VL53L0X 200cm Laser Distance Sensor | Arduino Step By Step Course 2024, Júl
Anonim
DIY teplotný senzor s jednou diódou
DIY teplotný senzor s jednou diódou
DIY teplotný senzor s jednou diódou
DIY teplotný senzor s jednou diódou

Pretože jedným z faktov o PN-križovatkách je, že sa ich pokles napätia vpred mení podľa prechádzajúceho prúdu a teploty križovatky, použijeme to na výrobu jednoduchého lacného teplotného senzora.

Toto nastavenie sa bežne používa v mnohých integrovaných obvodoch na meranie vnútornej teploty a v mnohých teplotných snímačoch ako slávny LM35, ktorý je založený na tejto vlastnosti.

Jednoducho sa pokles napätia vpred diódy (čo je jediný prechod PN) mení so zmenou množstva prúdu, ktorý ňou prechádza, a tiež so zmenou teploty diódy sa zmení aj pokles napätia (so zvyšujúcou sa teplotou pokles sa zníži o hodnotu (1,0 miliVoltov na 2,0 miliVoltov pre kremíkové diódy a 2,5 miliVoltov pre germániové diódy).

Takže prechodom konštantného prúdu cez diódu by sa pokles napätia vpred mal teraz líšiť iba podľa teploty diódy. Teraz musíme zmerať dopredné napätie diódy, použiť niekoľko jednoduchých rovníc a voilà, tu je váš snímač teploty !!!

Zásoby

1 - 1n4007 dióda #12 - 1 odpor Kohm #13 - doska Arduino

Krok 1: Schéma zapojenia

Schéma zapojenia
Schéma zapojenia

Ako vidíte na schéme, je to veľmi jednoduché. zapojením diódy do série s odporom obmedzujúcim prúd a stabilným zdrojom napätia môžeme získať hrubý zdroj konštantného prúdu, takže namerané napätie na dióde sa bude líšiť iba v dôsledku zmeny teploty. Uistite sa, že hodnota odporu nie je príliš nízke, že prúd prechádza diódou a spôsobuje výrazné samozohrievanie diódy, tiež nie veľmi vysoký odpor, takže prechod prúdu nestačí na udržanie lineárneho vzťahu medzi napätím vpred a teplotou.

1 kiloohmový odpor s napájaním 5V by mal mať za následok diódový prúd 4 miliAmpéry, čo je na tento účel dostačujúca hodnota. I (dióda) = VCC / (Série + Rdioda)

Krok 2: Kódovanie

Musíme mať na pamäti, že v kóde je niekoľko hodnôt, ktoré je potrebné vyladiť, aby sa dosiahli lepšie výsledky, ako napríklad:

1 - VCC_Voltage: keďže hodnota analogRead () závisí od VCC čipu ATmega, musíme ho po zmeraní na doske arduino pridať do rovnice.

2 - V_OLD_0_C: pokles napätia vpred použitej diódy pri prúde 4 mA a teplote 0 stupňov Celzia

3 - Teplotný koeficient: teplotný gradient vašej diódy (lepšie z údajového listu) alebo ju môžete zmerať pomocou tejto rovnice: Vnew - Vold = K (Tnew - Told)

kde:

Vnew = novo namerané poklesové napätie po zahriatí diódy

Vold = namerané poklesové napätie pri nejakej izbovej teplote

Tnew = teplota, na ktorú sa dióda zahriala

Told = stará izbová teplota, pri ktorej sa nameral Vold

K = koeficient teploty_ (záporná hodnota sa pohybuje od -1,0 do -2,5 miliVoltov) Nakoniec môžete teraz nahrať kód a získať svoje teplotné výsledky.

#define Sens_Pin A0 // PA0 pre dosku STM32F103C8

dvojitý V_OLD_0_C = 690,0; // 690 mV Napätie vpred pri 0 stupňoch Celzia pri testovacom prúde 4 mA

dvojnásobok V_NEW = 0; // Nové dopredné napätie pri izbovej teplote pri testovacom prúde 4 mA dvojnásobok Teplota = 0,0; // Dvojnásobná vypočítaná teplota v miestnosti Teplota_ koeficient = -1,6; //-1,6 mV zmena na stupeň Celzia (-2,5 pre germániové diódy), lepšie je získať z diódového listu dvojitý VCC_Voltage = 5010,0; // Napätie na 5V lište arduina v miliVoltoch (potrebné pre lepšiu presnosť) (3300,0 pre stm32)

neplatné nastavenie () {

// sem vložte svoj inštalačný kód, aby sa spustil raz: pinMode (Sens_Pin, INPUT); Serial.begin (9600); }

prázdna slučka () {

// sem zadajte svoj hlavný kód, aby sa spúšťal opakovane: V_NEW = analogRead (Sens_Pin)*VCC_Voltage/1024.0; // delenie 4,0, ak používate 12 -bitovú teplotu ADC = ((V_NEW - V_OLD_0_C)/teplotný koeficient);

Serial.print ("Teplota =");

Serial.print (teplota); Serial.println ("C");

oneskorenie (500);

}

Krok 3: Získanie lepších hodnôt

Získanie lepších hodnôt
Získanie lepších hodnôt
Získanie lepších hodnôt
Získanie lepších hodnôt

Myslím si, že je vhodné mať pri sebe pri tomto projekte dôveryhodné zariadenie na meranie teploty.

vidíte, že v údajoch je viditeľná chyba, ktorá sa môže dostať na 3 alebo 4 stupne Celzia, odkiaľ teda táto chyba pochádza?

1 - možno budete musieť vyladiť premenné uvedené v predchádzajúcom kroku

2 - ADC rozlíšenie arduina je nižšie, ako potrebujeme na detekciu malého rozdielu napätia

3 - referencia napätia arduina (5V) je príliš vysoká na túto malú zmenu napätia na dióde

Ak teda budete používať toto nastavenie ako snímač teploty, mali by ste si uvedomiť, že aj keď je to lacné a praktické, nie je presné, ale môže vám poskytnúť veľmi dobrú predstavu o teplote vášho systému, a to buď na DPS alebo namontované na bežiaci motor atď …

Tento návod je určený na použitie čo najmenšieho počtu komponentov. Ak však chcete z tejto myšlienky získať čo najpresnejšie výsledky, môžete vykonať niekoľko zmien:

1 - pridajte niekoľko zosilnení a filtračných stupňov pomocou operačných zosilňovačov, ako je to v tomto odkaze2 - použite nižší interný analógový referenčný regulátor ako dosku STM32F103C8 s 3,3 voltovým analógovým referenčným napätím (pozri bod 4) 3 - použite internú 1,1 V analógovú referenciu v arduino, ale uvedomte si, že k žiadnemu z analógových pinov arduino nemôžete pripojiť viac ako 1,1 voltu.

tento riadok môžete pridať do funkcie nastavenia:

analogReference (VNÚTORNÝ);

4 - Použite mikrokontrolér s vyšším rozlíšením ADC ako STM32F103C8, ktorý má 12 -bitové rozlíšenie ADC. Stručne povedané, toto nastavenie založené na arduine môže poskytnúť pekný prehľad o teplote vášho systému, ale nie také presné výsledky (približne 4,88 mV/čítanie)

nastavenie STM32F103C8 by vám poskytlo celkom presný výsledok, pretože má vyšší 12-bitový ADC a nižšiu 3,3V analógovú referenčnú hodnotu (približne 0,8 mV/čítanie)

No to je ono !!: D

Odporúča: