Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Miernik zużycia paliwa do Opla Astry na 89C4051

s_ice 11 Lis 2004 21:46 12255 66
  • #31 11 Lis 2004 21:46
    kordirko
    Poziom 21  

    Przy okazji - układ do impulsów drogi bardzo łatwo dorobić na układzie KMZ10B (czujnik pola magnetycznego) i 1-2 tranzystorkach.
    Wsadzasz to gdzieś obok prędkościomierza pod panel z zegarami (tam jest wirujący magnes napędzany linką prędkościomierza).
    I możesz mierzyć chwilowe zużycie, drogę, prędkość itp

  • #32 29 Lis 2004 15:42
    spektra
    Poziom 18  

    DO PCH

    Może udostępnisz swój soft na forum ?

    Pozdrawiam: SPEKTRA

  • #33 06 Gru 2004 19:48
    s_ice
    Poziom 14  

    Witam po długiej przerwie.
    Przez ten czas próbowałem napisać sterowanie do mojego LCD Opla. Całość pisałem w bascomie 8051, ale wszystkie procki do sterowania napisałem jako wstawki w ASM (jak na początkującego to sam siebie zadziwiam :) ) Niestety natrafiłem na raczej poważny problem. Procka napisana przeze mnie działa poprawnie. Wszystkie testy robiłem na symulatorze Proteus w którym do portu LPT podpiąłem rzeczywisty wyświetlacz Opla na którym to pojawiało się dokładnie to co zaprogramowałem.
    Dzisiaj chciałem zrobić obsługę przerwań, i co się dzieje? Ano, jeśli wyświetlanie na LCD daje w pętli głównej to wywołanie przerwania przerywa mi transmisje na LCD i rzadko kiedy coś się pokazuje. Jak dałem wyświetlanie do procki obsługującej przerwanie to wyświetlał dobrze ,ale czas całkowicie odbiegał od rzeczywistego który powinien zliczyć. Niestety czas wyświetlenia 8znaków na LCD moją procką trwa coś trochę ponad 300ms, to strasznie dużo. I w ciągu tych 300ms może być wywołane przerwanie do zliczania czasu nawet kilkanaście razy i transmisja nigdy nie będzie poprawna (czyli nic nie zobaczę). A w przerwaniu to znowu obsługa samego przerwania przeciąga się o te 300ms i po prostu gubi czas. Czy jest jakiś sposób aby to działało. Próbowałem zmniejszyć czasy transmisji do LCD ale niestety wtedy nic nie wyświetla. Może ma ktoś sprawdzoną procedurę obsługi tego wyświetlacza dość szybką, albo jakąś metodę transmisji ?

    PS. czy do zliczonego czasu trzeba doliczyć czas trwania obsługi przerwania? Bo wydaje mi się ,że on gubi po te kilka us na co sekundowe wywołanie tegoż przerwania.

  • #34 06 Gru 2004 21:28
    MAREK74
    Poziom 20  

    może zmień wyświetlacz bo standartowy LCD dużo szybciej się obsługuje

  • #35 06 Gru 2004 22:07
    LordBlick
    VIP Zasłużony dla elektroda

    :arrow: s_ice : Wyświetlanie(własna procedurka) w asm ;), nie wiem, jak w Bascomie, można podpiać pod przerwanie timera, niech odbywa się na raty, np co 3 przerwanie (do dobrania, zależy od czasu potrzebnego na wyświetlenie jednego znaku - z pewnym zapasem - i ile razy jest on dłuższy od czasu pomiedzy przerwaniami) wyrzuca 1 znak na wyświetlacz, co nie zajmuje zbyt wiele czasu procesora, a czas pomiedzy przerwaniami procesor spożytkowuje na co innego, niż jałowe mielenie pętli opóźniającej.
    Pozdrawiam, LightHouser

  • #36 07 Gru 2004 16:25
    s_ice
    Poziom 14  

    nie bardzo wiem czy takie coś by zadziałało. Czasu między przerwaniami nie dam rady policzyć bo jedno przerwanie generowane jest co 1s ,a drugie przerwanie do zliczania czasu wtrysku można powiedzieć ,że jest losowe, no i jeszcze przerwanie z timera1 do zliczania impulsów przejechanej drogi. Chyba bym się w tym zgubił. Dzisiaj zamówiłem sobie na Allegro taki wyświetlacz DM157a 2x24+1x24+znaki specjalne oparty na sterowniku HD44780. W ostateczności go wykorzystam, ale wolałbym pozostać przy oryginalnym na I2C.

  • #37 07 Gru 2004 17:23
    lukamar
    Poziom 10  

    witam
    z tego co widzialem na wlasne oczy to w astrze, w miejscu nad radiem jest miejsce na tzw. komputer pokladowy. Nie zawsze jest instalowany, ale zawsze jest wiazka kilku kabli w tym miejscu i jak przypuszczam wlasnie z niej da sie odczytac parametry pracy samochodu. Chyba, ze wymaga to podlaczenia dodatkowych czujnikow, (ale wydaje mi sie ze zuzycie paliwa jest napewno, bo uzywa go wlasnie sterowanie zuzyciem paliwa).
    Inna sprawa jak sie dogadac z ta "wiazka"

    pozdrowienia, lukasz

  • #38 05 Sty 2005 16:01
    s_ice
    Poziom 14  

    Witam po długiej przerwie.

    Informacje w wiązce może i są ale rozszyfrowanie transmisji to byłby duży problem.

    Przez cały ten czas udało mi się napisać prawie cały program do kompa, ale Bascom jest strasznie pamięcio-żerny no i jakoś nie kumam języka basic. Aby z ciągu znaku wciągnąć jedną literkę to się trzeba nakombinować.

    Więc zmieniłem troszeczkę plany. Przesiadłem się na C (SDCC) ,a procek zmieniłem na 89S52. Zalety to więcej portów we/wy no i 8K pamięci programu. Aha LCD też zmieniłem na DM157a, łatwiej się go obsługuje i nie ma problemów jak z oryginałem Opla.

    W C jakoś łatwiej mi się pisze. Zrobiłem już menu, i zacząłem obsługę przerwań. W związku z tym mam parę pytań.


    -----------------------------------------------------
    W obsłudze przerwania z zegara PCF mam odczyt licznika, czy przed odczytem np. TL0 i TH0 trzeba zatrzymać timer poleceniem TR0=0; ?
    -----------------------------------------------------

    Co do zliczania czasu wtrysku, zauważyłem (jeszcze pod BASCOM'em),że
    zmienna zliczająca przeładowania licznika to MAX 4294967296 , zakładając iż da się to przeliczyć ,wyjdzie takie coś:

    dla maksymalnych wartości aby pomieścić obliczenia w pojemności zmiennej:

    przeladowania=65536; //to max co można zliczyć bo więcej się nie przeliczy (braknie pojemności)
    przeladowania*=65536
    co daje:
    przeladowania=4294967296 us
    przeladowania=4294,967296s co daje możliwość zapamiętania około 71minut czasu wtrysku

    więc jak ktoś wcześniej pisał ,że zlicza czas w ms, to dobry pomysł. Wymyśliłem coś takiego:

    ustawiać na początku programu i po każdym przeładowaniu początkowy stan licznika. Tak aby zliczał 60 lub 65ms.
    Wtedy zliczone przeładowania mnożę przez te 60 lub 65, i mam od razu czas w ms. Licznik pomieści około 49dni czasu wtrysku (ciągłego) jeśli się nie pomyliłem, co jest w zupełności wystarczające, bo licznik i zliczone przeładowania będą zerowane po każdym tankowaniu.
    ------------------------------------------------------
    Jaką w związku z tym ustawić początkową wartość licznika. Ja wyliczyłem tak TH0=2; TL0=24; (2*256) daje 512 +24=536 czyli 65536-536=65000us -> 65ms
    Czy się gdzieś pomyliłem, jeśli tak to proszę o poprawienie mnie?
    ------------------------------------------------------

  • #39 05 Sty 2005 16:41
    pch
    Poziom 14  

    Ja w ogóle nie rozumiem po co ci to. Miałeś bramkować zewnętrznie timer zliczający czas wtrysku. Wtedy nie ma znaczenia początkowe ustawienie. Co sekundę sumuj czas wtrysku na sekundę:

    zatrzymaj timer
    czas_wtrysku_sek= 65535*ilość_cykli_w_ostatniej_sekundzie+stan_timera_w_chwili_odczytu
    czas_w_ms=czas_wtrysku_sek/1000


    gdzie:
    ilość_cykli_w_ostatniej_sekundzie - oznacza ilość ewentualnych przepełnień timera. To musisz zliczać w podprogramie obsługi przerwania timera.
    czas_w_ms - czas wtrysku w ostatniej sekundzie w mili sekundach.

    PC

  • #40 05 Sty 2005 17:20
    s_ice
    Poziom 14  

    Pomyślałem o takim liczeniu ponieważ w programie w obsłudze przerwania timer0 mam zliczanie przepełnień (cykl_t0) globalnie od tankowania, i nie jest to nigdzie zerowane (poza kolejnym tankowaniem). Wykorzystuję to do zapisania co 1s stanu cykl_t0 i w następnej sekundzie od cykl_t0 odejmuje tę zapamiętaną liczbę z poprzedniej sekundy. I tak wychodzi mi ilość_cykli_w_ostatniej_sekundzie. Ale jeśli cykl_t0 przekroczy wartość 65536 to pomnożenie jej potem przez 65536 skończy się błędnym wynikiem. (trzeba jeszcze uwzględniać aktualny stan licznika)

    Pewnie za bardzo namieszałem. Więc ,żeby zrobić tak jak piszesz, to chyba powinienem co 1s zerować cykl_t0 i TL0 oraz TH0 ,aby w kolejnej sekundzie mieć wiarygodne dane, inaczej jakoś tego nie widzę no chyba ,że coś przeoczyłem.

  • #41 05 Sty 2005 17:37
    pch
    Poziom 14  

    Dokałdnie tak. Sumuj sobie całkowity czas wtrysku a oprócz tego zliczaj czas z każdej sekundy. Do chwilowych obliczeń masz wtrysk z sekundy a do globalnych całkowity czas wtrysku. Prosto i przejrzyście.

    PC

  • #42 05 Sty 2005 18:07
    s_ice
    Poziom 14  

    To z programem chyba już nie będę miał problemu. Mam tylko jeszcze obawy co do podpięcia tego układu do wtryskiwacza co podał LightHouser.
    Nie, żeby był zły tylko czy nie powinien tam być jakiś bezpiecznik czy coś. Nie wiem jak zachowuje się dioda kiedy jest uszkodzona, jeśli zrobi zwarcie to pewnie komputer w samochodzie ulegnie uszkodzeniu?

    Co do przetwornika droga/impulsy to czy można zastosować obojętnie jaki hallotron? Myślałem o takim z wentylatora co jest w komputerach.
    Niestety nie mogę dostać takiego czujnika KMZ10B jak pisał kordirko. Dobrze by było aby układ dawał 2 impulsy na obrót linki, czyli do wyjścia
    z hallotronu trzeba będzie dać dwa tranzystory jeden PNP drugi NPN i będą się otwierać na przemian, a ich bazy podpinać przez rezystor czy bezpośrenio?

  • #43 05 Sty 2005 18:19
    Paweł Es.
    Pomocny dla użytkowników

    Tej diody D2 na schemacie u kolegi LightHousera to ja bym tak na czysto nie włączał równolegle do cewki zaworu, bo to wydłuży jego zamykanie (prąd wywołany samoindukcją w cewce zamknie się przez diodę D2) a to może wpłynąć na pracę silnika przy wysokich obrotach !!!
    Jeżeli już ma być to trzeba ją dać równolegle do diody transoptora (z odwrotną polaryzacją).

  • #44 05 Sty 2005 18:21
    pch
    Poziom 14  

    Do wtrysku podłącz się przez rezystor 1k. Diody jezeli sa potrzebne to są już w układzie sterowania wtryskami.

    Hallotrony są w MSElektronik w Gdyni. Takie z wentylatorka spokojnie moga być. Jak chcesz 2 impulsy to daj 2 hallotrony. Możesz je spokojnie połączyć równolegle. To w końcu nic innego jak npn więc połączysz 2 "kolektory" ze sobą.

    PC

  • #45 05 Sty 2005 18:58
    s_ice
    Poziom 14  

    czyli bezpośrednio do wtryskiwacza dać do plusa resystor i puścić to na transoptor? A co z zakłuceniami, będę dostawał błędne impulsy. Te diody były podobno po to aby wyczyścić sygnał.

  • #46 05 Sty 2005 19:12
    pch
    Poziom 14  

    s_ice napisał:
    czyli bezpośrednio do wtryskiwacza dać do plusa resystor i puścić to na transoptor? A co z zakłuceniami, będę dostawał błędne impulsy. Te diody były podobno po to aby wyczyścić sygnał.


    Jeżeli z optoizolacją to rezystor gdziekolwiek czy na sterujący czy do +12V nie ma znaczenia. Natomiast z drugiej strony koniecznie negację ze szmitem np CD40106, żeby ukształtować impulsy i odsiać bałagan.

    PC

  • #47 05 Sty 2005 19:16
    s_ice
    Poziom 14  

    Czyli zadnych diod nie dawac?

  • #49 05 Sty 2005 19:22
    Paweł Es.
    Pomocny dla użytkowników

    D1 zostaw, D2 przesuń za rezystor R1 (równolegle do transoptora na wypadek gdyby zwaliło diodę D1, bo normalnie nie będzie używana), R1 zmień na 1k.

  • #50 06 Sty 2005 23:16
    marcinek77
    Poziom 15  

    na stronie http://www.eelkevisser.nl/display.htm jest opisane jak zrobic modol ktory wspolpracuje z TID w astrze i pokjazuje spalanie,obroty itp(chyba)tylko ze ja nie znam angielskiego...
    a wolalbym temat dobrze zrozumiec zanim zaczne grzebac w instalacji..
    Czy ktos na forum moglby ta stronke(a moze inna z tym tematem)przetlumaczyc zeby osoby znajace jakies podstawy elektroniki moglby sobie takie cos zrobic!!
    A moze ktos zacznie takie cos produkowac..sam z checia bym takie cos kupil..chyba ze ktos to juz sprzedaje(prosze o jakis namiar)

    Chyba wiele osob posiadajacych asterki chcialo by miec takie cos w aucie??

  • #51 07 Sty 2005 19:17
    diag
    Spec od samochodów

    Na Allegro był komputer samochodowy Autospec za 290PLN. Zastosowanie TID w Astrze jest o tyle problematyczne iż samo TID wrazie uszkodzenia to pewien koszt.

  • #52 19 Gru 2006 13:26
    s_ice
    Poziom 14  

    Witam. Ja znowu z pytaniem po długiej przerwie.
    Mój komputerek musiał przejść spore modyfikacje, zmieniłem procesor na Atmega8 a wyświetlacz to LCD2x16. Program już jest gotowy poza drobnymi poprawkami. Chciałem zrobić wyłączanie wyświetlacza po 10 sekundach na postoju przy wyłączonym silniku , programowo już to zrobiłem ale nie mogę sobie poradzić z wyłączeniem zasilania przy użyciu procesora. Kupiłem sobie tranzystor BC517 aby rozłączał zasilanie wyświetlacza ale nie działa ,wyświetlacz cały czas lekko świeci. Mam jeszcze tranzystor BUZ80 i BD243C pod ręką ale one chyba się nie nadają. Najlepiej jakby tranzystorem załączać dodatnie napięcie do wyświetlacza (więc powinien być PNP) a nie mase, tak było by mi wygodniej. Nie wiem jaki tranzystor się nadaje ,wyświetlacz pobiera około 100mA i zasilany jest napięciem 5V, a te tranzystory chyba nie będą działać przy takich napięciach i w dodatku wysterowane prosto z pinu mikrokontrolera. Czy mógłby mi ktoś coś podpowiedzieć ,jaki sprawdzony tranzystor dać. Dziękuje.

  • #53 19 Gru 2006 15:13
    ekspert100
    Poziom 16  

    tranzystory pnp bezposrednio z portu

    BC 558 - 0,1A
    BC 313 - 1,0A
    BD 138 - 1,5A

  • #54 12 Sty 2007 21:08
    s_ice
    Poziom 14  

    Witam.
    Mój komputerek już zamontowałem, jeszcze nie jest skalibrowany, ale zauważyłem coś co mnie niepokoi w jego wskazaniach. Podobno w nowych samochodach przy hamowaniu silnikiem wtryski nie pracują a komputerek pokazuje mi że wtrysk następuje, niewielki ale jest.
    Na biegu jałowym normalnie pokazuje czas 34ms wtrysku na jedną sekundę a przy hamowaniu silnikiem od 6ms do 15ms w zależności od prędkości obrotowej. Nie wiem czy to jest prawidłowe, przecież powinien pokazywać 0ms bo wtryski są odcinane "podobno". Czy może to jest wina czegoś innego, np. układu dopasowującego no chyba że tak ma być i to nie jest błąd, czy ma ktoś doświadczenie w tym zakresie. Mój samochód to Opel Astra 1.6 na mono-wtrysku.

    Z góry dziękuje za jakiekolwiek odpowiedzi.

  • #55 12 Sty 2007 22:29
    MAREK74
    Poziom 20  

    jakie warunki masz przy odczycie , obroty , temperatura ,itp

  • #56 13 Sty 2007 00:54
    greg_matrix
    Poziom 16  

    Czytam, czytam i muszę przyznać, że zainteresował mnie ten temat. Jeśli można to miałbym do kolegów 2 pytania. Jest to dla mnie temat nowy, więc proszę o wyrozumiałość :-)

    1. Jak się coś takiego kalibruje?
    Wynik który dostaje się z tego pomiaru to czas otwarcia wtrysku liczony w ms / 1 sekundę. Dobrze zrozumiałem? Jak to przeliczyć na coś innego? Domyślam się, że spalane paliwo jest proporcjonalne do tego czasu. Skąd się bierze współczynnik który te wielkości łączy (ile paliwa jest wtryskiwane na powiedzmy 1ms otwarcia wtryskiwacza)? Na pewno zależy on od wielu rzeczy... Dobiera się go metodą prób i błędów, aż to co pokazuje komputer będzie się zgadzało, czy jest jakiś sprytniejszy sposób?

    2. Czy przy wtrysku wielopunktowym idea pomiaru jest podobna?

  • #57 13 Sty 2007 11:14
    s_ice
    Poziom 14  

    Warunki pomiaru mam takie:
    -silnik rozgrzany do 90 stopni
    -obroty 5000 na 4 biegu (prędkość jest nieistotna bo na każdym biegu wskazuje tak samo)

    puszczam gaz i silnik zaczyna hamowanie, wskaźnik pokazuje czas wtrysku 15ms i wraz ze spadającymi obrotami maleje do około 6ms i potem wraca na około 45ms przy 1500obrotów/min więc widać że zaczyna zasilać paliwem normalnie.

  • #58 13 Sty 2007 18:42
    MAREK74
    Poziom 20  

    ciekawe w takim razie
    mój pokazuje 0 (słownie: zero )

  • #59 13 Sty 2007 23:04
    s_ice
    Poziom 14  

    A czy mógłbyś zdradzić jaki masz układ dopasowania impulsów wtrysku?
    Mój układ przedstawiam na schemacie poniżej ,może to w nim tkwi przyczyna. Aha w mikrokontrolerze mam włączone coś takiego jak "Noise Canceler".

    Co do układu dopasowania, cały układ znajduje się w okolicy pokrywy zaworów, emiter transoptora mam podłączony do śrubki przy tej pokrywie, a sygnał idzie do kabiny i rezystor R2 podciągający do plusa zasilania mam dopiero przy komputerku w kabinie. Podaje wszystkie informacje gdyż nie wiem co może być tego przyczyną. Zauważyłem też taką rzecz ,gdy podepnę się odwrotnie do wtryskiwacza to też pokazuje pewne wartości tylko że są one większe.

    Na wyjściu sygnał przechodzi jeszcze przez bramke Schmitta w celu odfiltrowania zakłóceń.

  • #60 13 Sty 2007 23:21
    MAREK74
    Poziom 20  

    widze ze jesteś zielony w tych sprawach, w układach pomiarowych ważne jest jak poprowadzona jest masa układu ,a ty ją rozwalasz po całym samochodzie
    ja mam sygnał wyprowadzony ze sterownika przed końcówką mocy dlatego unikam jakichś pików i innych zakłóceń wystepujących przy przełączaniu elementów indukcyjnych
    twój układ teoretycznie powinien działać zakładając że linia z diodą będzie po plusowej stronie wytryskiwacza