Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Prosty komputer pokładowy do silnika z pojedynczym wtryskiem paliwa

Stiepanowna 24 Mar 2012 09:27 10860 1
phoenixcontact
  • Prosty komputer pokładowy do silnika z pojedynczym wtryskiem paliwa

    Zaczęło się od tego, że stwierdziłem, że mój samochód za dużo pali. Mam Audi-80 z dwulitrowym silnikiem (ABT) i pojedynczym wtryskiem paliwa (wtryskiwacz elektryczny znajduje się w kolektorze dolotowym, który jest zamiast gaźnika).

    Dlatego postanowiłem zrobić przepływomierz paliwa, tym bardziej, że w moim samochodzie z systemem pojedynczego wtrysku paliwa MOTRONIC 1.2 poprzez

    K-Line można odczytać wartości takie jak obroty silnika i jego temperatura, skład mieszanki z sondy lambda.
    Więcej od wyników diagnostyki nie da się uzyskać, a tym bardziej nie pojawia się tam informacja o czasie wtrysku.
    Postanowiłem zacząć od spotkania z mikrokontrolerami i rozpocząłem od tych należących do rodziny AVR firmy Atmel.
    Wybrałem język C, ponieważ kiedyś zajmowałem się pisaniem w Borland C++.
    I tak znalazłem w Internecie projekt, który dostosowałem do swoich potrzeb.

    Otrzymałem następujący wynik:

    Prosty komputer pokładowy do silnika z pojedynczym wtryskiem paliwa

    Na początku program nie chciał prawidłowo odczytywać wartości - na oscyloskopie można zobaczyć dlaczego. Dlatego na wejściu dodałem układ dopasowujący poziomy na tranzystorze. Co prawda, sygnał był odwrócony, ale takie rozwiązanie było najprostsze.

    Wtedy wszystko zaczęło się zgadzać, spójrzcie na oscylogramy:

    Prosty komputer pokładowy do silnika z pojedynczym wtryskiem paliwa Prosty komputer pokładowy do silnika z pojedynczym wtryskiem paliwa Prosty komputer pokładowy do silnika z pojedynczym wtryskiem paliwa

    Dobrze również jest zamontować tranzystor na wejściu sygnału z czujnika prędkości (tachometru), ale tak, żeby nie odwrócić fazy sygnału, bo trzeba będzie wprowadzić zmiany w kodzie.

    Myślę, że ten projekt można zastosować w każdym samochodzie z elektrycznymi wtryskiwaczami.
    Cała praca to podłączenie do jednego kontaktu we wtryskiwaczu, do jednego kontaktu czujnika prędkości i oczywiście do zasilania.
    Co istotne, projekt w swoim założeniu miał być prototypem, więc płytka nie była projektowana pod konkretną obudowę czy miejsce w samochodzie.
    W związku z tym rozkład ścieżek może nie należy do najbardziej udanych.

    Prezentuję efekty swojej pracy:

    Prosty komputer pokładowy do silnika z pojedynczym wtryskiem paliwa Prosty komputer pokładowy do silnika z pojedynczym wtryskiem paliwa Prosty komputer pokładowy do silnika z pojedynczym wtryskiem paliwa Prosty komputer pokładowy do silnika z pojedynczym wtryskiem paliwa Prosty komputer pokładowy do silnika z pojedynczym wtryskiem paliwa Prosty komputer pokładowy do silnika z pojedynczym wtryskiem paliwa

    Dane dotyczące wydajności zastosowanych elektrycznych wtryskiwaczy można pobrać tutaj. Zgodnie z nimi wydajność mojego wtryskiwacza wynosi 819cm3/min. Ponadto od jednego zatankowania do pełna do drugiego zmierzyłem przepływ paliwa przepływomierzem.
    W wyniku kalibracji otrzymałem wydajność wtryskiwacza równą 516.

    To, że ona tak różni się od podręcznikowej jest wynikiem zużycia wtryskiwacza - sprężyna w komorze przelewowej się obluzowała, w wyniku czego doszło do zmniejszenia ciśnienia wtrysku (mam nadzieję, że w granicach normy).
    Czujnik prędkości posiada 2 kontakty i wytwarza 4 impulsy w ciągu jednego obrotu koła z amplitudą ~8V.

    Początkowo wyświetlały się tylko następujące wartości: napięcie elektrycznej sieci pokładowej oraz pełne i czasowe zużycie paliwa .
    Teraz ilość wyświetlanych parametrów się zwiększyła:

    Prosty komputer pokładowy do silnika z pojedynczym wtryskiem paliwa

    Krótki opis załączonego zdjęcia

    Po zapaleniu silnika na ok. 0,5s. pojawia się napis „Audi”, a następnie wartość napięcia.
    Są 4 przyciski.
    Przy naciśnięciu pierwszego (od lewej strony) pojawia się „F” - całkowite zużycie paliwa, przy kolejnym naciśnięciu „G” - zużycie podczas stania na luzie, kiedy prędkość <7km/h. Po kolejnym naciśnięciu pojawi się „U” - napięcie.
    Jeśli przytrzymamy przycisk w trybie wyświetlania napięcia dłużej niż 2s, komputer przechodzi w tryb uśpienia (idle), z którego wybudzi go odłączenie od wtryskiwacza.

    Przy naciśnięciu w trybie „F” dłużej niż 2s., wartość się zresetuje.
    Po tej samej czynności zresetują się parametry „G” i „U”.
    Wartości „F” i „G” zostaną zachowane kiedy silnik będzie wyłączony.

    Kiedy wciśniemy przycisk drugi od lewej, pojawi się „R” czyli tymczasowe (w ciągu 1s) zużycie paliwa na 100km; następnie „H” – tymczasowe (w ciągu 1s) zużycie godzinowe . I w końcu „V” - średnie zużycie paliwa na 100km przy prędkości >7 km/h.

    Trzymając przycisk w trybie „H” dłużej niż 2s, przejdziemy do wyświetlania wydajności wtryskiwacza od 0 do 9999 cm3/min. Ja po kalibrowaniu otrzymałem wynik 516 cm3/min.
    Parametr „V” zostaje zapamiętany.
    Kiedy naciśniemy trzeci przycisk od lewej , wyświetli się „S” czyli bieżąca prędkość (w ciągu 1s); następnie „D” - prędkość, której przekroczenie wywołuje sekundowy dźwięk piezo.

    Jeśli prędkość będzie mniejsza (D-5), w momencie jej przekroczenia (d.) znów będzie słyszany sygnał. W innym przypadku sygnał nie będzie się powtarzał.
    Następnie „E” oznacza największą zapamiętaną prędkość.
    W trybie „S” po naciśnięciu dłuższym niż 2s przechodzimy do wyświetlania zliczonych sygnałów z czujnika prędkości na dystansie 1km.
    W moim wypadku to 465 na 1km.

    W trybie „D” po naciśnięciu dłuższym niż 2s, przejdziemy do ustawiania prędkości, przy której przekroczeniu będzie słyszany sygnał.
    W trybie „E” po naciśnięciu dłuższym niż 2s, wartości zostaną zresetowane.
    (d.) i (E.) będą zapamiętane.

    W momencie naciśnięcia przycisku czwartego od lewej, pojawi się parametr „P” - pokonany dystans, następnie „L” - pokonany dystans 2. Potem (d.OFF) - wtedy zostanie wyłączony piezo w momencie przekroczenia prędkości zgodnie z ustaloną wartością.

    Kiedy znów powrócimy do tego trybu, pojawi się (d.on) i piezo będzie normalnie sygnalizować.
    W trybie „P” i „L” przy naciśnięciu przycisku dłuższym niż 2s wartości się resetują.
    W trybie „d.OFF” lub „d.on” przy naciśnięciu przycisku dłuższym niż 2s, gasną wyświetlacze, ale komputer nadal pracuje i dioda się świeci.

    Tam gdzie wartość jest podawana wraz z częściami dziesiętnymi, w momencie osiągnięcia 99,9 wynik jest uogólniany do części całkowitej.

    Kod programu napisałem w IAR w języku C.

    W programie najtrudniejsze było określenie zużycia paliwa. Pozostałe funkcje to była bułka z masłem.

    Podaję metodę obliczania stopnia zużycia paliwa.

    Wydajność wtryskiwacza (możemy określić każdą wartość w przedziale 0-9999, kalibrujemy ją po spaleniu paliwa od jednego tankowania do drugiego) w moim wypadku, dajmy na to, wynosi 530 cm3/min=0,53l/min (0,00883\l/s).

    Ilość obrotów silnika na biegu jałowym przykładowo wynosi 950, wtryskiwacz otwiera się z częstotliwością 29Hz (są to dane szacunkowe, zależne od systemu wtrysku).

    Czas otwarcia wtryskiwacza, zgodnie z oscylogramem wynosi 1,33ms (0,00133s), co oznacza, że w tym czasie jest wtryskiwane 0,00883/(1/0,00133)=0,0000117l.
    Następnie wynik dzielimy przez 29 i otrzymujemy 0,00034l/s. Potem znów dzielimy przez 3600 i otrzymany wynik to 1,226l/h na biegu jałowym.
    Należy to oczywiście traktować jako przykład.

    To wszystko i do tego częstotliwość można zapisać w jednej linijce, a następnie czas otwarcia wtryskiwacza będzie za nas obliczać timer.
    Dla nas najważniejsze jest wyliczenie czasu wtrysku jednego impulsu najlepiej przy użyciu16-bitowego timera.

    Znając wydajność wtryskiwacza w czasie 1s i mogąc określić ogólny czas jego otwarcia podczas sekundy, jesteśmy w stanie określić poziom zużycia (tymczasowy w danym trybie) w czasie sekundy.

    Pozostałe parametry określamy wykorzystując tę wartość.

    Zadaniem nie było określenie całkowitego zużycia paliwa, ponieważ wtedy należy wziąć pod uwagę wiele innych czynników.

    Tak więc, aby określić względne zużycie paliwa, wiedzieć skąd się bierze przekroczenie wartości, w jakim trybie i przy jakich obciążeniach itd. wystarczy nam podany algorytm.

    Uzupełnię to jeszcze kilkoma parametrami:

    Na biegu jałowym przy 950 obrotach i temperaturze silnika 90 stopni, przy 0 stopni na zewnątrz i wyłączonych odbiornikach energii tymczasowe spalanie wynosi 1,2l, napięcie wynosi 13,9-14V.

    Posiadam jeszcze takie dane przy temperaturze -15 stopni.
    Przejechałem wtedy 71,8km i pełne zużycie paliwa wyniosło 16,8l.
    Spalanie na biegu jałowym, przy prędkości <7km/h wyniosło 7,9l (i tak dużo spalił).
    Średnie zużycie dało wynik 13,2l.

    Na trasie (wcześniej zresetowałem wynik) średnie zużycie wyniosło 7l/100 km, dopóki nie wjechałem do miasta.
    Przy temperaturze 10 stopni, jak tylko włączamy silnik, w pierwszych sekundach godzinne spalanie było na poziomie 2,5-3l.
    Przy -15 stopniach było to już 8l i tymczasowe zużycie na 100km odpowiednio wyższe, dopóki silnik dobrze się nie rozgrzał.

    Oczywiście średnie spalanie na początku również trochę się zwiększa, by następnie wrócić do ~13l/100km.

    Na biegu jałowym, przy rozgrzanym silniku i temperaturze -15 stopni na zewnątrz wynosi znów 1,2l/h (chłodnicę zasłoniłem kawałkiem tektury).


    Kod w C (załącznik main)
    Wzór płytki w .pcb (załącznik plata)
    Wzór płytki i fuse-bity dla mikrokontrolera w .jpg (załącznik pcb_bity)
    Firmware (załącznik indprog)

    Źródło: http://eldigi.ru/site/avto/1.php

    Cool? Ranking DIY
    About Author
    Stiepanowna
    Level 12  
    Offline 
    Stiepanowna wrote 90 posts with rating 75, helped 1 times. Live in city Kraków. Been with us since 2011 year.
  • phoenixcontact
  • #2
    jarewa
    Level 31  
    Tak powiem sztuka dla sztuki.
    Oryginalny BorandComputer można już kupić od 200zł. A po drugie czemu autor nie wykorzystał już w tym Mono Motronic wyjście średniego spalania? Bodajże 10pin ECU.

    W oryginalnym BC mamy
    1-aktualne spalanie
    2-ilość przejechania km na paliwie w baku
    3-ilość spalonego paliwa na odcinku ( liczy się uruchomienie silnika i przejechanie i zgaszenie ponowne uruchomienie resetuje, lub sami decydujemy i resetujemy)
    4-czas jazdy
    5-średnie spalanie
    6-średnia prędkość
    dodatkowe
    1- ilość paliwa w baku
    i wiele nie zrozumiałych kodów