Podczas pisania oprogramowania korzystałem z programów Atollic TrueSTUDIO for ARM oraz STM32CubeMX. Program został napisany w języku C z wykorzystaniem bibliotek HAL dostępnych z środowiskiem CubeMX. Prawie cała część kodu jest obsługiwana przez mikrokontroler w przerwaniach, dzięki czemu różne części programu przeplatają się. Jako programista chciałem, aby wykonywane operacje nie blokowały się wzajemnie. Wspomnę, że dane w postaci stringów wysyłane przez oba interfejsy UART są wysyłane w sekwencjach po 1 bajcie, tak że procesor nie czeka aż bufor nadawczy się zwolni. Bufor nadawczy jest cyklicznie sprawdzany i kiedy jest zajęty procesor może wykonywać inne operacje, a nie czekać.
Jednym z trudniejszych problemów do rozwiązania był odczyt parametrów z sterownika instalacji. W moim samochodzie jest zainstalowany sterownik polskiej firmy – STAG 300-4. Komunikacja ze sterownikiem odbywa się przez złącze diagnostyczne. Producent sterownika LPG wykorzystał do komunikacji interfejs UART. Odczyt danych odbywa się po nadaniu ciągu 4 bajtów, następnie sterownik odpowiada ciągiem 57 bajtów, w których zawarte są informacje o paramentach pracy silnika.
Odczyt prędkości odbywa się przez odczyt sygnału cyfrowego, o zmiennej częstotliwości, generowanego przez czujnik prędkości(mierzący na wałku skrzyni biegów). Mikrokontroler mierzy okres czasu pomiędzy dwoma zboczami opadającymi. Do tego pomiaru użyłem TIMER 2 mikrokontrolera STM32 ustawiony w trybie Input Capture. Wykrycie każdego zbocza opadającego sygnału generuje przerwanie, w którym pomiar jest przeliczany na prędkość. Im większa prędkość tym mniejszy odstęp czasu pomiędzy zboczami.
Jednym z celów i założeń tego projektu była możliwość instalacji go w innych pojazdach z instalacjami LPG, pomimo stosowania w nich wtryskiwaczy paliwa o innych parametrach. Urządzenie wyposażyłem więc w funkcję kalibracji, na podstawie której w prosty sposób można wyznaczyć wydajność zastosowanych wtryskiwaczy paliwa. Układ zlicza parametry pracy silnika cały czas podczas kalibracji i oblicza średnią arytmetyczną czasów wtrysków i obrotów pracy silnika. Kalibrację należy włączyć po zatankowaniu butli do pełna i nie wyłączać jej do następnego tankowania. Najlepiej jest jeździć do momentu aż zużyje się cały gaz zatankowany do butli. Podczas kolejnego tankowania trzeba podać ile paliwa zatankowaliśmy.
Kalibracja jest więc niezwykle łatwa do wykonania, aby ją załączyć należy nacisnąć przycisk na urządzeniu i przekręcić stacyjkę pojazdu na 2 położenie – „zapłon”. Zakończenie kalibracji odbywa się po naciśnięciu i przytrzymaniu na wyświetlaczu pola „SAVE”. Komunikaty pokazywane przez miernik na wyświetlaczu pokazano na rysunku 4.
Montaż urządzenia w samochodzie nie był skomplikowany. Obejmował on między innymi poprowadzenie przewodów do złącza diagnostycznego sterownika STAG 300-4, podłączenia zasilania „po zapłonie” i wpięcie w wiązkę do przewodu czujnika prędkości. Miernik zamontowałem w miejscu popielniczki.
Aleksander Ostrowski
Źródła:
• https://intercars.com.pl/pl/Zadania-ukladu-paliwowego-ukladu-wtrysku-benzyny/
• zdjęcia użyte jako tła na wyświetlaczu https://www.pexels.com