- Napięcie zasilające: 8…15 V DC.
- Prąd zasilający:
- Maksymalny prąd obciążenia (z napięcia +12 V): 10 mA.
- Prąd podtrzymania zegara RTC (z napięcia BATT): 1 mA.
- Maksymalny prąd podświetlenia (z napięcia ILL+): 75 mA.
- Dokładność pomiaru temperatury: 0,5°C.
- Zakres pomiarowy temperatury zewnętrznej i wewnętrznej: -55…99°C.
- Zakres pomiarowy prędkości pojazdu: 0…255 km/godz.
- Zakres pomiarowy paliwa:
- Zużycie chwilowe: 0…99,9 l/100 km.
- Zużycie średnie: 0…25,5 l/100 km.
- Dostępnego w baku: 0…99,9 l.
- Zakres pomiarowy przejechanego dystansu: 0…9999 km.
- Zakres pomiarowy dystansu do przejechania na dostępnym paliwie: 0…999 km.
- Zakresy regulacji parametrów konfiguracyjnych:
- Stała wtryskiwacza: 1…999 ml/min.
- Stała przetwornika drogi: 1…99 impulsów/obrót.
- Obwód opony: 50…255 cm.
- Liczba cylindrów: 2…8.
- Pojemność baku: 25…99 l.
Przejdźmy zatem do opisu tytułowego urządzenia, w którego implementacji musiałem zmierzyć się z kilkoma istotnymi kwestiami wynikającymi z przyjętych założeń konstrukcyjnych. Projekt ten musiał spełniać następujące kryteria funkcjonalne:
- Pełna funkcjonalność typowego, samochodowego komputera pokładowego.
- Czytelny, intuicyjny, graficzny interfejs użytkownika wzorowany na najnowszych rozwiązaniach z segmentu Premium.
- Możliwość regulacji jasności podświetlenia wyświetlacza graficznego zgodnie z ustawieniem jasności podświetlenia zegarów pojazdu.
- Jak najmniejsze wymiary zewnętrzne.
- Duża prostota instalacji uzyskana poprzez zastosowanie pojedynczego złącza połączeniowego o niewielkiej liczbie wyprowadzeń, a więc i liczbie niezbędnych sygnałów sterujących.
- Jak najniższa cena całego urządzenia – najlepiej około 100 złotych!
Ponadto, postawiłem dość wysokie wymagania dotyczące funkcjonalności komputera pokładowego, którego to zdecydowałem się wyposażyć w następującą funkcjonalność:
- Pokazywanie temperatury wewnątrz i na zewnątrz pojazdu oraz ostrzeżenia o śliskiej nawierzchni (dla temperatury zewnętrznej poniżej 5°C).
- Pokazywanie chwilowej prędkości pojazdu (w km/godz.).
- Pokazywanie średniej prędkości pojazdu na przejechanym odcinku drogi (w km/godz.).
- Pokazywanie maksymalnej prędkości pojazdu na przejechanym odcinku drogi (w km/godz.).
- Pokazywanie chwilowego zużycia paliwa (w l/h dla prędkości ≤ 5 km/h oraz l/100 km dla pozostałych prędkości).
- Pokazywanie średniego zużycia paliwa (w l/100 km).
- Pokazywanie paliwa pozostającego w baku pojazdu(w litrach oraz graficznie – bargraf).
- Pokazywanie przewidywanego zasięgu pojazdu na paliwie pozostającym w baku pojazdu (w godz.).
- Pokazywanie przejechanego dystansu od ostatniego kasowania (w km).
- Pokazywanie aktualnego czasu i daty (z zastosowaniem mechanizmu podtrzymania zasilania).
- Pokazywanie statystyk spalania na każde przejechane 10 km/1 km (dla ostatnio przejechanych 150 i 15 km).
- Realizację funkcji automatycznego włącznika świateł mijania po osiągnięciu przez pojazd prędkości powyżej 5 km/godz.
Jest to raczej nieskomplikowany system mikroprocesorowy zbudowany z użyciem mikrokontrolera ATmega644-PA, układu zegara czasu rzeczywistego typu MCP7940N-I/SN z podtrzymaniem zasilania oraz wyświetlacza TFT. Mikrokontroler jest „sercem” urządzenia i realizuje całą, założoną funkcjonalność urządzenia, posiłkując się w tym celu szeregiem wewnętrznych modułów peryferyjnych. Sam układ jest taktowany rezonatorem kwarcowym 12,288 MHz, dzięki czemu jest zapewniona duża dokładność pomiaru czasu, niezbędna z punktu widzenia zastosowanych mechanizmów sprzętowo-programowych realizujących funkcje pomiarowe, a przy tym duża prędkość ładowania obrazków stanowiących elementy graficznego interfejsu użytkownika. Oczywiście, lepiej byłoby zastosować maksymalną, dostępną częstotliwość taktowania mikrokontrolera tj. 20 MHz, jednak przy napięciu zasilania 3,3 V jest to wartość progowa, dla której deklarowana jest poprawna praca mikrokontrolera.
W celu realizacji założonej funkcjonalności urządzenia, w programie obsługi niniejszego sterownika, wykorzystano dwa sprzętowe układy czasowo-licznikowe znajdujące się „na pokładzie” mikrokontrolera oraz jedno przerwanie zewnętrzne.
Dodatkowo, w programie obsługi urządzenia użyto ostatniego, dostępnego układu czasowo-licznikowego mikrokontrolera Timer2, skonfigurowanego do pracy w trybie CTC. Jego zadaniem jest generowanie cyklicznych przerwań (co 10ms) służących mechanizmowi nieblokującej obsługi klawiatury użytkownika. Dzięki takiego rozwiązania program obsługi aplikacji urządzenia nie używa żadnych pętli opóźnień, co zapewnia jego bezproblemową pracę oraz możliwość detekcji czasu naciśnięcia przycisku (krótki/długi/przytrzymanie itp.), dzięki czemu udało się zoptymalizować sposób obsługi urządzenia zwiększając jego ergonomię.