logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

zacinający sie komputer samochodowy [bascom]

misiekdg 21 Maj 2009 00:23 2693 8
  • #1 6555400
    misiekdg
    Poziom 13  
    Mam pewien problem, mianowicie zrobiłem sobie komputer do samochodu, liczy mi spalanie, predkosc, przejechany dystans, na ile starczy jeszcze paliwa, spalanie chwilowe temp i jeszcze pare innych rzeczy. I mam 2 problemy:

    1 - kiedy włącze światła wszystko sie zawiesza....(musze odpalac auto z włączonymi swiatłami wtedy komp się uruchamia bez problemu) mam założony zestaw ksenonów, przed procesorem atmega16 mam zwykły stabilizator 5 voltowy i mimo ze dodawałem kondesatory na wejściu i wyjściu to problem nie znikł, Nawet przy odpalaniu auta nic sie niedzieje. Dodam tylko że mam tez funkcje przypominania o swiatłach ale mimo odłączonego przewodu od lampy problem nadal występuje.


    2 - układ podłaczyłem pod sygnał prędkości jazdy ze skrzyni biegów Vss. Sygnał przechodzi przez jeden opór 4 kOm a przed wejściem do procesora jest jeszcze opornik do masy 1 kOm. Jest to chyba zbyt proste rozwiązanie, działa ale czasem wyskakują błędne odczyty. Sprawe programową rozwiązałem w ten sposób:

    
    Config Timer1 = Timer , Prescale = 64                      
    Enable Timer1
    On Timer1 Przerwanie_timer
    
    
    Enable Interrupts
    Enable Int2
    Config Int2 = Rising
    On Int2 Sygnalvss
    ......
    
    przerwanie_timer1:                             
    
    Czas = Czas + 65536
    
    Return
    
    
    Sygnalvss:                                                  ' syg z predkosciomierza
    
    Czas = Czas + Counter1
    Counter1 = 0
    
    Droga1 = Droga2
    Droga2 = Czas
    
    Vss = Droga2 - Droga1
    
    Return
    


    zmienna czas jest typu long tak wiec duzo czasu trzeba zeby sie przepełniła. działa to tak: ze jak wystąpi sygnał z vss to zmienna czas jest aktualizowana o stan timera1 ( jak nie wystąpi to przerwanie timera1 aktualizuje zmienną czas), do zmiennej droga1 jest zapisywany czas poprzedniego przerwania vss a do drogi2 czas aktualnego przrewania. Ze zmiennej vss (czasu pomiedzy kolejnymi impulsami) jest pozniej obliczana prędkość. Dokładność jest tu dość spora, przy małych predkościach pozwala na odczyt do 0,0001 a powyzej 130 maleje do 0,1 co w zupełności wystarcza. Ale problem mam jak przefiltrować ten sygnał żeby nie łapał jakiś smieci? bo czasem jade 60 a tu wskoczy 180 na ułamek sekundy, myslałem o filtrowaniu przez kondesator lub transoptorze ale może ktoś juz to przetestował i podsunie mi jakiś sprawdzony sposób??
  • #2 6555513
    Dr.Vee
    VIP Zasłużony dla elektroda
    Co do 1 to pokaż schemat + ew. wzór płytki. Tymczasowym rozwiązaniem może być użycie watchdoga.

    Co do 2 to w Sygnalvss testuj, czy na linii INT2 masz stan wysoki - jeśli nie, to impuls był za krótki i możesz go zignorować.
    Bardziej skomplikowany sposób: możesz dopuszczać tylko realistyczne zmiany prędkości, tj.
    teraz = Counter1
    if Abs(poprzednio - teraz) < jakas_stala
       Counter1 = 0
       poprzednio = teraz
       ' I reszta obliczeń...
    end if

    Pozdrawiam,
    Dr.Vee
  • #3 6559198
    misiekdg
    Poziom 13  
    Zrobiłem jeszcze pare prób i otrzymałem taki wynik, że układ nie zawiesza się tylko podczas włączenia świateł pada komunikacja miedzy wyświetlaczem lcd a procesorem. Jest jakieś polecenie które mogło by postawić wyświetlacz na nogi po jakimś błędzie? jakis programowy reset?
  • #4 6559312
    rpal
    Poziom 27  
    Osobiscie zaczalbym od zamieszczenia chocby szczatkowego schematu. W eliminacji bledow sugerowalbym aby moze wyeliminowac bledy sprzetu.sprawdz poprawnosc zasilania i prowadzenia masy. W samochodach masz cos takiego jak permamentne zasilanie niewrazliwe na zalaczenie rozrusznika inne po prostu przysiada w chwili uruchamiania silnika. Schemat to podstawa rozwazan. Sprawdzales swoje zasilanie chocby woltomierzem czy nie spada tam napiecie ? Co z ew. Zakloceniami od instalacji elektrycznej ? Moze sproboj zbadac zachowanie tego ukladu przy zasilaniu z np z baterii czy tez dzieja sie te cuda. Masz tyle mozliwosci nieprawidlowego dzialania ze tylko cudotworca to moze rozgryzc.
  • #5 6559406
    misiekdg
    Poziom 13  
    układ narazie jest zmontowany na płytce uniwersalnej, nie mam do niego schematu. Zaczne go robic na gotowo jak juz dopracuje całość. Napisałem że procesor działa prawidłowo, zakłócenia jak odpalanie, gaszenie auta, dmuchawa itp nie powoduja zachwiania działania tylko jedynie włączenie lamp xenonowych... co mnie bardzo dziwi gdzyz pobierają mniej pradu niz zwykłe swiatła. Wszystko było mierzone, sam komputer kontroluje tez napiece akumlatora. tam nei ma zadnej filozofii, napiecie 12 v przechoppdzi przez stabilizator 5 v, ma pare kondesatorów i rozchopdzi sie na procesor, wyswietlacz i czujnik temp, dallas i tyle, wyswietlacz jest podpiety pod port d

    Config Lcdpin = Pin , Db7 = Portd.6 , Db6 = Portd.5 , Db5 = Portd.4 , Db4 = Portd.3 , E = Portd.2 , Rs = Portd.1
    Config Lcd = 20 * 4

    spróbuje jutro z innym akumlatorem - osobnym zródłem zasilania.
  • #6 6561363
    rpal
    Poziom 27  
    Ksenony o ile się dobrze orientuję posiadają przetwornicę napięcia. Może przetwornica po prostu sieje zakłóceniami idącymi po zasilaniu. Jeśli w dodatku masz np. źle poprowadzoną masę w uP albo wiszący w powietrzu sygnał RESET to nie wykluczone że zaczyna się tobie to wieszać. Myślę że najprostszy sposób na sprawdzenie to przetestowanie oddzielnego zasilania a w razie czego będziesz dalej gdybał co jest przyczyną.
  • #7 6562533
    janbernat
    Poziom 38  
    Na temat "wieszania" się lcd przy silnych zakłóceniach elektromagnetycznych była na EL jakiś czas temu dłuższa dyskusja.
    Niektórzy z uczestników sprawdzili że jedynie odłączanie zasilania LCD co jakiś czas powoduje ponowne zadziałanie LCD po zawieszeniu.
    Normalny reset czasem nic nie daje.
    Nie znam się na samochodach, ale chyba przetwornica od lamp ksenonowych daje wysokie napięcie i może sporo siać.
    Można dać co kilka sekund odłączanie LCD od zasilania(jakiś tranzystor) na 50-300ms-może poprawi.
  • #8 6562847
    rpal
    Poziom 27  
    Przypomniałem sobie pewną sytuację, mianowicie kiedyś jadąc po autostradzie trafiłem na roboty drogowe które były oznaczone za pomocą kolejno błyskających lamp. Chodziło o palniki stosowane w lampach błyskowych czyli w sumie ksenony bo zasada działania ta sama. Błyski po kolei następujące po sobie powodowały że słyszałem w radiu samochodowym wyraźne zakłócenia podobne nieco do gasnącego (w zakresie opadania częstotliwości) przebiegu. Może to przypadek może nie myślę że jakiś spec od oświetlenia mógłby coś tu więcej powiedzieć, ale osobiście spotkałem się z zakłóceniami które wyzwalały palniki ksenonowe. Te samochodowe jednak zdaje się palą się ciągle a nie impulsowo. Napięcie zasilania jednak mają rzędu kilkuset V.
  • #9 6563803
    misiekdg
    Poziom 13  
    Też mi sie wydaję że problem tkwi gdzieś w tych przetwornicach, Może ich czestotliwość pracy powoduje zakłócenia w działaniu wyświetlacza LCD. Dodam tylko że problem występuje tylko w chwili włączenia lamp, czyli wtedy kiedy pobierany jest najwiekszy prąd. Pomysł z odłączającym sie zasilaniem LCD np na 100 ms po włączeniu swiateł jest dobry, przetestuje go i napisze jaki jest rezultat.
REKLAMA