
Witam.
Dzisiaj chciałbym zaprezentować projekt wyświetlacza graficznego z ekranem dotykowym, sterowanego przez mikrokontroler ATmega128, wyświetlającego podstawowe informacje zbierane z czujników umieszczonych w samochodzie. Projekt nie jest dla mnie, wykonałem go na prośbę znajomego, który jest w trakcie przeróbek swojego samochodu i chciałby mieć te informacje w "jednym miejscu".
Układ umożliwia odczyt:
- temperatury płynu chłodzącego
- temperatury oleju
- ciśnienia oleju
- temperatury spalin
- napięcia akumulatora
Ponadto przytrzymując na ekranie obszar każdego z wyżej wymienionych obszarów, przechodzimy do ekranu, w którym rejestrowana jest maksymalna wartość danego parametru - tzw. "peak" (opcja ta nie działa z napięciem aku

Na ekranie alarmów ('Warnings') wyświetla się panel umożliwiający nam ustawienie progów alarmowych dla pomiarów. Dla temperatur (oleju, płynu i spalin) alarm uruchamiany jest po przekroczeniu wartości aktualnej ponad ustawioną. Dla ciśnienia oleju - poniżej wartości ustawionej (słabe ciśnienie).
Alarm to przerywany, głośny dźwięk buzera przypominający piszczenie wskaźników spadającego samolotu rodem z filmów.






Ekran główny (ten z zarysem karoserii samochodu) docelowo będzie wyświetlał także ciśnienia w poduszkach amortyzatorów oraz butli z powietrzem, ponieważ samochód wyposażony jest w pneumatyczne zawieszenie. Odczytem tych ciśnień zajmuje się układ opisywany przeze mnie w tym temacie. Są one przesyłane za pośrednictwem RS232. Na dole ekranu głównego widnieją cztery przyciski: "Gleba... [...]" Służą do wydania polecenia sterownikowi Air Ride do ustawienia wysokości samochodu do zadanej wysokości. Komunikacja odbywa się także po RS232. Ciśnienia dla każdej wysokości zadajemy z poziomu aplikacji na telefon z systemem Android.
Cały projekt stopniowo rozbudowywałem na płytce ewaluacyjnej dla AVR oraz małej płytce stykowej. Początkowo miałem użyć ATmegi 1284, lecz z czasem zabrakło mi portów i przesiadłem się na 128-kę. Wykonałem adapter i cały bajzel można było powiększać.





Może kilka słów o czujnikach. Pomiarem temperatury oleju i płynu chłodzącego zajmują się dwa PT1000 pracujące w układzie potencjometrycznym (osobno, nie ze sobą

Z czujnikiem temperatury spalin poszło sprawniej. Zakupiłem gotową termoparę z kontrolerem MAX6675 i temperaturę odczytuję cyfrowo po magistrali SPI.
Ciśnienie oleju mierzy przetwornik ciśnienie-prąd (4-20mA). Przez ADC odczytuję spadek napięcia na rezystorze pomiarowym i przeliczam na jednostkę ciśnienia.

Płytkę zaprojektowałem w Eaglu w taki sposób, aby była rozmiaru płytki z wyświetlaczem. Sam wyświetlacz ma rozdzielczość 240x128 pixeli, a do obsługi dołączyłem do niego dedykowany dotykowy panel rezystancyjny. Płytka wykonana jest w wersji jednostronnego laminatu, ale liczba zworek sprawia, że płytkę można traktować jako dwustronną.









Kod napisany w Bascom. Nie ma w nim nic nie wiadomo jak skomplikowanego, ale przez te duże, małe czcionki i kilka ekranów stał się dosyć pokaźnych rozmiarów pod względem linii. Udostępniam, może ktoś skorzysta np. z samej obsługi LCD na Toshibie czy odczytu termoparki przez SPI. Kod finalny to ten o nazwie: graficzny128_3x2.bas.
Cool? Ranking DIY