Obsah:

DIY teplotní senzor s jednou diodou: 3 kroky
DIY teplotní senzor s jednou diodou: 3 kroky

Video: DIY teplotní senzor s jednou diodou: 3 kroky

Video: DIY teplotní senzor s jednou diodou: 3 kroky
Video: Jak odemknout fabii bez klíčů rukama za 2 vteřiny 2024, Červenec
Anonim
DIY teplotní senzor s jednou diodou
DIY teplotní senzor s jednou diodou
DIY teplotní senzor s jednou diodou
DIY teplotní senzor s jednou diodou

Protože jedním z faktů o PN-křižovatkách je, že se jejich pokles napětí vpřed mění podle procházejícího proudu a teploty spoje, použijeme to k vytvoření jednoduchého levného teplotního senzoru.

Toto nastavení se běžně používá v mnoha integrovaných obvodech k měření vnitřní teploty a mnoha teplotních čidlech jako slavný LM35, který je založen na této vlastnosti.

Jednoduše pokles napětí vpřed diody (což je jediná PN-křižovatka) se mění, jak se mění množství proudu, který jimi prochází, a také jak se mění teplota diody, pokles napětí se bude měnit (Jak se teplota zvyšuje, pokles klesá o hodnotu (1,0 miliVoltů na 2,0 miliVoltů pro křemíkové diody a 2,5 miliVoltů pro germániové diody).

Takže průchodem konstantního proudu diodou by se pokles dopředného napětí nyní měl lišit pouze podle teploty diody. Potřebujeme nyní změřit dopředné napětí diody, použít několik jednoduchých rovnic a voilà, zde je váš teplotní senzor !!!

Zásoby

1 - 1n4007 dioda #12 - 1 odpor Kohm #13 - deska Arduino

Krok 1: Schéma zapojení

Kruhový diagram
Kruhový diagram

Jak vidíte na schématu, je to velmi jednoduché. zapojením diody do série s odporem omezujícím proud a stabilním zdrojem napětí můžeme získat hrubý zdroj konstantního proudu, takže měřené napětí na diodě se bude měnit pouze v důsledku změny teploty. Ujistěte se, že hodnota odporu není příliš nízké, že diodou prochází tolik proudu a vytváří znatelné vlastní zahřívání diody, také ne příliš vysoký odpor, takže procházející proud nestačí k udržení lineárního vztahu mezi dopředným napětím a teplotou.

odpor 1 kilo Ohm s napájením 5 V by měl vést k diodovému proudu 4 miliAmpérů, což je pro tento účel dostatečná hodnota. I (dioda) = VCC / (Série + Rdioda)

Krok 2: Kódování

Musíme mít na paměti, že v kódu existují některé hodnoty, které je třeba vyladit, abychom získali lepší výsledky, jako například:

1 - VCC_Voltage: jelikož hodnota analogRead () závisí na VCC čipu ATmega, musíme ji po měření na desce arduino přidat do rovnice.

2 - V_OLD_0_C: pokles napětí vpřed použité diody při proudu 4 mA a teplotě 0 stupňů Celsia

3 - Teplotní koeficient: teplotní gradient vaší diody (lépe z datového listu) nebo ji můžete změřit pomocí této rovnice: Vnew - Vold = K (Tnew - Told)

kde:

Vnew = nově naměřené poklesové napětí po zahřátí diody

Vold = naměřené poklesové napětí při určité pokojové teplotě

Tnew = teplota, na kterou byla dioda zahřátá

Told = stará pokojová teplota, při které byl naměřen Vold

K = koeficient teploty_ (záporná hodnota kolísající mezi -1,0 až -2,5 miliVoltů) Nakonec můžete nyní nahrát kód a získat výsledky teploty.

#define Sens_Pin A0 // PA0 pro desku STM32F103C8

double V_OLD_0_C = 690,0; // 690 mV Napětí vpřed při 0 Celsia při testovacím proudu 4 mA

double V_NEW = 0; // Nové dopředné napětí při pokojové teplotě při testovacím proudu 4 mA dvojnásobná Teplota = 0,0; // Pokojová vypočtená teplota dvojnásobek Teplota_ koeficient = -1,6; //-1,6 mV změna na stupeň Celsia (-2,5 pro germániové diody), lepší získat z diodového listu dvojité VCC_Voltage = 5010,0; // Napětí přítomné na 5V kolejnici arduina v miliVoltech (nutné pro lepší přesnost) (3300,0 pro stm32)

neplatné nastavení () {

// sem vložte svůj instalační kód, aby se spustil jednou: pinMode (Sens_Pin, INPUT); Serial.begin (9600); }

prázdná smyčka () {

// sem vložte svůj hlavní kód, aby se opakoval: V_NEW = analogRead (Sens_Pin)*VCC_Voltage/1024.0; // vydělte 4,0, pokud používáte 12bitovou teplotu ADC = ((V_NEW - V_OLD_0_C)/teplotní koeficient);

Serial.print ("Teplota =");

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

zpoždění (500);

}

Krok 3: Získání lepších hodnot

Získávání lepších hodnot
Získávání lepších hodnot
Získávání lepších hodnot
Získávání lepších hodnot

Myslím, že při provádění tohoto projektu je vhodné mít vedle sebe důvěryhodné zařízení pro měření teploty.

vidíte, že v odečtech je znatelná chyba, která se může dostat na 3 nebo 4 stupně Celsia, odkud tedy tato chyba pochází?

1 - možná budete muset upravit proměnné uvedené v předchozím kroku

2 - ADC rozlišení arduina je nižší, než jaké potřebujeme k detekci malého rozdílu napětí

3 - napěťová reference arduina (5V) je příliš vysoká pro tuto malou změnu napětí přes diodu

Pokud tedy budete toto nastavení používat jako teplotní senzor, měli byste si uvědomit, že ačkoli je levné a praktické, není přesné, ale může vám poskytnout velmi dobrou představu o teplotě vašeho systému, ať už je na DPS nebo namontovaný na běžící motor atd …

Tento návod je určen k použití nejmenšího počtu možných komponent, ale pokud chcete z této myšlenky získat co nejpřesnější výsledky, můžete provést některé změny:

1 - přidejte některé zesilovací a filtrační stupně pomocí operačních zesilovačů, jako v tomto odkazu arduino, ale mějte na paměti, že k žádnému z analogových pinů arduino nemůžete připojit více než 1,1 V.

tento řádek můžete přidat do funkce nastavení:

analogReference (VNITŘNÍ);

4 - Použijte mikrokontrolér s vyšším rozlišením ADC jako STM32F103C8, který má 12bitové rozlišení ADC. Stručně řečeno, toto nastavení založené na arduinu může poskytnout pěkný přehled o teplotě vašeho systému, ale ne tak přesné výsledky (přibližně 4,88 mV/čtení)

nastavení STM32F103C8 by vám poskytlo docela přesný výsledek, protože má vyšší 12bitový ADC a nižší 3,3V analogovou referenční hodnotu (přibližně 0,8 mV/čtení)

No to je ono !!: D

Doporučuje: