Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 28 mar 2024, o 17:35


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 24 paź 2021, o 19:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 mar 2014
Posty: 356
Lokalizacja: Pruszków
Pomógł: 15

Panel Klimatyzacji LEXUS IS300

PROJEKT wykonałem jakieś 4lata temu.

Mój dobry kolega Paweł zakupił kilka lat temu auto jak w tytule, samochód pochodzi z USA i niestety posiada prędkościomierz i licznik wyskalowany w milach a panel klimatyzacji pokazuje temperaturę w farenchejtach, dodatkowo zegarek na panelu jest tylko dwunastogodzinny (AM-PM).
Auto dostało instalację LPG w związku z tym, że silnik to 2JZ, czyli trzylitrowa rzędowa szóstka lubiąca wypić sporo benzyny. Po założeniu LPG okazało się, że jadąc na samym gazie wskaźnik poziomu paliwa na fabrycznych zegarach opada (pomimo braku ubytku benzyny).

Ja akurat przeczytałem Bluebook-a, więc przyszedł mi do głowy pewien pomysł aby spróbować swoich sił w programowaniu i wymienić fabryczny wyświetlacz w panelu klimatyzacji i zastąpić go własnym podłączonym do atmegi.

Oglądając dziesiątki razy poradnik Mirka wziąłem się za robotę.


Tak prezentował się oryginalny wyświetlacz

Obrazek

Co zawiera ten mini komputer:

Procesor Atmega1284P
Wyświetlacz RAYSTAR RX2402A-FHW (FSTN Positive Transflective).
Zegar DS3231
EEPROM AT24c04
F-RAM FM24C04B - 4K bit Ferroelectric Nonvolatile RAM
Buzer wlutowany w płytkę
Przekaźnik do resetowania poziomu paliwa
Gniazdo dla ATNEL WiFi
Gniazdo do podłączenia interfejsu ELM327
Dwa czujniki temperatury DS18B20 (temp. Wewnętrzna i zewnętrzna)
Wejścia zewnętrzne:
1 analogowe z dzielnikiem napięcia (0 – 24V)
2 obroty silnika
3 sygnał czujnika prędkości samochodu (do zliczania kilometrów)

Wejścia separowane transoptorami:
4 sygnał z cewki elektrozaworu załączającego LPG

Te cztery na transoptorach z możliwością wyboru sterowania +12V lub masą (do wyboru zworkami)
5 sygnał z podświetlenia zegarów (realizacja przyciemniania podświetlenia)
6 sygnał po przekręceniu stacyjki
7 dodatkowe wolne wejście na przyszłość
8 dodatkowe wolne wejście na przyszłość

Wyjścia zewnętrzne:
3 Wyjścia PNP sterowanie +12V (na ULN2003)


Fabryczny wyświetlacz był bardzo wąski więc miałem nie lada wyzwanie aby znaleźć taki który się zmieści w jego miejsce.
I znalazłem w TME dwa małe wyświetlacze COG firmy RAYSTAR obsługiwane magistralą I2C.

RX2002A-FHW-TS alfanumeryczny 2 wiersze po 20 znaków z kontrolerem ST7036i.
Ten okazał się zbyt krótki bo Okienko w panelu było dość długie, więc wybrałem ten 2x24znaki.

RX2402 alfanumeryczny 2 wiersze po 24 znaki z kontrolerem RW1062.
Dość łatwo było napisać do niego bibliotekę oczywiście bazując na Mirkowej bibliotece od LCD.
Dużym plusem tego wyświetlacza jest to, że jest czytelny nawet bez podświetlenia, a samo podświetlenie przerobiłem, wymieniając diodę LED z białej na pomarańczową bo wszystko w samochodzie jest podświetlane właśnie tym kolorem.

Początkowo zaprojektowałem w Altiumie małą płytkę prototypową z samym wyświetlaczem abym mógł włożyć go w zestaw ATB i napisać do niego bibliotekę.

Obrazek
Obrazek

Trochę kiepsko wygląda ta płytka bo nie ma soldermaski ale w celach testowych jest spoko.
Raster pinów tego wyświetlacza to 1,27mm czyli dość gęsto.
Nie chciałem się bawić żelazkiem z takimi wąskimi ścieżkami, a z pomocą przyszedł mi inny kolega który wyfrezował ją na mini CNC w pracy.

Bardzo miłym zaskoczeniem okazało się, że ten wyświetlacz ma możliwość wyświetlać duże fonty, czyli zamiast dwóch linii jest jedna ale za to duże znaki. Na poniższym zdjęciu wyświetlacz jest w innej wersji niż docelowy, czyli negatywowy z oryginalnym białym podświetleniem. Cały program pisałem bazując na zestawie ATB. Można powiedzieć, że 90% programu napisałem będąc w delegacjach we Włoszech zdecydowanie lepiej tam było pisać bo nikt mi nie przeszkadzał.

Obrazek

Procek wybrałem trochę na wyrost bo Atmega1284 ale nie był drogi i wiedziałem, że nawet jak kiepsko napiszę program to nie zabraknie mi ani flesha ani RAM-u.
Finalnie program po kompilacji zajął około 20KB Flash i około 1KB RAM.

Zegar czasu zrobiłem na DS3231 ponieważ w samochodzie panują duże różnice temperatury a zależało mi aby nie trzeba było często go korygować.

Zamontowałem także złącze dla modułu ATNEL_WiFi bo w planie miała być komunikacja ze smartfonem (ale nie została zrobiona).

Drugi UART wyprowadziłem na złącze zewnętrzne bo chciałem podłączyć się do OBD samochodu przez interfejs ELM327.

Temperatury mierzone są czujnikami DS18B20 na kablach.
A ten od temp. zewnętrznej ma kabel prawie 1,5m.
Zastosowałem przewód Liycy 3x0,25mm2 a same czujniki zalane są żywicą epoksydową w nierdzewnych gilzach.

A tak prezentują się pojedyncze strony na wyświetlaczu:

Kiedy wsiadamy do samochodu ekran prezentuje się następująco.

Obrazek

Oczywiście podświetlenie jest wtedy wyłączone ale naciśnięcie któregokolwiek przycisku zapala to podświetlenie na 10s. (gdyby ktoś po ciemku chciał podejrzeć godzinę czy temperaturę).
Wyświetlane są także naprzemiennie Godzina.

Obrazek

I temperatura zewnętrzna.

Obrazek

Kiedy przekręcimy kluczyk w stacyjce przechodzimy do pierwszej strony.
Same strony przełączamy przyciskami „H i M” przycisk „:00” służy za swego rodzaju „Enter”.

Obrazek

Na tej pierwszej stronie mamy tylko datę, godzinę oraz obie temperatury wewnętrzną i zewnętrzną.

Obrazek

U góry po lewej ilość przejechanych kilometrów na samym gazie „g” lub na benzynie „b” gdzie rodzaj paliwa sygnalizowany jest literką na końcu. Przełączanie między „b” i „g” dokonywane jest automatycznie kiedy załączy się elektrozawór od LPG ewentualnie można zmienić wskazanie przyciskiem po lewej „:00”. Licznik ten można resetować przytrzymując przycisk „:00” przez 3s. zresetowanie sygnalizowane jest piknięciem buzzera.
Na dole po lewej jest licznik wszystkich przejechanych kilometrów i nie można go zresetować.
Po prawej temperatury: „z zewnętrzna” i „w wewnętrzna”.

Obrazek

Na tej stronie jest dodatkowy licznik dzienny oznaczony „d” który zlicza kilometry bez znaczenia na rodzaj paliwa i także można go resetować.

Obrazek

Tu ma my kontrolę napięcia akumulatora.

Obrazek

Czasem może się jednak zdarzyć, że zechcemy wiedzieć tak naprawdę ile jest benzyny.

Jednym z zadań komputerka jest resetowanie wskazania poziomu paliwa przez fabryczne zegary samochodu.
Rezystor 100 omów włączony szeregowo w obwód czujnika poziomu paliwa ma za zadanie oszukanie komputera w aucie tak aby myślał on, że jest pusto całkowicie w zbiorniku.
Przekaźnik zwiera ten rezystor od razu po włączeniu stacyjki a po wyłączeniu jej jest rozwarty.
W internecie sprzedają to rozwiązanie nazwane jako uwaga „Emulator Poziomu Paliwa – Tank Fopper”. A to zwykły przekaźnik z jednym rezystorem podłączany pod stacyjkę.

Będąc na pierwszej stronie gdzie wyświetlana jest data zegarek i temperatury, kiedy przytrzymamy przycisk „:00” przez 5s piknie buzzer i jesteśmy w „menu serwisowym”:

Obrazek

Tu ustawiamy czas

Obrazek

Tu ustawiamy datę łącznie z dniem tygodnia

Obrazek

Możemy ustawić kontrast wyświetlacza ponieważ jest on regulowany za pomocą jednego kanału PWM a także jasność podświetlenia wyświetlacza kiedy załączone są światła do jazdy nocnej, tak zwany „Dimmer”.

Obrazek

Podglądamy temperaturę wewnątrz układu RTC DS3231 czyli mniej-więcej jaka panuje na płytce PCB.

Obrazek

Tu widać wartości rejestrów ADC przy pomiarze napięcia akumulatora i poziomu paliwa w zbiorniku.

Obrazek

Tu można sprawdzić ID czujników DS18B20.

Obrazek

Tu można zmienić wartość dzielnika dla obliczania przejechanych metrów.
Przydało mi się podczas kalibracji bo nie musiałem wgrywać całego programu za każdym razem od nowa.

Obrazek

A tu jest bardzo przydatna opcja bo można przypisać odpowiedni czujnik DS18B20 do wyświetlania temperatury zewnętrznej lub wewnętrznej. Gdyby uszkodził się któryś czujnik to podłączamy nowy i w razie potrzeby zamieniamy miejscami wskazania.

Obrazek

I tu ostatnia strona gdzie można wyjść z menu serwisowego.

Docelowa płytka drukowana została zaprojektowana w AD17 dzięki poradnikom Pawła Kardaśa.
a wykonana w firmie TechnoSerwis i kosztowała 100zł. Jeszcze wtedy nie wiedziałem, że w chinach można zamówić dużo taniej.

Obrazek

Zaznaczam, że to mój pierwszy projekt na którym uczyłem się programować AVR-y w C i to dzięki poradnikom Mirka.

Panel działa już z czwarty rok i do tej pory nie było z nim żadnych kłopotów.

Pozdrawiam Paweł „P3ndz3l3k”.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 paź 2021, o 20:02 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

Świetny pomysł i projekt - kawał solidnej roboty. Gratuluje - nie ma to jak zrobić swój własny upgrade/tuning :)!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 paź 2021, o 21:51 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

Ja pierdziu! ... jaki projekt - taki z wyższej półki - do tej pory zbieram szczękę z podłogi ;) REWELACJA

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 paź 2021, o 22:27 
Offline
Użytkownik

Dołączył(a): 13 paź 2015
Posty: 303
Lokalizacja: Rybnik
Pomógł: 10

No gratulacje! Świetny projekt ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 paź 2021, o 04:55 
Offline
Nowy

Dołączył(a): 05 paź 2021
Posty: 24
Pomógł: 0

Kapitalne! Gratuluję wiedzy i umiejętności.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 paź 2021, o 09:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1146
Lokalizacja: Kraków
Pomógł: 93

Świetna robota.
I jest kolejny przykład na atmegę w zastosowaniach komercyjnych (oryginalna płytka).
Swoją drogą, jeśli oryginalna była atmega, dlaczego nie zostawiłeś?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 paź 2021, o 22:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 mar 2014
Posty: 356
Lokalizacja: Pruszków
Pomógł: 15

Rnext napisał(a):
Kapitalne! Gratuluję wiedzy i umiejętności.


Jaka tam wiedza wszystko co jest w programie to akurat z Mirka poradników.
Pisałem to wiele razy i napiszę jeszcze raz, Mirek ma umiejętność przekazywania wiedzy w bardzo zjadliwy sposób.
Kiedyś mi powiedział, że przekazuje wiedzę w taki sposób jakby sam chciał się uczyć i to jest klucz do sukcesu.
Możecie mi nie wierzyć ale jak dzisiaj piszę program to cały czas korzystam z poradników i bluebooka.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO