Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Liniowosc termistora

delta
-
-
Posty:22
Rejestracja:15 mar 2005, o 12:25
Lokalizacja:Mielec
Liniowosc termistora

Postautor: delta » 29 gru 2005, o 11:32

Witam
Proboje zrobic wielofunkcyjne urzadzenie, w ktorym jedna z funkcji byloby mierzenie temperatury. Zbudowane jest na Atmega 8535. Jeden z przetwornikow AC ma wlasnie mierzyc temperature pokojowa, czyli nie jest wymagana duza dokladnosc. Ze wzgledu na koszty odpadaja czujniki serii DSxxxx. Nie bardzo tez nadaje sie LM 35 ze wzgl. na rozdzielczosc - wyswietlana wartosc temperatury zmienia sie o 0.5 st C. Podobnie jest z KTY10. Moznaby chyba do tych dwoch ukladow zastosowac jakis wzmacniacz nap. co pewnie zwiekszyloby rozdzielczosc, ale niemam bardzo miejsca na plytce (jest konkretna obudowa). Pomyslalem wiec o zwyklym termistorze. Tylko jak programowo poradzic sobie z nieliniowoscia termistora.

Fragment programu:

$regfile = "8535def.dat"
$crystal = 4000000
Dim A As word
Config porta = input
porta = &b11111000

temperatura: 'podprogram pomiaru temperatury
Do
a = getadc(channel) 'pomiar przez przetwornik AC
'tutaj przeliczenie zmierzonej wartosci i wyswietlenie jej na 4 cyfr. wyswietlaczu 7 seg.
Loop

End

Wartosc zmierzona przez przetwornik AC miesci sie w przedzale :
2 st C = 290
40 st C = 670
Aby na wyswietlaczu bylo 2.0 st C trzeba 290 pomnozyc przez 0.069.
Ale aby na wyswietlaczu bylo 40.0 st C trzeba 670 pomnozyc juz przez 0.5971.
Dla temperatury 20 st C mnoznik powinien wynosic 0.422. Stosujac go do wszystkich temperatur, temperature 40 st C wyswietla jako 28.2 st C. Czyli kaplica. Wiem ze takiej temperatury raczej w pokoju nie bedzie, ale zalozylem wlasnie pomiar w zakresie 0 - 40 st C.
Oczywiscie caly program nie zawiera bledow, tylko wynik pomiaru temperatury nie jest liniowy.
Moze ktos ma jakis pomysl jak "wyprostowac" ta nieliniowosc.
Pozdrawiam wszystkich

mecik
-
-
Posty:1
Rejestracja:29 gru 2005, o 12:45
Lokalizacja:Gdańsk

Postautor: mecik » 29 gru 2005, o 13:02

dot. Liniowosc termistora
Rezystancja termistora zależy wykładniczo od odwrotności temperatury wyrażonej w Kelvinach (1K=temperatura + 273,15). dlatego do interpolacji należy użyć wzoru typu:
ln(R)=A + B/T
gdzie T=(temperatura w oC) + 273,15
Mierząc R termistora w kilku temperaturach można znaleźć współczynniki A i B przy pomocy regresji prostoliniowe w/g powyższego wzoru. Znając A i B można prosto obliczyć temperaturę, jeśli zmierzymy R wg wzoru:
t=B/(ln(R)-A) - 273,15
Opisany wzór nieźle spisuje się w szerokim zakresie temperatur, ja sprawdziłem to w zakresie 20-95 stopni Celsjusza. W razie potrzeby służę szczegółami
pozdrowienia
Mirosław Męcik

delta
-
-
Posty:22
Rejestracja:15 mar 2005, o 12:25
Lokalizacja:Mielec

Liniowosc termistora

Postautor: delta » 29 gru 2005, o 15:31

mecik dzieki za zainteresowanie tematem.
Ale nie bardzo rozumiem skad wziasc te wspolczynniki A i B oraz co to jest In(R). Czy moglbys pomoc i podstawic odpowiednie wartosci do podanych wzorow ? Przykladowe wartosci rezystancji termistora:
0 st C = 66k
20 st C = 26k
40 st C = 12k
Pozdrawiam

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 74 gości