
Witam!
W kolejnej odsłonie modułów do samochodu przedstawiam układ realizujący funkcję, tzw. Coming Home oraz Leaving Home znane przede wszystkich chyba z aut grupy VW. Funkcje te to zwyczajnie oświetlanie drogi do domu, gdy opuszczamy auto oraz z domu, gdy chcemy do niego wsiąść. Układ steruje dwoma obwodami świateł:
- świateł postojowych poprzez przekaźnik (obciążalność do 25A),
- przednich świateł przeciwmgielnych z funkcją płynnego zapalania oraz gaszenia (poprzez PWM).
Moduł oprócz dwóch wyjść wymienionych wyżej posiada pięć wejść:
- wejście czujnika światła (fotorezystor), aby światła zapalały się tylko po zmroku,
- wejście sygnału zamykania z pilota (sterowanie masą),
- wejście sygnału otwierania z pilota (sterowanie masą),
- wejście sygnału otwartych drzwi (sterowanie masą),
- wejście napięcia po przekręceniu stacyjki (+12V).
Budowa:
Układ, podobnie jak poprzednie moje moduły, powstał na 2-stronnej płytce drukowanej (wykonanej w firmie zewnętrznej) w technologii montażu powierzchniowego. Ponownie również zbudowany został w oparciu o procesor ATMega8A (mały z ADC, dobrze dostępny i względnie tani). Rolę stabilizatora pełni liniowy LM7805. Teraz wiem, że lepszym pomysłem byłby, np. LM2931, ale odkryłem to dopiero po wysłaniu płytek do produkcji. Czym one się różnią? Przede wszystkim prądem pobieranym przez sam układ. LM7805 typowo pobiera go ok. 5mA, gdzie LM2931 tylko 0,4mA. Fakt faktem, że jest to tylko 5mA, ale w przypadku, gdy montujemy podobnych modułów więcej w aucie, to z 5mA robi się np 25, a to już jakiś tam prąd. Reszta układu to wejścia (takie same jak w poprzednich projektach z wyjątkiem wejścia analogowego czujnika światła), wyjście przekaźnikowe zrealizowane na NEC EP1-B3G1S oraz wyjście wysokoprądowe na światła przeciwmgielne regulowane PWM-em. Wyjście to zostało zrealizowane na tranzystorze P-MOSFET IRF4905SPBF (-55V -74A) oraz driverze MCP1416T. Drivera zastosowałem, aby zminimalizować straty powstałe na tranzystorze, podczas gdy byłby przeładowywany zbyt wolno. Całość zabezpieczona została lakierem chroniącym układ przed wilgocią oraz zamknięta w obudowie Z-70 (taka sama jak układ domykania szyb). Oczywiście podczas projektowania układu starałem się maksymalnie go zabezpieczyć przed wpływem zakłóceń i stosowałem elementy, takie jak dławiki, warystor, diody zabezpieczające oraz kondensatory blokujące. Całość pobiera ok. 6mA w trakcie czuwania.




Opis działania:
Układ załącza światła tylko i wyłącznie wtedy, gdy czujnik zmierzchowy będzie rejestrował wartość mniejszą niż zadana. Zapalenie świateł postojowych (jeżeli włączono) oraz świateł przeciwmgielnych następuje po wciśnięciu na pilocie przycisku otwierania auta. Każde kolejne wciśnięcie tego przycisku powoduje odliczanie czasu od początku, tak więc można sobie czas świecenia przedłużać. Jeżeli tego nie zrobimy, światła zgasną po ustawionym w parametrach czasie (standardowo po 30 s). Zapalanie świateł następuje również po wyłączeniu zapłonu i otworzeniu drzwi (ja mam podpięte pod drzwi kierowcy, ale nic nie stoi na przeszkodzie podłączyć układ pod wszystkie drzwi). Po wyłączeniu zapłonu tylko pierwsze otworzenie drzwi powoduje zaświecenie świateł. Światła są wyłączane po wciśnięciu przycisku zamykania na pilocie, po przekręceniu kluczyka w stacyjce lub minięciu czasu ustawionego w parametrach. Oczywiście zapalanie i gaszenie świateł przeciwmgielnych następuje płynnie. Przed zapaleniem świateł kontrolowane jest napięcie zasilające. Tylko wtedy, gdy wynosi ono powyżej 11V, układ załączy światła. W trakcie, gdy lampy są włączone napięcie również jest kontrolowane i jeżeli spadnie poniżej 10V, światła się wyłączą. Jest to zabezpieczenie akumulatora przed nadmiernym rozładowaniem a także tranzystora - do jego poprawnego wysterowania potrzebne jest co najmniej -10V.
Program:
Wsad do procka został napisany w języku C w środowisku WinAVR. Uruchomione zostały przerwania od licznika 0 (odmierzanie czasu - przerwanie co 50ms), przerwanie od UART'u wykorzystane do komunikacji i ustawiania parametrów, licznik 1. pracuje jako sprzętowy PWM (częstotliwość 100Hz). Watchdog również włączony, aby zabezpieczyć przed przypadkowymi skutkami zwieszenia. Wszystkie parametry przechowywane są w nieulotnej pamięci EEPROM. Między przerwaniami procesor jest usypiany, dzięki czemu pobiera prąd poniżej 1mA. Wewnętrzny generator RC ustawiony na 2MHz. Przetwornik analogowo-cyfrowy uruchamia się tylko, gdy układ jest aktywny (tj. oświetla). Wsad zajmuje ponad 7kB, z czego (powtórzę się) większość to obsługa terminala (komunikaty tekstowe i skanowanie łańcuchów).


Standardowo już, zmiany parametrów dokonuje się poprzez podłączenie do złącza diagnostycznego na płytce - przejściówki na RS232TTL oraz wydanie odpowiednich komend w terminalu (np. Putty). Parametry, z jakimi odbywa się komunikacja to 9600:8-N-1.
Komendy dostępne przez terminal:
* help - powoduje wyświetlenie spisu dostępnych komend,
* maxtime - czas [0-255s], przez który maksymalnie mogą być zapalone światła,
* maxlight - maksymalna jasność [0-100%] świateł przeciwmgielnych,
* sensor - wartość odczytana z czujnika światła [0-100%] poniżej której zapalać będą się światła,
* service - włączenie trybu serwisowego, tj. wyświetlanie napięcia zasilającego, wskazań z czujnika światła, stanu wyjść oraz wejść,
* pklight - włączanie [0-1] przekaźnika, czyli świateł postojowych,
* eread - odczyt ustawień z pamięci EEPROM,
* ewrite - zapis ustawień do pamięci EEPROM,
* edef - wartości domyślne dla parametrów (maxtime=30s, maxlight=100%, sensor=30%, service=0, pklight=1),
* reset - reset układu, inicjalizacja, odczyt parametrów z EEPROM.
Instalacja:
Zdjęć z instalacji w prawdzie żadnych nie mam, ale opisać pokrótce mogę. Układ został zamontowany wewnątrz auta, zaraz koło skrzynki bezpiecznikowej. Znalazłem tam przewód idący do przednich świateł przeciwmgłowych, przewody zasilające oraz kable od świateł postojowych. Wszystko pod ręką i to podejrzewam w każdym aucie. Przewody do lamp oraz zasilające należy zabezpieczyć bezpiecznikiem. Czujnik światła zamontowany jest koło lusterka wstecznego na górze przedniej szyby tak, aby nie rzucał się w oczy, a spełniał swoje zadanie.

Koszty wykonania:
- płytki ok. 40zł/sztuka,
- procesor ok. 6zł/sztuka,
- tranzystor IRF4905S ok 5,5zł,
- driver MCP1416T - ok. 3zł
- przekaźnik ok. 9zł,
- złącze molex, stabilizator, drobnica ok. 8zł
- obudowa 2-3zł
Razem ok. 75zł za moduł.
Pozdrawiam i czekam na konstruktywną krytykę.
Na koniec jeszcze krótka prezentacja działania układu (tylko przy otwieraniu i zamykaniu z pilota):
Cool? Ranking DIY