Archiwa tagu: ecu

ECU – Test dynamicznego wyprzedzenia zapłonu

Dziś wreszcie dotarła „lampa stoboskopowa” (a tak na prawdę układ migający silną diodą LED), do ustawiania zapłonu i mogłem przetestować czy układ dynamicznego wyprzedzenia zapłonu w ogóle działa. Po naniesieniu znakóœ na testowy wentylator z komputera, wyszło jak na filmie poniżej (wentylator podaje impulsy 2x częściej dlatego naniesione są 2 znaki co 180°, powoduje to też zmniejszenie obserwowanego wyprzedzenia dwukrotnie)

Całość wydaje się działać OK. Zostały kosmetyczne poprawki w kodzie AVRa i całość po ustawieniu kąta 0° zostanie zainstalowana w motórze.

ETZ 125/150 ECU (a właściwie na razie ICU)

Projekt ECU (w chwili obecnej jest to bardziej ICU – Ignition Control Unit) do MZ ETZ 125/150 powstał głównie z chęci nauczenia się projektowania i oprogramowywania modułów sterujących pracą silnika spalinowego (w tym wypadku, jedno cylindrowego, dwusuwowego). W chwili obecnej moduł ten posiada takie funkcje jak:

  • Sterowanie cewką zapłonową
  • Prosty immobilizer (blokada zapłonu) wykorzystujący technologię rfid
  • Odcięcie zapłonu powyżej podanych obrotów
  • Możliwość dynamicznej zmiany kąta wyprzedzenia zapłonu w oparciu o podaną mapę (w zależności od obrotów)
  • Możliwość podglądu parametrów silnika oraz zmian w konfiguracji modułu poprzez port USB

Budowa

Moduł oparty został o mikrokontroler AVR Atmega32u4 firmy Atmel. Posiada on sprzętowe wsparcie USB, które zostało wykorzystane do komunikacji z komputerem. Wszystkie wejścia/wyjścia odizolowane są od instalacji motocykla przez optoizolatory, co pozwoliło wyeliminować sporą część zakłóceń powstających w instalacji. Dodatkowo zasilanie zostało zabezpieczone diodą transil na napięcie 45V a mosfet sterujący cewką zapłonową transilem na napięcie 120V. Całość zostałą zamknięta w aluminiowej obudowie która pełni rolę dodatkowego ekranu. Dane o położeniu wału korbowego, pobierane są z oryginalnego impulsatora. Schemat urządzenia znajduje się poniżej:

Schemat ETZ ECU

Oprogramowanie mikrokontrolera

Oprogramowanie napisane zostało w całości w języku C, kody źródłowe można znaleźć na moim GitHubie.

Aplikacja diagnostyczna

Do komunikacji z modułem, służy aplikacja uruchamiana na komputerze PC, która napisana została w C++ z wykorzystaniem bibliotek Qt w wersji 4. Jest ona również dostępna na moim GitHubie. Jej wygląd prezentuje się jak na poniższym screenshocie:

Aplikacja diagnostyczna

Efekt końcowy

Co do walorów użytkowych, na razie ciężko coś powiedzieć. Udało mi się na nim odpalić silnik, jednak z racji braku czasu i możliwości jazdy (pogoda oraz nie poskładany do końca motocykl), ciężko określić czy wszystko działa jak należy. Zdjęcia poniżej pokazują zmontowany moduł.

Możliwość rozbudowy

W module zostały przewidziane możliwości rozbudowy, bez konieczności modyfikacji układu. Przewidziane są dodatkowe wejścia/wyjścia do:

  • Czujnika temperatury silnika, opartego o PT100
  • Czujnika otwarcia przepustnicy
  • Sterowania serwami ssania oraz wolnych obrotów

W chwili obecnej nie są one używane, ale być może zostaną jeszcze w jakiś sposób wykorzystane.