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

Atmega odczyt PWM z licznika samochodu

09 Sty 2020 18:03 477 11
  • Poziom 9  
    Witajcie
    hobbystycznie bawię się elektroniką, robiłem już układy Typu powolne zapalanie-wygaszanie diody i OK mniej więcej chwytam o co chodzi z PWM ,Lecz tym razem chciałem zrobić coś typu, moduł który odczytuje obroty silnika i steruje diodą RGB typowy "shift light"

    Robiłem kiedyś podejście do tego tematu w Arduino dowiedziałem się wówczas że silniczek obrotów silnika (ten w zegarach samochodu) sterowany jest poprzez PWM, chciałem podpiąć się pod nogę owego silniczka w celu odczytu obrotów lecz nie bardzo wiem jak odczytać PWM

    Googlowałem "atmega PWM odczyt" jest cała masa artykułów o generowaniu sygnału PWM lecz nie mogę znaleźć nic na temat tego jak odczytywać PWM generowany przez inne urządzenia, mógł by mnie ktoś nakierować ? jak się zabrać do odczytu tego PWM'a ? był bym wdzięczny za jakiś link, lub chociaż niech ktoś podpowie jak sformułować pytanie do googla

    chcę to zrobić na Atmega328p
    program pisany w C
    samochód to Opel Omega 2.2 B FL benzyna
  • Poziom 39  
    Narysuj sobie wykres "prostokątnego" sygnału jak z linku. https://enterius.eu/wsparcie/artykuly-techniczne/modulacja-pwm-co-to-jest/
    Widzisz, że kolejne impulsy po sobie następuję w takim samym odstępie ale ich długość to już jest regulowana. Czyli potrzeba znać częstotliwość sygnału i czas impulsu i obliczysz wypełnienie. Jenak to nie musi być jednoznaczne z odczytaniem obrotów gdyż układ całkujący może mieć charakterystykę nieliniową, czyli przy 50% wypełnienia nie musi wcale pokazywać 50% wskazania "wielkości mierzonej".
  • Poziom 39  
    Jesteś pewien co do tego PWM? Sterowanie wskazówką w licznikach najczęściej zrealizowane jest w oparciu o specyficzny rodzaj silnika - air core gauge. Tam wychylenie wskazówki uzależnione jest od relacji prądów płynących w dwóch przesuniętych o 90* cewkach. Próba odczytu napięcia/prądu tylko z jednej cewki da błędny wynik. Co do najprostszej implementacji pomiaru współczynnika PWM to jest to chyba pomiar napięcia na filtrze RC. A programowo to pomiar przy pomocy ICP. Mierzysz czas T1 na opadającym, następnie T2 na narastającym zboczu, zerujesz i z relacji T1/T2*100% masz współczynnik wypełnienia. W zależności od T2 i OV regulujesz preskaler licznika.
  • Poziom 9  
    excray napisał:
    Jesteś pewien co do tego PWM? Sterowanie wskazówką w licznikach najczęściej zrealizowane jest w oparciu o specyficzny rodzaj silnika - air core gauge. Tam wychylenie wskazówki uzależnione jest od relacji prądów płynących w dwóch przesuniętych o 90* cewkach. Próba odczytu napięcia/prądu tylko z jednej cewki da błędny wynik. Co do najprostszej implementacji pomiaru współczynnika PWM to jest to chyba pomiar napięcia na filtrze RC. A programowo to pomiar przy pomocy ICP. Mierzysz czas T1 na opadającym, następnie T2 na narastającym zboczu, zerujesz i z relacji T1/T2*100% masz współczynnik wypełnienia. W zależności od T2 i OV regulujesz preskaler licznika.


    nie, nie jestem pewien, jak już wspominałem starałem się kiedyś coś takiego osiągnąć na arduino, Tutaj

    i otrzymałem taką odpowiedź:
    "Patrzysz na płytkę z tego obrotomierza i co tam jest?
    - złącze z kilkoma pinami,
    - specjalizowany układ V3003-754,
    - podwójny wzmacniacz operacyjny LM2904,
    - kilka elementów pasywnych, z których łatwo zauważyć elementy zasilania oraz dopasowania sygnału,
    - kwarc,
    - i finalnie wskaźnik zrealizowany na silniku elektrycznym z podwójnym uzwojeniem.
    Logicznie rzecz biorąc taki układ musi dostać zasilanie, masę i sygnał prędkości silnika. Jeżeli jest coś więcej, to tylko dodatki.
    Wskaźnik jest podłączony do układu V3003, czyli ten układ na pewno "wie" jaka jest prędkość obrotowa. Szukasz w sieci informacji na temat tego scalaka i już wiesz, że wyprowadzenia 14, 15, 17, 18 to sterowanie wskazówką. Sprawdzasz na płytce i pasuje. Wyprowadzenia 2 i 16, to masa. Pasuje. Zasilanie podawane na 1. nogę. Pasuje. To skąd ten układ bierze sygnał do wysterowania wskazówki? Noga 13. Możesz sobie rozrysować płytkę, ale nie ma takiej potrzeby. Ważne jest, że na tym wyprowadzeniu jest sygnał o prędkości silnika.
    Co możesz zrobić z tym sygnałem? Możesz go podłączyć do swojego mikrokontrolera, który w oparciu o częstotliwość mierzonego sygnału (ilość impulsów w czasie), będzie sterował diodą LED RGB. Zanim podłączysz coś do wyprowadzenia 13. układu V3003, to musisz sprawdzić amplitudę sygnału. Jeżeli będzie więcej niż maksymalne napięcie wejściowe mikrokontrolera, to musisz zastosować układ dopasowujący; zmniejszający napięcie. Pobór prądu również nie może być zbyt duży, bo zaburzy pracę oryginalnego wskaźnika. Widzę tam jeden rezystor 10k i drugi 16,2k(?) i jeszcze jeden zasłonięty, a do tego 2 kondensatory i dioda do zasilania. Transoptor potrzebuje zbyt dużo prądu i bezpośrednio nie zadziała, ale z dodatkowym wzmacniaczem już może być ok.
    Ja bym użył jako separatora 1 tranzystora typu 2N7002 (czy jakikolwiek inny podobny) w układzie inwertera. Źródło do masy, bramka przez rezystor 1k do V3003 #13, dren do zasilania w Twoim układzie + ewentualnie rezystor pull-up). Dalej już możesz robić co chcesz z sygnałem prędkości obrotowej. Najlepiej podłączyć do wejścia Input Capture i użyć sprzętowego licznika do zliczania impulsów, albo do bramkowania zliczania i co jakiś czas (20ms-100ms) odczytać licznik i wysterować odpowiednio element docelowy, tutaj dioda LED RGB. "

    ale teraz właśnie do mnie chyba dotarło że do zliczania impulsów można wykorzystać Timer nie PWM zgadza się ??
  • Poziom 39  
    Nie przeczytałeś zbyt uważnie tamtego tematu. Nawet tam masz napisane, że na wyprowadzeniach silnika sygnał nie jest adekwatny do obrotów. Musisz go szukać w innym miejscu na płytce - tak jak opisano w tamtym temacie. Ewentualnie miernik/oscyloskop i samodzielne pomiary.
  • Poziom 17  
    Za bardzo kombinuje z odczytem z silniczka obrotomierza.
    Sterownik silnika wysyła sygnał obrotów do licznika i tam najlepiej się wpiąć. Sygnał jest na pinie A62 sterownika silnika i na pinie nr22 w licznikach. Prawdopodobnie sygnał o zmiennej częstotliwości, zrób sobie na arduino prosty częstotliwościomierz i sprawdź.
  • Poziom 29  
    pelepe napisał:
    dowiedziałem się wówczas że silniczek obrotów silnika (ten w zegarach samochodu) sterowany jest poprzez PWM


    Jakiego samochodu?

    Nigdy nie widziałem takiego rozwiązania, lecz nie twierdzę, że widziałem wszystko. Raczej nie dotykam urządzeń sprzed roku 2000 ale nawet we wcześniejszych które robiłem, nie widziałem sterowania silnika obrotomierza poprzez PWM.

    excray napisał:
    Sterowanie wskazówką w licznikach najczęściej zrealizowane jest w oparciu o specyficzny rodzaj silnika - air core gauge.


    Bzdura, praktycznie tylko Azja stosuje to rozwiązanie. Reszta świata ma w przewadze krokowce.

    Mateusz@ napisał:
    Sygnał jest na pinie A62 sterownika silnika i na pinie nr22 w licznikach


    I tak w każdej marce/modelu/roczniku?
    A ja siedzę i już 300 stron w Wordzie naprodukowałem..
  • Poziom 17  
    rosak napisał:
    Mateusz@ napisał:
    Sygnał jest na pinie A62 sterownika silnika i na pinie nr22 w licznikach


    I tak w każdej marce/modelu/roczniku?


    Kolego przeczytasz pierwszy post autora tematu to będziesz wiedział o jaki samochód chodzi.
  • Poziom 29  
    Mateusz@ napisał:
    Kolego przeczytasz pierwszy post autora tematu to będziesz wiedział o jaki samochód chodzi.


    Najmocniej przepraszam, jestem niemal pewny, że gdy pierwszy raz czytałem ten post, nie było informacji o modelu samochodu. Widocznie przeoczyłem.
  • Poziom 39  
    rosak napisał:
    Bzdura, praktycznie tylko Azja stosuje to rozwiązanie. Reszta świata ma w przewadze krokowce.

    Sam bzdury wypisujesz. Większość ma ACG - tak jak zresztą ten opel.
  • Poziom 29  
    excray napisał:
    Sam bzdury wypisujesz. Większość ma air-core - tak jak zresztą ten opel.


    Jeśli mowa o ponad 20to letnich zabytkach to się zgadzam (jakieś 5% aut na drogach), jednak myślałem że mówimy o czasach teraźniejszych.
  • Poziom 9  
    dziękuję wszystkim za odpowiedź

    Mateusz@ napisał:
    Prawdopodobnie sygnał o zmiennej częstotliwości, zrób sobie na arduino prosty częstotliwościomierz i sprawdź.


    Jestem w posiadaniu miernika >>UT60G<<. Ma on funkcję pomiaru częstotliwości. Nada się czy lepiej zrobić na Arduino?

    Tamten temat jest troszkę nieaktualny.
    Obecnie kombinuję z Opel Omega B FL 2000r 2.2 benzyna 16v.
    rozebrałem licznik znalazłem taki oto scalak Atmega odczyt PWM z licznika samochodu

    MICRONAS CDVN 2121 M051 - Myślę, że jest on odpowiedzialny za pracę silniczków, gdyż jego wyprowadzenia są połączone z silniczkiem obrotomierza. Ale nie mogę znaleźć w googlach nic na temat tego scalaka :/ żadnej noty katalogowej.