Skocz do zawartości

Olej - Temperatura Oleju - Termometr - Czujnik Temperatury


Gość bkieszkowski
 Share

Rekomendowane odpowiedzi

Czy mógłby ktoś zmierzyć jaką długość licząc od końca gwintu ma czyjnik temperatury oleju, ten wkręcany srebrny ?

Chodzi mi konkretnie ile centymetrów zanurzyć ten czujnik w silniku.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 month later...

Wspomóżcie radą dobrzy ludzie.... ;)

Krótki wstępik, tworze sobie obecnie prace inżynierską z moto w roli głównej.

Otóż praca będzie się głownie opierała na części badawczej a potem wyniki wykorzystane w magisterce ale mniejsza z tym. Kilka rzeczy mam już przemyślanych a kilku dalej nie jestem pewien więc powiem mniej więcej o co w ogóle chodzi.

 

Pomiar temp oleju wchodzacego do chłodnicy, pomiar temp zewnętrznej (powietrza), pomiar temp oleju wychodzącego z chłodnicy. Takie wartości chcę mierzyć. Do tego układ próbkująco-pamiętający podłączony mikrokontrolera zbierającego dane z tych trzech przetworników i wyświetlacz cyfrowy na kierownice który będzie wyświetlał temp oleju wchodzącego do chłodnicy. Przy odpalaniu moto będę miał temperatury i czas po jakim osiąga daną temp w określonych warunkach zewnętrznych. Pomiary w różnych warunkach zewnętrznych. To tyle tytułem wstepu.

 

Obecnie pracuje nad umiejscowieniem czujników temp (najprawdopodobniej termopary do cieczy) i wstępnie planuje wywiercić otwór w śrubach mocujących węże olejowe przy bloku silnika i tam umieścić czujniki. (Wiecie czy te śruby były takie same w B6 i B12?). Martwi mnie tylko troche zachowanie szczelności ale to jest problem, który wystąpi przy praktycznie każdym rozwiązaniu (bo trzeba się jakoś dobrać do oleju w 2 miejscach). Macie jakieś inne ciekawe pomysły?

 

Jeśli chodzi część elektroniczną to sercem będzie Mikrokontroler Atmega64. Będe próbował napisać na to program w C (tu będzie najgorzej bom noga z programowania) ale z pomocą okolicznej ludności i manny z niebios może się uda. Ale z tym będę się kopał później. Narazie walcze z mocowaniem czujników i chce się dobrze zastanowić nim wezmę śrubki na wiertarkę.

Odnośnik do komentarza
Udostępnij na innych stronach

A nie lepiej dorobić dwa trójniki i wkręcić między chłodnicę a węża zasilającego?

 

Nie potrzebujesz szybkości więc program możesz pisać w bascomie.

Odnośnik do komentarza
Udostępnij na innych stronach

A może lepiej było by przeciąć przewód olejowy tak żeby otrzymać dwie części i zgłosić się do firmy trudniącej się zarabianiem przewodów hydraulicznych i żeby tam Ci założyli jakiś trójnik ? Też jest ważna średnica czujników temperatury żeby się zmieściły w takowy trójnik.

Odnośnik do komentarza
Udostępnij na innych stronach

To co mówi Kondzio to był mój pierwszy pomysł. Za to promotor nastawiał się bardziej na pomiar bliżej silnika, żeby pomiary były dokładniejsze ale w ostateczności i tak dał mi wolną rękę (w końcu to moja praca). Jeśli chodzi o termopary to średnic jest cała masa wiec tu powinien być luz. Jakby był trójnik to tylko z gwintem jako trzecie wyjście i raz zaślepka raz termopara żeby nie bujać się cały czas z kablami.

Marcin, Twój pomysł też jest całkiem ciekawy i wart przemyślenia.

Póki co robię przegląd za i przeciw rozwiązań i jakoś na dniach pewnie zacznę działać.

 

Co do języka to myślałem nad bascomem ale raczej go odpuszczę z paru powodów. 1. Bascoma nie znam totalnie nic a C/C++ już troche tak (podstawowo ogarniam) 2. C/C++ jest jednak językiem wyższego poziomu niż bascom i umiejętność pisania w C/C++ przyda mi się w przyszłości bardziej (tak sądzę przynajmniej).

Odnośnik do komentarza
Udostępnij na innych stronach

Fajny temat będę śledził... ja właśnie (tzn kumpel) znany jako kuki84 albo kuki (quadrocoptery) robi mi na wyświetlaczu od nokii coś podobnego, ma być też wyświetlacz biegów w tym.

Odnośnik do komentarza
Udostępnij na innych stronach

Więc w sumie będzie tak:

Pod chłodnice wlecą takie mini pokdładeczki

11ebcf0e3198db9am.jpg

W otworki po boku czujniczki DS18b20 (nic ambitnego bo mają wbudowane ADC...ale wole zacząć powoli)

DS18B20+_02.jpg

 

Zalane jakimś termoutwardzalnym tworzywem które wytrzyma drgania, temperaturę i kontakt z olejem (jak macie coś sprawdzonego to mówcie bo tego jeszcze nie ustaliłem)

Teraz jestem na etapie walki z mikroprockiem i ogarniania jego możlwiości....

wkrótce ciąg dalszy z fotorelacją wykonania.

Odnośnik do komentarza
Udostępnij na innych stronach

Jutro zaglądaj ze mną. Dziś jestem zbyt pijany byCi tłumaczyć jak to zrobić :>

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 weeks later...

Zaopatrzyłem się już w czujniczki i jestem właśnie na etapie podłączenia ich do płytki. Do tej pory działałem tylko na stanach 0/1 i nie za bardzo wiem jak podejść do tematu zbierania informacji z czujnika i w jaki sposób je zapisywać, do jakiejś tablicy na przykład. Przewalam sobie cały czas internet na ten temat ale jeszcze nie spłynęło na mnie oświecenie z nieba...może macie jakieś rady jak do tego podejść najsprytniej.

Edytowane przez RafalS600
Odnośnik do komentarza
Udostępnij na innych stronach

Do komunikacji z tym potrzebna jest Ci szyna I2C, wiele uC ma to wbudowane. AVR pod inną nazwą. Komunikacja z tym czujnikiem odbywa się za pomocą 0 i 1 tak więc będziesz robił nadal to samo :} uC wysyła zapytania jako seria zer i jedynek za pomocą SDA i SDL.

AVR obsługuje to już sprzętowo, ale można załatwić komunikację także programowo.

Odnośnik do komentarza
Udostępnij na innych stronach

Czyli potrzebuje funkcję która wyśle zapytanie do czujnika. Czujnik odeśle odpowiedź w postaci załączania i wyłączania napięcia na wyjściu do którego podpięta nóżka sygnałowa (tworząc w ten sposób słowo bitowe), które w jakiś sposób będę musiał zapisać i przetworzyć na konkretną wartość. Jeśli tak, to dalej niewiele z tego rozumiem ale przynajmniej chociaż trochę wiem czego szukać.

Słonko świeci to jadę przewietrzyć szare komórki. Jak wrócę to siądę do tego jeszcze.

 

edit:

Jak coś to póki co wszystko odbywa się na tym zestawie:

http://are.net.pl/?id=products&cmd=9&pid=34

Edytowane przez RafalS600
Odnośnik do komentarza
Udostępnij na innych stronach

Szukaj pod hasłem TWi na uC AVR. Przykładów jak to ugryźć jest cała masa.

Odnośnik do komentarza
Udostępnij na innych stronach

Siemano.

Małe sprostowanie. Ten czujniczek działa na 1Wire, nie na TWI ;). Jeśli chcesz to mam gotowe funkcje do komunikacji z tym czujniczkiem napisane w C, pod atmege.

Edytowane przez pietruch
Odnośnik do komentarza
Udostępnij na innych stronach

Gotową funkcję z chęcią bym zobaczył ale jak coś to obitą w solidne komentarze. Robię to tak naprawdę dla siebie a nie po to żeby "Z-Z-Z-Z" wiec chce zrozumieć temat a nie kopiować gotowce. Ostatnio nawet skleciłem coś z poradnikiem ale mam problem z jedną funkcją i nie wiem czy to w ogóle działa.

Odnośnik do komentarza
Udostępnij na innych stronach

Siemano.

Małe sprostowanie. Ten czujniczek działa na 1Wire, nie na TWI ;). Jeśli chcesz to mam gotowe funkcje do komunikacji z tym czujniczkiem napisane w C, pod atmege.

 

W zasadzie nie wczuwałem się za wiele, czym się różni 1wire od tmi/i2c? a gotowe funkcje to i ja chętnie przejmę profilaktyczine jakby miałyby mi się przydać

Odnośnik do komentarza
Udostępnij na innych stronach

Pierwsza podstawowa różnica to to że w TWI (two wire interface) masz linie danych i zegar, a w one-wire masz tylko dane ;). Możesz wręcz poprowadzić zasilanie i dane tym samym przewodem- masz więc czujnik na dwóch kablach (zasilanie+dane i masa). Mój kod jednak przewiduje podłączenie czujnika 3 kablami, tj. z oddzielnym zasilaniem. Wracając- w one wire, jako że nie masz zegara, próbkujesz linie danych, i jak zaistnieje odpowiednia sekwencja, to wiesz że odebrałeś 0 bądź 1.

Skoro jest zainteresowanie, to jak znajdę chwilę czasu na dniach to uładze i obkomentuję kod, po czym go zamieszczę ;).

 

PS fajny PDF

Pozdro.

Edytowane przez pietruch
Odnośnik do komentarza
Udostępnij na innych stronach

Pod sam koniec kodu zamieszczonego w tym PDFie powyżej jest jedna taka linia:

 

fTemperatura=(float)(cTemperaturaL+(cTemperaturaH<<8))/16;

 

Jest mi może ktoś w stanie powiedzieć o co w tym chodzi. Widzę że jest przesunięcie bitowe o 8 (czy przesunięcie liczby o 8 bitów w ogóle ją zmieni? ).

Jak podłączyłem wszystko i napisałem cały program to przy wyświetlaniu na 7seg wychodzą jakieś krzaki i nie wiem jakie wartości przyjmuje fTemperatura.

Odnośnik do komentarza
Udostępnij na innych stronach

Jak wygląda Twoje wysyłanie na 7 seg? Jak masz go podłączony? Nic dziwnego że krzaki masz jak floata mu próbujesz wysłać ;). Poza tym na wyświetlacz 7seg wysyłasz w BCD (binary coded decimal- jedno zapytanie w google jakbyś przypadkiem nie kojarzył), bo zakładam że nie masz jakiegoś sterownika wyświetlacza.

 

Wiesz, po pierwsze to bym radził Ci nie jako float przechowywać temperaturę tylko jako int. Używanie liczb zmiennoprzecinkowych podczas gdy procek nie ma wbudowanego koprocesora matematycznego to samobójstwo. Jest trochę łatwiej przeliczać, ale i tak przy wyświetlaniu to nie pomoże (bo nie wyślesz floata na wyświetlacz) a objętość kodu jaki kompilator generuje by symulować arytmetykę zmiennoprzecinkową jest imponująca. Int natomiast jest liczbą całkowitą zajmującą domyślnie na atmedze 2 bajty (ew. możesz interpretować ją jako liczbę ze stałym przecinkiem- po prostu mówisz że 4 młodsze bity są miejscami po kropce- tak jak to uczyniono w tym termometrze w młodszym bajcie temperatury). Popatrz sobie na stronie 6 na 2 1-no bajtowe rejestry przechowujące temperaturę. Chodzi o to, że musisz te dwa bajty skleić w jeden. Polecam Ci wziąć starszy bajt, wsadzić do int'a z końcową temperaturą, wtedy dopiero przesunąć 8 bit w lewo i dodać młodszy bajt.

 

int temperatura;

unsigned char temperaturaL, temperaturaH;

// wczytanie z czujnika temperaturaL, temperaturaH

temperatura = temperaturaH;

temperatura = temperatura << 8;

temperatura += temperaturaL;

 

W zmiennej temperatura masz teraz wartość temperatury zapisanej w formacie U2 (http://pl.wikipedia....4_do_dw%C3%B3ch) z dokładnością do 1/16 stopnia. Dlatego właśnie kolo dzielił na końcu floata przez 16- gdyż w czujniku najmłodszy bit oznacza 1/16 stopnia a nie jeden. We floacie po podzieleniu już jest gotowa temperatura. Ale tak jak mówiłem- i tak nie jest w formacie do wysłania jej na wyświetlacz. Z int'em, by osiągnąć wyświetlanie po przecinku jest trochę zabawy:

Jak podzielisz tego inta przez 16 to masz już w nim zapisaną temperaturę w stopniach, ale tracisz informację o miejscach dziesiętnych. Jeżeli chcesz zwiększyć dokładność, to już musisz się ręcznie pobawić ze sprawdzaniem tych bitów z miejscami dziesiętnymi. Tzn. Jeżeli chcesz wyświetlić temp. z dokładnością do 0.5 stopnia (czyli wykorzystać informację z bitu 3 [licząc od 0] rejestru LS byte) to robisz powiedzmy tak: na wyświetlacz wpychasz temperaturę podzieloną przez 16, rysujesz kropkę i sprawdzasz bit 3 z temperaturaL. Jeżeli jest jedynką, to wyświetlasz 5 po kropce na wyświetlaczu. Jeżeli zerem, to 0. Dla większej dokładności już więcej zabawy, ale myślę że łapiesz schemat.

 

Nawiasem to wezmę się za ten mój kod by go tu dać. Ale bliżej weekendu ;).

Odnośnik do komentarza
Udostępnij na innych stronach

Tak jak pietruch napisał, zabawa z floatem to nie te procki. Swoją drogą, bawienie się z przecinkami w temperaturze oleju to sztuka dla sztuki. Pojedyncze stopnie to i tak duża dokładność na taki pomiar.

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki wielkie...póki co przejrzałem tylko Twoją wypowiedź i jest naprawdę nieźle wyjaśnione. Póki co musze podgonić inny projekt na uczelnie a do tego wróce jakoś piątek/sobota i wtedy wczytam się w to na spokojnie.

 

Dzięki uprzejmości i pomocy usera Pietruch :piwo: układ zaczął wstępnie działać. Wyświetla mi pięknie temperaturkę. Póki co jest z dokładnością do 1 stopnia C. Jako, że projekt zakładał pomiar na wejściu i wyjściu z chłodnicy sądzicie, że taka rozdzielczość jest wystarczająca, żeby pokazać zmiany czy raczej pokusić się o większą dokładność?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 month later...

Dzisiaj zmontowałem sobie prowizoryczne stanowisko testowe.

Filmik trochę przydługawy, mało emocjonujący i nieobrobiony (sorry za Vadera w tle ;) ) ale mimo wszystko zapraszam:

 

http://www.youtube.com/watch?v=FHFFmf0yuec&feature=youtu.be

 

Póki co jest wersja totalnie podstawowa i z błędami. Wkrótce będzie dalszy progress.

Edytowane przez RafalS600
Odnośnik do komentarza
Udostępnij na innych stronach

Moim zdaniem taka rozdzielczość jest zupełnie wystarczająca, nie ma potrzeby mierzenia temperatury do dziesiątej części stopnia - poza tym dojdzie więcej cyfr i pogorszy się czytelność wyświetlacza. Zostawiłbym jak jest.

Edytowane przez Stempel
Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

 Share

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystając ze strony akceptujesz regulamin oraz politykę prywatności.Regulamin Polityka prywatnościUmieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.