Elektroda.pl
Elektroda.pl
X
Elektroda.pl
AdexAdex
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

termomert mikroprocesorowy

05 Kwi 2005 21:46 4520 24
  • Poziom 10  
    Mam do zrobienia termometr mikroprocesorowy oparty na 8051, czyli ma do zaprojektowania układ który będzie zczytywał temperature z PT100 i wyświetlał wartość na wyświetlaczu. Jakie jest najlebsze rozwiązanie i jaki ma zastosować przetwornik?
  • AdexAdex
  • Poziom 33  
    NajleBsze będzie rozwiązanie właściwe dla tego zastosowania. A o tym zastosowaniu niewiele wiemy, więc może z łaski swojej napiszesz na jaki zakres ma być ten termometr i jakiej rozdzielczości wymagasz bo bez tego ciężko dobrać przetwornik.
  • AdexAdex
  • Poziom 19  
    Prostszym sposobem byłoby zrobienie termometru opartego o układ Dallas DS1820 :> Komunikacja po 1wire :)
  • Poziom 10  
    Termometr ma pracować na zakresie od -20°C do 100°C z dokładnością do pierwszego miejsca po przecinku.
  • Poziom 15  
    DS18B20 i magistrala 1-Wire.
    Najprościej.
    Do tego kawałek kodu w Bascomie i zadziała.
    Dlaczego koniecznie musisz to zrobić na 8051, przecież to już staroć
  • Pomocny post
    Poziom 33  
    PioTherm napisał:
    DS18B20 i magistrala 1-Wire.
    Najprościej.
    Do tego kawałek kodu w Bascomie i zadziała.
    Dlaczego koniecznie musisz to zrobić na 8051, przecież to już staroć

    Jak nie masz nic do powiedzenia to się nie odzywaj.
    Czasami ktoś musi coś zrobić bo mu to jest potrzebne, a nie dlatego, że w EP napisali, że to proste z kawałkiem kodu w BASCOMie. Co do '51 i starocia to przeżyje on pewnie większość z modnych obecnie uC.

    Felek01 napisał:
    Termometr ma pracować na zakresie od -20°C do 100°C z dokładnością do pierwszego miejsca po przecinku.


    te 0,1 stopnia to rozdzielczość, czy dokładność jest taka wymagana? Jeżeli rozdzielczość to tak:
    Zkres -20 do 100 stopni z rodzielczością 0,1 stopnia czyli przetwornik musi mieć minimum 1200 poziomów (ze względu na nieliniowość Pt, wskazane by było nieco więcej),.
    1200 poziomów to trochę więcej niż 10 bitów, 11 bitowych przetworników raczej nie ma, pozostaje jakiś 12 bitowy.
    Może to być np. MCP3202 tu masz manuala:
    http://katalogi.iele.polsl.gliwice.pl/d.php?id=32147&pdf=21034b
    koszt w elfie pojedyńczej sztuki około 20zł.
    Z tego co pamiętam to miał on możliwość pracy różnicowej - co może być przydatne jeżeli zamierzasz zrobić z tym Pt mostek. Jest coprawda unipolarny ale to można rozwiązać tak, że dobierzesz równowagę mostka nieco poniżej tych -20 stopni i nigny nie będziesz miał napięcia ujemnego.

    Możesz też użyć innego układu np. ICL7135 (z podwójnym całkowaniem 4,5 cyfry LED), jest też przystosowany do współpracy z uC. Jest oczywiście znacznie wolniejszy od tamtego ale za to znacznie bardziej odporny na zakłócenia sieci 50Hz.
  • Poziom 16  
    ten pt100 pod wpływem temp zmienia rezystancję. Więc proponuję wykorzystać układ ne555, który rezystancję zmieni na impulsy i za pomocą 51 zmierzyć liczbę inpuslów w danej chwili (np. 10sek).
  • Poziom 33  
    viki napisał:
    ten pt100 pod wpływem temp zmienia rezystancję. Więc proponuję wykorzystać układ ne555, który rezystancję zmieni na impulsy i za pomocą 51 zmierzyć liczbę inpuslów w danej chwili (np. 10sek).


    Ludzie zastanówcie się zanim coś napiszecie!!! Jeżeli piszecie żeby tylko coś napisać to dajcie sobie spokój.
    Pt100 ma przyrost około 1/3 oma na stopieć celcjusza (jest to nieliniowe i nieco inne w zakresie temperatury ujemnej i dodoatniej) to jakie będą zmiany częstotliwości na wyjściu przy takich zmianach rezystancji??
  • Poziom 15  
    Te TDV ! Z całym uznaniem dla Twojej wiedzy.
    Może napiszesz nam jeszcze, że w tej chwili korzystasz z DOSa zainstalowanego na 286 lub XT ?
    Coś Ty taki niereformowalny ? Pytałem po prostu i podrzuciłem koledze
    łatwiejsze rozwiązanie, przyznasz chyba ?!
  • Poziom 10  
    Dzięki za podpowiedzi!
    Mam takie wymogi w szkole że muszę wykonać układ na 51. Dokładność ma być 0,1. Czy może mi ktoś przesłać schemat jak to ma wyglądać?
    Byłbym bardzo wdzięczny!!
  • Poziom 33  
    PioTherm napisał:
    Te TDV ! Z całym uznaniem dla Twojej wiedzy.
    Może napiszesz nam jeszcze, że w tej chwili korzystasz z DOSa zainstalowanego na 286 lub XT ?
    Coś Ty taki niereformowalny ? Pytałem po prostu i podrzuciłem koledze
    łatwiejsze rozwiązanie, przyznasz chyba ?!


    Może i łatwiejsze ale problem w tym, że nie za bardzo rozwiązanie... A to z kilku powodów - po pierwsze kolega napisał wyraźnie, że termometr ma być na '51 i czujniku Pt100, a po drugie termometry na Pt100 nie zawsze da się zastąpić układami DS1820 czy DS1621 itp. z prostego powodu - Pt100 może mieć zakres pomiarowy do 500 stopni (poniżej zera tez da się nim mierzyć bardzo nisko). W poście nie było wyszczególnionego zakresu, więc automatyczne zawężanie go do 150 stopni jest kiepskim pomysłem.
    W tej chwili nei korzystam z DOS'a ale mam w domu IBM XT - komputer ma coś 16 lat i jest nadal w 100% sprawny, łącznie z kalwiaturą oryginalną i co ciekawe klawiatura jest ze złączem PS/2, a na płycei głównej jest zintegrowana karta VGA. Dzisiejsze puszki marki sklep za rogiem dawno wyzdychają, a ten XTek będzie dalej zdatny do użytku.

    Felek01: przejrzyj te posty:
    https://www.elektroda.pl/rtvforum/topic102568.html
    https://www.elektroda.pl/rtvforum/topic116645.html
  • Pomocny post
    Poziom 16  
    Nie do końca zgadzam sie z Tdv. Charakterystyka temp,rezystancja jest nieliniowa, dla pt100 klasy c. Dla pt100 klasy a i b jest liniowa. Nawet dla nieliniowej charakterystyki w uP może być tablica konwersji, która w oparciu o kilka punktów kalibracji pozwoli zyskać przyzwoite dokładności.
    Jeżeli założymy, że w czasie 10sek mierzymy 1000 impulsów to wzrost temp o 10 stopni spowoduje odczytanie 1040 impulsów. Tdv więcej optymizmu.
    Poniżej zamieszczam schemet układu do pomiaru wilgotności który zrealizowałem w swojej pracy dyplomowej. Tam zmiana wilgotności jest proporcjonalna do pojemności kondensatora. Wystarczy jednak dobrać kondensator a zasiast rezystora wstawić czujnik temperatury. Jeśli ktoś jest zainteresowany to mogę zamieścić całą pracę z kodem dla uP i opisami.
  • Pomocny post
    Poziom 33  
    viki: optymista to ktoś kto na wszystko patrzy z nadzieją i zawsze liczy na pozytywne rozwiązania, pesymista to optymista ze stażem.
    Właśnie nabierasz stażu, otóż:

    1. Na tym schemacie jak na mój gust są błędy i to raczej nei będzie działać (przy założeniu, że to ma być generator astabilny) ale załóżmy że to wynik pośpiechu itd. i że nie schodzi to na drugi plan.
    Schemat układu astabilnego z datashitu jest poniżej.

    2. czasy stanów wysokich i niskich opisane są wzorami:
    tH=0,693*(Ra+Rb)*C
    tL=0,693*Rb*C

    f=1,44/((Ra+2Rb)*C) - w przybliżeniu,
    wzory na żywca z manuala: http://katalogi.iele.polsl.gliwice.pl/d.php?id=84482&pdf=ne555
    Załóżmy rozsądne C=10uF, Pt100 jest jako Rb i Ra=Rb w 0stopniach, czyli 100 omów.

    f(0deg C)=480Hz,
    zakładam dla ułatwienia 130 omó dla 100 stopni:
    f(100 deg C)=400Hz

    Czyli masz 80 Hz zmiany f przy przyroście o 100 stopni... Z tego wynika, że pomiar możesz robić z rozdzielczością 1,25 stopnia. I to rozdzielczością, bo dokładność będzie pewnei rzędu 3- 4 stopni).
    Można oczywiście nieco inaczej Podobierać C itd. ale jednego nie zmienisz w sumie Ra i Rb to kilkaset omów ( bo jak dodoasz Ra w kOhm to przyrosty R w stosunku do Ra+Rb będą znikome), przy zasilaniu 5V masz prąd płynący przez Pt100 na poziomie 20mA!!! Pt100 będzie się sam grzał od tego prądu. O wpływie temperatury otoczenia na taki układ już nie pisze. Jednym słowem zbudowanie termometru o wymaganych parametrach w ten sposób jest raczej skomplikowanym zadaniem projektowym i nie o nieliniowość ch-ki tu chodzi, a o sam pomiar.
  • Poziom 16  
    Wszystko się zgadza, ale jeśli założysz C=1u to masz 800 hz przy wzroście o 100-stopni i automatycznie roździelczość 0,125 stopnia.
    Dalej sie upieram, że na ne555 i 51 można taki układ zrealizować.
    Tdv - dzieki za rzeczowe odpowiedzi
    Załączniki:
  • Poziom 12  
    Myślę, że w tej kwestii nie ma co wymyślać "genialne rozwiązania", a raczej zastosować, normalne układy pomiarowe na wzmacniaczach operacyjnych, inne tęgie głowy już nad tym myślały - my już nie musimy. Ja proponuję standardowe rozwiązanie dla tego typu czujników:
    -Źródło prądowe o stałym, niskim prądzie rzędu 0,1 - 1 mA (jeden wzmacniacz operacyjny, tranzystor MOSFET, jeden rezystor). Stały niski prąd nie wygina i tak już nieliniowej charakterystyki - tak na marginesie.
    - Źródło prądowę podłączone do czujnika - pomiar spadku napięcia na obciązeniu.
    - Wzmacniacz napięcia (spaku napięcia na czujniku) - zbudowany na jednym wzm. operacyjnym i 2 rezystorach.
    - sygnał wyjściowy na procesorek z wejściem A/D, dalej obróbka w/g tablicy bądź aproksymowanej funkcji. Ja proponuję zbadać charakterystykę w kilkudzieśięciu punktach i aproksymować układem równań 4,5 stopnia.

    ps.
    To niesamowite co ludzie potrafią naopowiadać nie mając nic do powiedzenia.
  • Poziom 33  
    amachaj napisał:

    ...... Ja proponuję zbadać charakterystykę w kilkudzieśięciu punktach i aproksymować układem równań 4,5 stopnia.

    ps.
    To niesamowite co ludzie potrafią naopowiadać nie mając nic do powiedzenia.


    Racja, racja - zważywszy, że ch-kę Pt100 można opisać funkcją kwadratową w zkresie powyżej 0 stopni C, i sześcienną w zakresie poniżej zera.
  • Poziom 12  
    Tdv napisał:

    Racja, racja - zważywszy, że ch-kę Pt100 można opisać funkcją kwadratową w zkresie powyżej 0 stopni C, i sześcienną w zakresie poniżej zera.


    Oczywiście, że można - tylko w teorii. W praktyce wygląda to tak, że na chatrakterystyce są różne dziwne "załamki", no a stopień wielomianu (tu się kłania matematyka) musi być większy od ilości tych "załamek". Oczywiście może przesadziłem z 5 stopniem, ale 4 lub 3 będzie potrzebny.
    Ma przecież być dokładność 0,1 C - a nie rozdzilczość 0,1 C z dokładnością 5 C.
    No i ważna rzecz Pt100 zmienia charakterystykę w funkcji prądu - dlatego wyznaczać ją należy w dla takiego samego prądu co prąd pomiarowy.
  • Poziom 33  
    Ciekawa teoria...
    Myślałem, że ch-ka Pt100 jest opisna i snadardowa (przewidziana normą) i jak coś się nazywa Pt100 to musi być z nią zgodne.
    Co do wpływu prądu to nic nie wygina - za duży prąd powoduje podgrzewanie czujnika, co oczywiście się przenosi na wynik pomiaru.
  • Poziom 12  
    Tdv napisał:
    Ciekawa teoria...
    Myślałem, że ch-ka Pt100 jest opisna i snadardowa (przewidziana normą) i jak coś się nazywa Pt100 to musi być z nią zgodne.
    Co do wpływu prądu to nic nie wygina - za duży prąd powoduje podgrzewanie czujnika, co oczywiście się przenosi na wynik pomiaru.

    No to proszę zobaczyć do tej normy co mówi o błędach - norma przewiduje trochę mniejszą dokładność niż 0,1 % - która ma być osiągnięta w projekcie.
  • Poziom 33  
    Nie mam jej pod ręką, więc nie mam jak do niej zajrzeć. BTW to 0,1% z czego?
    A w ogóle to jaki jest związek 0,1% z tym co pisałeś dwa posty wyżej?
  • Poziom 12  
    Jeśli dokładność ma być zachowana w całym zakresie pomiaru czyli do 120 C, i błąd bezwzględny ma być mniejszy od rozdzielczości to:

    0,1/ 120 = 0,000833333 = 0,08%

    Czyli błąd względny czujnika musi być mniejszy od ok 0,1 % .
  • Poziom 16  
    Jeśli czytam o wielomianach 4,5 stopnia ( chciałbym zobaczyć realizacje takiej funkcji na 51 w asmie) to postanowiłem mimo wszystko dalej pokazać realizacje na ne555, chociażby dlatego, że nie lubie opinii, że tylko jedna droga jest najlepsza. Każde rozwiązanie ma lepsze i gorsze strony a za rozwiązaniem z ne555 przemawia prostota i niski koszt realizacji. Zamiast wielomanu 4,5 stopnia proponuje tabelę pomiarową tab[temp,freq]. Tabelę taką proponuję wyznaczyć podłączając wykonany układ ne555 z czujnikem do dobrej klasy częstotliowościomierza. Temperaturę mierząc termometrem o odpowiednio dobranej klasie pomiarowej. Punkty pomiarowe powinny być oczywiście zagęszczone w miejscu, gdzie charakterystyka jest nieliniowa. Pomiędzy wyznaczonymi punktami pomiarowymi temperature można wtedy obliczyć na podstawie częstotliwości z równania liniowego.
  • Poziom 12  
    Trzeba jeszcze pomyśleć czy się nie robi sztuki dla sztuki: Jeśli termometr ma rozdzielczość 0,1 C i zakres -20 do 100 C to mamy 1200 punktów pomiarowych. Jeśli każdy to 2 bajty to mamy 2400 bajtów na tablicę konwersji - można i tak.
    A co do programowania - no można być upartym i dalej pisać programy w czystym asemblerze albo sięgnąć po C, choćby i darmowy, i nie marwić się jak zrealizować pierwiastkowanie czy sinus.
    Tak na prawdę to co z tego, że wyświetlimy sobie np. 2 miejsca po przecinku jeśli termometr będzie dokładny do 5 C..
  • Poziom 16  
    Te 1200 punktów pomiarowych jest wzięte z palca i świadczy, Amachaj że nie przeczytałeś dokładnie mojego postu. Punktów może być np. 100 a ich odpowiedni dobór zapewni że liniowa aproksynacja pomiędzy nimi nie przekroczy zadanego błedu.
  • Poziom 10  
    Zrobiłem termomert na układzie Dallas DS1820