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

Mini Komputer samochodowy, prośba o sprawdzenie schematu

darrrrek 20 Paź 2007 17:00 11710 82
Najlepsze odpowiedzi

Jak poprawnie podłączyć wejście od wtryskiwacza/cewki oraz pomiar napięcia akumulatora w samochodowym mini-komputerze i czy trzeba dawać kondensator na wejściu ADC?

Nie do końca: dzielnik dla akumulatora jest zrobiony na zbyt wysokie napięcie, a wejście od wtryskiwacza wymaga lepszego dopasowania i ochrony [#4396776][#4402803] Przy pomiarze akumulatora warto zejść z dzielnikiem tak, by dla Vref 2,5 V mierzyć do ok. 15 V, np. zmieniając rezystor 10 kΩ na 9,1 kΩ albo 7,5 kΩ, i dodać zabezpieczenie zenerką 2V9/3V3 lub transilem [#4402803] Diodę ochronną przy torze wtryskiwacza najlepiej dać za rezystorem 510 Ω, bezpośrednio przy nóżkach diody transoptora; zamiast małej 1N4148 lepiej zastosować transil, a nie dokładać diody równolegle bezpośrednio do instalacji wtrysku [#4398425][#4402803] Układ 74HC14 nie powinien mieć wejścia podłączonego do 12 V, nawet przez rezystor — jeśli już go używasz, wejście ma być podciągnięte do +5 V, ale AVR i tak ma wejście z histerezą, więc zewnętrzny 74HC14 jest raczej zbędny [#4421076] Kondensatory przy przyciskach można usunąć i eliminować drgania styków programowo; podobnie problemy z „śmieciami” na LCD wynikają raczej z przerwania transmisji SPI niż z samego połączenia z INT0, więc trzeba blokować przerwania na czas wysyłania danych albo podzielić pracę procesora [#4398425][#4454235]
Wygenerowane przez model językowy.
REKLAMA
  • #1 4396722
    darrrrek
    Poziom 22  
    Posty: 733
    Pomógł: 4
    Ocena: 98
    Witam !

    Jestem początkujacy w elektronice, sklecilem taki oto schemat mini komputera samochodowego. Interesują mnie najbardziej wejscia od cewki zaworu, i wejscie od akumulatora, gdzie sprawdzam napiecie. Czy są one poprawnie zrobione ??

    Pozdrawiam

    P.S tak mysle ze na wejsciu ADC powinienem dac kondensatorek taki z 1uF ??
    Załączniki:
    • MiniKomp2.pdf (12.96 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 4396776
    Tomasz.W
    Poziom 35  
    Posty: 2315
    Pomógł: 263
    Ocena: 161
    A dlaczego na pomiarze napięcia akumulatora wstawiłeś dzielnik dla 21 Volt ?
  • #3 4396804
    olekewaagata
    Poziom 25  
    Posty: 638
    Pomógł: 64
    Ocena: 28
    Rozumiem że równoległa dioda przy cewce wtryskiwacza jest do zwierania ujemnych pików pojawiających się na tej cewce. A więc wydaje mi się że już w elektronice pojazdu taka dioda występuje, a jeśli jej nie ma to ta maleńka 1N4148 nie wytrzyma nawet jednego przepięcia. Poza tym dokładanie tej diody, to ingerencja w elektronikę wtrysku samochodowego, a więc rzecz niedopuszczalna.
  • #4 4396854
    darrrrek
    Poziom 22  
    Posty: 733
    Pomógł: 4
    Ocena: 98
    Tomasz.W napisał:
    A dlaczego na pomiarze napięcia akumulatora wstawiłeś dzielnik dla 21 Volt ?


    Wydaje mi sie ze daje to wieksze bezpieczenstwo dla uC gdyby pojawiło sie wiecej niz 14V a rozdzielczosc pomiaru mimo wszystko bedzie wystarczajaca.
  • #5 4397354
    Dr_DEAD
    Poziom 28  
    Posty: 829
    Pomógł: 126
    Ocena: 3
    Dziwi mnie trochę że sygnał z wtryskiwacza podpiołeś pod INT0 a nie pod ICP, przecież Input Capture Unit jest wręcz stworzony do tego zadania. Można by też pod Analog Comparator podpiąć i dać jakiś filtr RC gdyby sie okazało że zakłucenia są dość spore. Analog Comparator też może służyć za źródło wyzwalania dla Input Capture Unit. Rzecz do przemyślenia i poczytania....
  • #6 4398425
    kordirko
    Poziom 22  
    Posty: 307
    Pomógł: 53
    Ocena: 17
    olekewaagata napisał:
    ta maleńka 1N4148 nie wytrzyma nawet jednego przepięcia. Poza tym dokładanie tej diody, to ingerencja w elektronikę wtrysku samochodowego, a więc rzecz niedopuszczalna.


    Tę diodę równoległą najlepiej daj ZA rezystorem 510R (wprost do nóżek diody w transoptorze) - wtedy chroniona rezystorem spokojnie wytrzyma przepięcie, a i ingerencja w elektronikę wtrysku będzie minimalna ;)

    Te kondensatory przy klawiaturze całkiem wywal ... podłączone w ten sposób drgań nie wytłumią, będą ewentualnie tłumić zakłócenia od iskrzących styków, ale ta klawiatura to chyba iskrzyć nie będzie :D Drgania styków najlepiej "wytłumić" programowo, ewentualnie można dać układy RC ... tylko po co miejsce na płytce zajmować?
    Tak samo te diody od klawiatury - domyślam się że przy naciśnięciu klawisza chcesz generować przerwanie które "czyta klawiaturę" .... ale możesz je wywalić, a stan klawiszy czytać okresowo w pętli programu - oszczędzasz parę groszy i miejsce na płytce.
    Tak samo wywaliłbym rezystory do programatora, są zbędne ... jak już bardzo chcesz mieć rezystory, to wlutuj je we wtyczkę do programatora, nie będziesz ich musiał lutować w każdym nowym projekcie.
  • #7 4402803
    Ch.M.
    Poziom 27  
    Posty: 1009
    Pomógł: 62
    Ocena: 15
    Rezystor 10k w dzielniku zmieniłbym na 9,1k lub nawet 7,5k co da pomiar do 15V przy Vref 2,5V a zenerka uchroni przed nieprzewidzianymi zdarzeniami. Nie jestem pewien ale diody Zenera na 3V to chyba nie ma... jest za to na 2V9 oraz 3V3.

    Pojemności na przyciskach nie sa do niczego potrzebne, debounce załatwisz programowo.

    Zamiast 1N4148 daj transila na odpowiednie napięcie.

    Co do miejsca na płytce, to skoro chcesz obudowę DIP to zmieszczą się także ogromne transile i pare kondensatorów (oraz cewek) odkłócających zasilanie
  • REKLAMA
  • #8 4417219
    sitec
    Poziom 13  
    Posty: 135
    Ocena: 5
    Wydaję mi sie że układ dopasowywujący powinien wyglądać tak:
    Załączniki:
    • Mini Komputer samochodowy, prośba o sprawdzenie schematu schemat1.JPG (54.36 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #9 4417632
    greatlukas
    Poziom 14  
    Posty: 122
    Pomógł: 3
    Ocena: 7
    Podepnij reset do VCC przez rezystor 10k.
  • #10 4418641
    kordirko
    Poziom 22  
    Posty: 307
    Pomógł: 53
    Ocena: 17
    sitec napisał:
    Wydaję mi sie że układ dopasowywujący powinien wyglądać tak:


    Dobrze napisałeś że Ci się wydaje ;)
    Podpięcie wejścia bramki 74HC14 pod 12V (nawet przez rezystor) spowoduje zatrzaśnięcie się układu ... może z dymem nie pójdzie (rezystor dość spory), ale działać stabilnie raczej nie będzie.
    Te wejście trzeba podpiąć przez rezystor pod +5V.

    Inna sprawa, że piny AVR-ów na wejściu mają już wbudowane coś w stylu "bramki schimdta" z histerezą - zobacz na dataszit dowolnego procka, na schemat poglądowy pinu (np. tutaj: http://www.atmel.com/dyn/resources/prod_documents/doc2486.pdf strona 52) - jest tam malutki symbol bramki schmidta. Więc dokładanie zewnętrznej bramki IMO mija się z celem.
  • #11 4421076
    sitec
    Poziom 13  
    Posty: 135
    Ocena: 5
    Faktycznie popełniłem błąd wejście bramki powinno być podpięte do +5V.

    Ale nie zgodzę się z tym że układ jest 74HC14 zbędny.

    Jeżeli byś jednak pominął ten układ to wtedy w bardzo łatwy sposób obliczysz czas wtrysku. Wystarczy że podepniesz pod T0 lub T1 który będzie Ci zliczał ilość taktów zegara w czasie wystąpienia stanu niskiego.
  • #12 4438591
    Mr_T_
    Poziom 15  
    Posty: 205
    Pomógł: 1
    Ocena: 23
    Tylko czy w ten sposób mierzony będzie prawidłowy czas otwarcia wtrysku? Wtrysk jest otwierany przez chwilę dłuższym sygnałem, a potem podtrzymywany przez krótkie szpilki.
    A i jak zmierzyć czas ten za pomocą ICP bo za bardzo nie rozumiem. Rozumiem rozwiązanie z użyciem dwóch wejść przerwać, które reagują na przeciwne zbocza.
  • #13 4440521
    darrrrek
    Poziom 22  
    Posty: 733
    Pomógł: 4
    Ocena: 98
    Czytalem ze te szpilki pojawiające sie to wytwarzajace sie napiecie na cewkach wtrysków, i badając sygnal na wyjsciu komputera samochodowego wogole ich nie ma. Nie wiem ile w tym prawdy i czy dobrze to ujołem :)

    Tutaj mozna zobaczyc narazie filmik z dzialajacego Voltomierza, bo narazie tylko on jest gotowy. Pasek napiecia zmienia kolor w zaleznosci od V. V<12 pasek czerwony, V>=12 lub V <= 14 pasek zielony, i V>14 pasek żołty. W wyswietlaczu narazie brak podswietlenia.



  • #14 4440564
    Mr_T_
    Poziom 15  
    Posty: 205
    Pomógł: 1
    Ocena: 23
    Tylko jak teraz wydobyć w prosty sposób, który to kabel idzie z komputera samochodowego do wtrysku? I czy ktoś ma możliwość podpiąć ten sygnał pod oscyloskop i nam tutaj przedstawić wykres?
  • #15 4440945
    darrrrek
    Poziom 22  
    Posty: 733
    Pomógł: 4
    Ocena: 98
    ja sie bede podpinal bezposrednio do wtryskiwacza, a pozniej porownam wskazania komputerka z realnym spalaniem.
  • #16 4441189
    Mr_T_
    Poziom 15  
    Posty: 205
    Pomógł: 1
    Ocena: 23
    No na pewno tak można. Ja nie zaczynam jeszcze konstruowania, bo nie mam danych wtryskiwacza. Nigdzie nie mogę znaleźć. A na obliczaniu spalania mi najbardziej zależy. Szukałem danych po internecie, ale nic sensownego nie znalazłem:/
  • #17 4441207
    darrrrek
    Poziom 22  
    Posty: 733
    Pomógł: 4
    Ocena: 98
    ja narazie przyjolem za stała stryskiwacza, wartosc 0,00335 L/s z tego co widze to wiekszosc stałych wtryskiwaczy miesci sie gdzies wokolo tej wartosci 0,00317 itp.
  • #18 4441242
    Mr_T_
    Poziom 15  
    Posty: 205
    Pomógł: 1
    Ocena: 23
    Ja znowu dowiedziałem się od dr z uczelni, że te różnice są bardzo duże i jeżeli będę sobie liczył spalanie to na odcinku paru km mogą mi wyjść niezłe cyrki... a znowu nie chce mi sie przez rok stroić tego komputera. A skąd Ty wziąłeś te dane?
  • #19 4445477
    darrrrek
    Poziom 22  
    Posty: 733
    Pomógł: 4
    Ocena: 98
    Mam maly problem ze zliczaniem czasu stanu niskiego na pinie INT0.
    Napisalem programik ale nie chce on liczyc czasu. A zmienna Ilecykli czasem zawiera wartosci ujemne, i ogolnie pokazuje jakies nieprawdziwe wartosci.

    bede wdzieczny za pomoc

    $regfile = "m48def.dat"
    $crystal = 8000000
    $baud = 4800
    
    
    Config Timer1 = Timer , Prescale = 1
    
    On Timer1 Czas
    Enable Timer1
    
    Config Int0 = Change                                        'reakcja na zmiane
    On Int0 Zbocze
    Enable Int0
    Enable Interrupts
    
    Timer1 = 0
    Stop Timer1
    
    Dim Przelad As Word
    Dim Ilecykli As Integer
    Przelad = 0
    
    
    
    Do
    'Obsluga wyswietlacza
    Loop
    End
    
    
    Czas:
    Incr Przelad
    Return
    
    Zbocze:
     If Pind.2 = 0 Then
     Start Timer1
    Else
     Stop Timer1
     Ilecykli = Przelad * 65536
     Ilecykli = Ilecykli + Timer1    'Ilecykli zawiera czas  przez jaki sygnal mial stan niski.
     Timer1 = 0
     Przelad = 0
    
     Print Ilecykli
    End If
    Return


    Probuje to zasymulowac w Bascom AVR ale nie bardzo mi to wychodzi, nie mam pojecia jak wywołac przerwanie INT0 w symulatorze.

    Pozdrawiam
  • REKLAMA
  • #20 4446877
    Mr_T_
    Poziom 15  
    Posty: 205
    Pomógł: 1
    Ocena: 23
    Może się mylę, ale zmienna Ilecykli jest integer a to znaczy, że ma zakres od -32765 do 32764 czy jakoś tak. Czyli jeżeli masz instrukcję:

    Ilecykli = Przelad * 65536

    to na pewno wyjdziesz poza zakres.
    Fakt, że nie wiem czy dobrze mówie, bo często się mylę....
  • #21 4447621
    darrrrek
    Poziom 22  
    Posty: 733
    Pomógł: 4
    Ocena: 98
    dokladnie, udalo mi sie dojsc do tego i faktycznie blad byl tam gdzie piszesz :) ehhh a 3 dni siedzialem i myslalem co jest grane :)
  • Pomocny post
    #22 4447638
    Mr_T_
    Poziom 15  
    Posty: 205
    Pomógł: 1
    Ocena: 23
    Też tak samo mam jak długo się męcze z jakimś kodem. Wtedy proszę jakiegoś kolegę o pomoc... ledwo spojrzy i widzi takie najpospolitsze błędy.
    Już teraz wszystko poprawnie jest mierzone? Tzn. tak jak chciałeś?

    Ps. Jeżeli coś zmieniłeś w tym swoim schemacie ideowym to czy mógłbyś go uaktualnić?
  • #23 4447668
    darrrrek
    Poziom 22  
    Posty: 733
    Pomógł: 4
    Ocena: 98
    jutro wieczorem zaaktualizuje, bo wlasnie wskakuje wo wyrka.

    Pozdrawiam i dzieki :)
  • #24 4448379
    darrrrek
    Poziom 22  
    Posty: 733
    Pomógł: 4
    Ocena: 98
    Ponizej schemat aktualny. Boli mnie jedna rzecz tylko, problem w tym ze gdy wykorzystuje przerwanie INT0 to LCD z nokii wariuje tzn, pojawiaja sie jakies smieci na ekranie, losowe litery cyfry itd.. nie wiem czy to spowodowane jest tym ze LCD jest podpiety do tego samego portu w ktorym znajduje sie INT0 (PortD) czy moze cos innego.
    Załączniki:
    • schemat 05.11.2007.pdf (13.08 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #25 4449696
    Mr_T_
    Poziom 15  
    Posty: 205
    Pomógł: 1
    Ocena: 23
    To nie powinno mieć żadnego wpływu na LCD. Chyba, że wtedy jakoś głupio uC się zachowuję, a nie powinien. Ja niestety nie wiem o co chodzi:( A próbowałeś może na innym przerwaniu?
  • #26 4451510
    Ch.M.
    Poziom 27  
    Posty: 1009
    Pomógł: 62
    Ocena: 15
    Może problemem jest to, że podłączyłeś VBOOSTER bezpośrednio z zasilaniem LCD. Procek wytrzymuje zakłócenia ale LCD juz niekoniecznie bo nie ma rzadnego filtra na wejściu zasilania! Dostaw pojemności przy LCD i odseparuj VBOOSTER koralikiem ferrytowym i pojemnością np 4,7uF (filtr LC) Duża szansa, że ten zabieg pomoże
    Pozdrawiam
  • #27 4453184
    darrrrek
    Poziom 22  
    Posty: 733
    Pomógł: 4
    Ocena: 98
    jak mam rozumiec "dostaw pojemnosci przy LCD", chodzi oto abym dolozył na zasilaniu kondensator ?? z tym filtrem LC przy Vbooster sprobuje tak jak mowisz.

    Ten filtr LC ma wygladac w ten sposób ? od +3V3 poprzez koralik do Vbooster i kondensator pomiedzy Vbooster a masą ???
    Załączniki:
    • Mini Komputer samochodowy, prośba o sprawdzenie schematu rola.h1.jpg (4.69 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #28 4454080
    darrrrek
    Poziom 22  
    Posty: 733
    Pomógł: 4
    Ocena: 98
    zastosowalem taki filtr jak na powyzszym schemacie ale niestety zadnych zmian nie spowodowal :(((
  • #29 4454106
    Mr_T_
    Poziom 15  
    Posty: 205
    Pomógł: 1
    Ocena: 23
    A że tak sie spytam z ciekawości. Cały procek chodzi na wewnętrznym oscylatorze 1MHz? Wszystko to co chcesz da się pomierzyć przy takim taktowaniu?
  • #30 4454118
    darrrrek
    Poziom 22  
    Posty: 733
    Pomógł: 4
    Ocena: 98
    procek chodzi na 8 MHz

Podsumowanie tematu

✨ Dyskusja dotyczy projektu mini komputera samochodowego opartego na mikrokontrolerze Atmega, służącego do pomiaru czasu otwarcia wtryskiwacza i obliczania zużycia paliwa. Poruszono kwestie poprawności schematu, zwłaszcza wejść do pomiaru napięcia akumulatora oraz sygnału z cewki wtryskiwacza. Zasugerowano stosowanie dzielnika napięcia dostosowanego do zakresu pomiarowego (np. do 15 V) oraz ochronę przed przepięciami za pomocą diod Zenera lub transili zamiast diody 1N4148. Wskazano, że dioda równoległa przy cewce powinna być umieszczona za rezystorem ograniczającym, aby minimalizować ingerencję w elektronikę wtrysku. Omówiono wykorzystanie wejść mikrokontrolera: lepszym rozwiązaniem do pomiaru impulsów wtrysku jest użycie modułu Input Capture Unit (ICP) zamiast przerwania INT0, a także możliwość zastosowania Analog Comparator z filtrem RC dla eliminacji zakłóceń. Poruszono problem drgań styków klawiatury, które można eliminować programowo zamiast stosowania kondensatorów i diod. Wątpliwości budziło podłączanie bramki 74HC14 do napięcia 12 V, co może powodować niestabilność układu; zalecane jest podłączenie do +5 V przez rezystor. Dyskutowano o problemach z pomiarem czasu stanu niskiego sygnału na pinie INT0, gdzie błędy wynikały z nieodpowiedniego typu zmiennej (integer) i przekroczenia zakresu. Wskazano, że pomiar czasu wtrysku można realizować przez zliczanie taktów timera podłączonego do wejścia przerwania lub ICP. Autor testował działanie komputera na Atmedze48 i planował migrację do Atmegi32 ze względu na większą pamięć. W części dyskusji omówiono problemy z wyświetlaniem na LCD z telefonów Siemens S55 i S65, w tym szybkość transmisji SPI, optymalizację kodu i metody konwersji grafik do formatu kompatybilnego z wyświetlaczem (np. 16-bit 5R6G5B). Zaproponowano użycie dodatkowego mikrokontrolera (np. Attiny15) do obsługi wyświetlacza w celu odciążenia głównego procesora i uniknięcia problemów z przerwaniami podczas transmisji danych. W końcowej fazie autor potwierdził poprawność obliczeń spalania na podstawie czasu wtrysku, uzyskując błąd poniżej 100 ml na 28,5 litra LPG, co uznał za satysfakcjonujący wynik. Dyskusja zawierała także fragmenty kodu w Bascom AVR do pomiaru czasu impulsów i obsługi LCD.
Wygenerowane przez model językowy.
REKLAMA