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

Jak zliczać impulsy z czujnika prędkości generującego sygnał sinusoidalny?

mmx01 18 Kwi 2004 14:52 5305 28
REKLAMA
  • #1 600374
    mmx01
    Poziom 18  
    Posty: 354
    Pomógł: 1
    Ocena: 14
    Witam, montuje od jakiegos czasu licznik predkosci na uC 51
    stoje przed problemem rozwiazania zliczania impulsow ktorych byc moze nie ma. Zakladalem iz przetwornik w aucie generuje okreslona ilosc impulsow na kazdy przejechany metr, jednakze otrzymalem taka informacje:

    "Z tego co doczytalem, to wynika ze czujnik predkosci nie generuje impulsow, tylko modyfikuje napiecie. Z tego co czytam, to na wyjsciu podaje prad zmienny o przebiegu sinusoidalnym, ktorego amplituda i czestotliwosc zmieniaja sie wraz z predkscia. Dalej jest napisane, ze komputer ustala predkosc pojazdu na podstawie wartosci napiecia, ktore _chyba_ jest zmieniane na stale gdzies w obrebie zegarow. "

    i zalaczony schemacik blokowy.
    Dzieki pewnemu koledze zbudowalem komparator na wejsciu uC zliczajacym impulsy aby uniezaleznic sie od amplitudy i kazdy sygnal powyzej 2.5V jest interpretowany jako impuls, co jednak w przypadku gdy powyzsze zdanie jest prawdziwe ? i nie sa to impulsy a zwyczajnie wartosc napiecia ?

    Pozdrawiam,
    Mariusz.
    Załączniki:
    • mx3_schemat_02.png (29.03 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 600596
    olekewaagata
    Poziom 25  
    Posty: 638
    Pomógł: 64
    Ocena: 28
    Kolego, w samochodach są dwa typy wskazników predkości i przebytej
    drogi: machaniczny czyli specjalna elastyczna linka (ciegno Bowdena)
    napędzająca mechanizm zliczania przebytej drogi i jednocześnie
    pokazujące prędkość (na zasadzie prądów wirowych w aluminiowym
    bębnie ) oraz bez linki ale z nadajnikiem impulsów przebytej drogi.
    Ten elektroniczny system generuje charakterystyczną ilość impulsów
    na 1 km (w zaleznosci od typu samochodu od 3000 do 25.000 imp/km)
    i te impulsy w układach elektronicznych predkościomierza zamieniane
    są na predkość i przebytą drogę.
    Natomiast nigdzie nie występuje (w osobowych bo te znam) metoda
    zamiany prędkości pojazdu na odpowiednie napięcie. Pszypuszczam
    że i w ciężarowych jest podobny system bo posługiwanie się napięciem
    proporcjonalnym do prędkości byłoby metodą zbyt mało dokładną.
  • #3 600997
    japacer
    Poziom 12  
    Posty: 43
    Widzę ze ktoś poruszył ciekawy temat bo też stoję przed tym problemem. Z tym że u mnie jest sprawa prostrza bo w polonezie do którego buduję prędkościomierz ( bo padł oryginał) jest linka jak kolega wyżej napisał - cięgno Bowdena. Tylko gdybym wiedział ile impulsów przypada na jeden przejechany kilometr to napisanie programu byłoby formalnością. A nie chce mi się do tego dochodzić drogą empiryczną wziąwsz pod uwage że to może być 25000 imp/km. Może kolega olekewaagata wie jaka to wartość w polonezie? Być może ktoś z forum spotkał się już z podobnym problemem.
    Pozdrawiam
  • #4 601142
    szymtro
    Poziom 30  
    Posty: 1421
    Pomógł: 101
    Ocena: 59
    Nie jestem w stanie powiedzieć dokładnie ale w Polonezie jest to około 5 lub 8 imp na obrót a jeden obrót to jeden metr(na liczniku jest napisane 1000:1 a to znaczy 1000 impulsów na kilometr). Nie jestem tylko do końca pewien. Jeżeli ktoś wie na 100% ile dokładnie to niech napisze.
  • #5 601263
    japacer
    Poziom 12  
    Posty: 43
    jezeli 5 lub 8 imp/km to 5k lub 8k imp/km chybaże 1000:1 to faktycznie stosunek imp do kilometrów. napisze dwie wersje programu i sprawdzę co jest co.
    Dzięki za wiadomość
  • #6 601292
    mmx01
    Poziom 18  
    Posty: 354
    Pomógł: 1
    Ocena: 14
    Co do mojego problemu to jest to przetwornik indukcyjny zegary wyciagnalem i sa sterowane elektrycznie/elektronicznie. W dokumentacji jest zreszta informacja ze czujnik znajduje sie gdzies w skrzyni biegow wiec nie jest to napewno wersja mechaniczna. Pytanie wiec jesli nie jest mechaniczny to napewno musi dzialac na zasadzie impulsow generowanych na dany odcinek drogi ? jesli tak to zlicze to sobie prosto zwyczajnie policze na uC ilosc impulsow na T0 na drodze jednego km i bede mial ilosc impulsow na metr. Pytanie tylko czy beda to napewno impulsy :)
  • REKLAMA
  • #7 601306
    szymtro
    Poziom 30  
    Posty: 1421
    Pomógł: 101
    Ocena: 59
    napewno będą impulsy. Możliwe jest jednak kilka opcji. Sprawdź dokładnie gdzie jest czujnik i ile przewodów do niego dochodzi. Mogą być dwie główne opcje:
    -trzy przewody(zasilanie,masa,sygnał)
    -dwa przewody(jakiś rodzaj cewki)
    ten pierwszy jest bardziej popularny - tam są impulsy prostokątne(amplituda zależna od producenta(5V,12V,24V))
  • REKLAMA
  • #8 601313
    japacer
    Poziom 12  
    Posty: 43
    Tylko pamiętaj że procek jest bardzo szybki i jeżeli nie będzie to odpowiednio duża liczba impulsów w jednostce czasu jaką przyjmiesz za stałą czasową to przy małych prędkościach samochodu będa przekłamania albo wskaże zero. Trzeba wziąć to pod uwagę.
  • #9 601386
    olekewaagata
    Poziom 25  
    Posty: 638
    Pomógł: 64
    Ocena: 28
    Panowie, najpierw odpowiadam na pytanie dotyczace Poloneza z napedem
    linkowym: ilość obrotów linki na 1 km w Polonezie jest najczęściej 1028
    obrotów na 1 km. Ale to też zalezy np od typu opon (ja mam takie). Jak teraz zamienić
    obroty linki na impulsy elektryczne? . Wszyscy producenci taksonetrów
    elektronicznych stosuja takie przetworniki montowane pomiedzy zegar
    a linkę i w zalezności od producenta taki przetwornik daje od jednego
    impulsu na jeden obrót linki do bodajże 10 impulsów.
    Zrobienie samemu takiego przetwornika od strony elektrycznej nie jest
    problemem ale problem jest część mechaniczna, dlatego sugeruje
    poszukać znajomego taksówkarza który wymienił stary taksometr
    na fiskalny a przy poprzednim ma przetwornik impulsów.
    Znam przetworniki firmy ALWI z Kielc, stosują tam od dawna (ale nie od
    zawsze) czujnk hallotronowy + wzmacniacz operacujny + wyjscie
    schmitt'a typu otwarty kolektor (oczywiscie te wszystkie elementy są
    w jednym scalaczku dwa razy mniejszym od TO92) i dają jeden impuls
    na jeden obrót linki.
    Pomiar w samochodzie ilosci obrotów linki (impulsów elektrycznych)
    na jeden kilometr odbywa się na specjalnie do tego wyznaczonym
    odcinku drogi (gdzie to jest w danym mieście wiedzą Obwodowe
    Urzędy Miar i Wag) albo specjalizowanym przyżądem, albo niektóre
    typy taksometrów mają taką funkcje serwisową, czyli sam taksometr
    się zmierzy.
    Teraz jesli chodzi o impulsy generowane przez samochody bez linek.
    I tu już jest bardzo róznie jeśli chodzi o kształt sygnału (są takie
    które dają tylko masę) ale żadne nie mają wiecej jak 12V. Dlatego
    sugeruję zawsze dawć układ formowania np przerzutnik Schmitta.
  • #10 601400
    japacer
    Poziom 12  
    Posty: 43
    To już konkretna informacja.
    Jezeli to miałby być licznik kilometrów to spokojnie wystarczyłby czójnik od taksometru (nawet o tym myślałem). Tylko jeśli nawet uda mi się zdobyć taki który przetwarza 1obr na 10imp to i tak jest to za mało aby dostać w miarę dokładny wynik przy małych prędkościach samochodu przy odczycie co najmniej 2 x na sek. Już się borykąłem z tym problemem przy konstrukcji obrotomierza do silnika elektrycznego o reg. obrotach. aby wynik był znośny przy małych prędkościach musiałem zwiększyć liczbę impulsów do 60 na obrót wału. odczyt był 4 x w ciągu sek(aby zachować płynność).
    Dzięki. Popracuję nad tym.
  • #11 601638
    olekewaagata
    Poziom 25  
    Posty: 638
    Pomógł: 64
    Ocena: 28
    Przeciez możesz zastosowac inny algorytm naliczania
    prędkości samochodu. Nie zliczasz liczbę impulsów w jednostce czasu,
    tylko mierzysz czas jednego impulsu wiedząc ile tych impulsów wchodzi
    na 1 km, i wtedy możesz przy jednym impulsie na 1 obrót linki mierzyć
    prawie dowolnie małą prędkość samochodu.
    Osobiście wydaje mi się że nie ma potrzeby w samochodzie zajmować
    sie małymi prędkościami, ale dam Ci przykład gdzie to jest bardzo
    potrzebne. To jest miernik przebytej drogi i prędkości na jachcie
    zaglowym. Właśnie tam przy słabym wietrze kiedy płyniesz
    np 1.5 km/godz jest sztuką ustawić tak żagle żebys zyskał na prędkości,
    a tylko dokładny miernik potrafi tak minimalny wzrost prędkości pokazać.
  • #12 601802
    japacer
    Poziom 12  
    Posty: 43
    No w tej wersji już lepiej. Taki sposób pomiaru wydaje się być najdokładniejszy i nie zależny od liczby imp na km. zrobię pare testów z pomiarem odcinków czasu i spróbuję odnieeść wyniki badań do poldka.
    Dzięki za podpowiedź.
  • #13 601828
    Czesiek
    Poziom 28  
    Posty: 1124
    Pomógł: 99
    Ocena: 116
    Impulsator montowny w samochodach ciężarowych daje 8 impulsów na obrót. Wartość stała niezależnie od typu. Impulsy te są na dwóch "szynach" w przeciwfazie - łatwo wyeliminować podwójne zaliczenie tego samego impulsu. Dalej określa się współczynnik wynikający z obwoodu kół czyli stała w oraz określa się współczynnik dla urządzenia pomiarowego - stała k.
  • #14 601839
    diag
    Poziom 29  
    Posty: 1401
    Pomógł: 45
    Ocena: 209
    Skoro robisz prędkosciomierz to powinienieś nie zapomnieć o liczniku kilometrów i liczniku dziennym. Weź też pod uwage by zastsoawć procesor o dużej odporności na zakłucenia, inaczej będziesz tracił dane.
    W mechanicznych licznikach byla przyjmowana przekladnia 1000 w syrence 666.
  • #15 601865
    japacer
    Poziom 12  
    Posty: 43
    Odporny na zkłucenia to znaczy wyposażony w sprzętowy 'watchdog'? Może ktoś podsunie jakis konkretny model mikrokontrolera który idealnie będzie się nadawał do tego celu. Moje doświadczeniew kontakcie z prockami kończy się na 89Cx051, 89C51 i 90S2313. Jezeli któryś z nich nadaje się do zastosowania w samochodzie to mam jeden problem z głowy.
  • #16 602062
    olekewaagata
    Poziom 25  
    Posty: 638
    Pomógł: 64
    Ocena: 28
    japacer napisał:
    Taki sposób pomiaru wydaje się być najdokładniejszy i nie zależny od liczby imp na km.

    ZALEŻY od ilości obrotów/impulsów na 1 km.
    Przykład: pierwszy samochód ma 1000 imp/km, drugi ma 10.000 imp/km
    jesli oba jadą z tą samą prędkością to w drugim samochodzie czas
    trwania pojedynczego impulsu z drogi jest 10 razy krótszy.
  • #17 602129
    japacer
    Poziom 12  
    Posty: 43
    no fakt. Troche źle się wyraziłem. chodzi ot ze dokładność pomiaru nie jest bardzo zalezna od ilości impulsów na km. A co jeśli chodzi o dobór mikrokontrolera do tego zastosowania?
  • #18 602136
    olekewaagata
    Poziom 25  
    Posty: 638
    Pomógł: 64
    Ocena: 28
    30.000 taksometrów chodziło na at89c52, tylko na zasilanu był transil
    nie pamietam symbolu ale coś 20-30 V i nie było problemów.
  • #19 602137
    japacer
    Poziom 12  
    Posty: 43
    Wydaj emi się ze jakiś AVR ze względu na wbudowany watchdog i pamięć EEprom do przechowywania stanu licznika kilometrów. Ale czy są jakieś specjalne wersje tych mikrokontrolerów do zastosowań w środowiskach narażonych na zakłucenia?
  • #20 603101
    diag
    Poziom 29  
    Posty: 1401
    Pomógł: 45
    Ocena: 209
    Osobiscie polecam PIC16F872 wydaje się odpowiedni do tego zadania.
    Proponuje wyświetlacz 8X2 LCD i 3XLED.
    Zasilanie z przed stacyjki do PIC i LCD, z za stacyjki do LED.
  • #21 603170
    japacer
    Poziom 12  
    Posty: 43
    Tylko z PICem będzie problem ponieważ nigdy nie miałem kontaktu z tymi mikrokontrolerami. Tu pewnie jest jakiś asembler bo o "c" lub "bascomie" mogę chyba zapomnieć poza tym nie dysponuję ani ani programatorem ani wiedzą w głowie ani nie posiadam żadnych dokumentacji. poprostu nic. Dlatego mogę jedynie ograniczyć się do AVRa. I rozumiem że czły układ będzie stale zasilany dla podtrzymania stanu kilometrów.
  • REKLAMA
  • #22 603196
    diag
    Poziom 29  
    Posty: 1401
    Pomógł: 45
    Ocena: 209
    Na to nie licz, że podłączenie do Akumulatora załatwia sprawe stan km trzeba zapisać do EEprom inaczej przy rozruchu, wyjeciu ak. przepadną km.
  • #23 603262
    japacer
    Poziom 12  
    Posty: 43
    Właśnie z tym się liczę dlatego myślę o procesorze wyposażonym w wewnętrzną pamięć EEPROM bo nie chce mi się rozbudowywać całego systemu o ikwadrata. Jeśli chodzi o wyświetlacz LED to myślałem o 3 wskaźnikach sterowanych multipleksowo ale łatwiej chyba będzie zastosowanie 1 podwójnego i 1 wskaźnika przepełnienia (+/-1) bo mój poldek raczej nie rozwinie nigdy ponad 199 i dwóch dekoderów BCD na 7 seg. Wystawić na port liczbę w kodzie BCD do sterowania tym podwójnym, agdy prędkość będzie większa niż sto wysterować wskaźnik przepełnienia czyli 1 z osobnej linii procka czyli razem do sterowanie LEDem 9 linii. tylko nie wie czy nie jest to marnotrawstwo i czy dobrze rozumuję.
  • #24 603295
    diag
    Poziom 29  
    Posty: 1401
    Pomógł: 45
    Ocena: 209
    Dekodery BCD bym se darował, mozna sterować LED z procka, co prawda program trudniejszy ale koszt mniejszy i układ prostszy.
  • #25 603313
    japacer
    Poziom 12  
    Posty: 43
    Układ bez wątpienia prostrzy. Dekodery BCD są stare więc i tanie. Ale sterowanie multipleksowe LEDami wydaje mi się zbyt absorbuje czas procka i trzeba się wyrabiać między przerwaniami, których częstotliwość w moim układzie będzie zależec od prędkości obrotowej linki. Bo pomiar prędkości chce zrealizować na zasadzie pomiaru czasu między impulsami tak jak radził olekewaagata. A z dekoderami BCD wystawiam sobie wartość w kodzie BCD na port i sobie jest dopuki jej nie zmienie w rejestrze portu, a procek zamiast zajmować się odświerzaniem LEDów robi sobie coś innego tylko szkoda tylu pinów portu.
  • #26 603466
    diag
    Poziom 29  
    Posty: 1401
    Pomógł: 45
    Ocena: 209
    No to musisz być dobry w obliczeniach numerycznych, bo czas miedzy impulsami jest odwrotnie proporcjonalny do prędkości. Masz racje procek bedzie miał co robić, szczególnie gdy masz predkość bliską 0.
  • #27 603694
    japacer
    Poziom 12  
    Posty: 43
    Sugerujesz inne może prostrze w obliczeniach rozwiązanie?
  • #28 603709
    diag
    Poziom 29  
    Posty: 1401
    Pomógł: 45
    Ocena: 209
    Prponuje zrobić to tak:
    1.Przetwornik do linki np taki jak w mysz daje ok 30 imp. na obrot
    2.Ustawiasz przerwanie od tajmera np 0 do sterowania multipex LED
    3.TMR1 jako licznik liczy impulsy z linki
    4.Co ileś przrwań odczyt TMR1 i zerowanie
    5.Wyświetlenie wyniku na LED.
    Abyś troche popracował nie opisze zasady działania, ale jest to uklad sprawdzony.
  • #29 604013
    olekewaagata
    Poziom 25  
    Posty: 638
    Pomógł: 64
    Ocena: 28
    diag napisał:
    No to musisz być dobry w obliczeniach numerycznych, bo czas miedzy impulsami jest odwrotnie proporcjonalny do prędkości. Masz racje procek bedzie miał co robić, szczególnie gdy masz predkość bliską 0.

    Tak tylko dla ciekawości, jesli chodzi o obciążenie procka obliczeniami
    podczas zliczania drogi i predkości oraz wyswietlania wyników.
    W taksometrze ALWI był stosowany at89c52, kwarc 10 Mhz,
    11 wyswietlaczy LED i podczas pracy KURS taksometr też zliczał drogę
    do licznika kilometrów ogółem przejechanych oraz na bierząco mierzył
    prędkość samochodu chociaż tego nie pokazywał, ale było mu to
    potrzebne do funkcji wymaganej przez normy, które mówiły że nie
    mozna przejśc na pozycję KASA przy prędkości wiekszej niż 5.0 km/godz
    I tak działajacy taksometr bez problemu obsługiwał prędkość 1500 km/H
    Powyżej tej prędkości wszystkie funkcje metrologiczne działały
    prawidłowo a jedynie coraz słabiej świecił wyświetlacz który przy
    3000 km/godz przestawał świecić całkowicie. Badania robione były
    dla 1000 impulsów na 1 km.

Podsumowanie tematu

✨ Dyskusja dotyczy problemu zliczania impulsów z czujnika prędkości w samochodzie, który generuje sygnał sinusoidalny zamiast prostokątnych impulsów. W samochodach osobowych i ciężarowych stosuje się dwa typy prędkościomierzy: mechaniczne z linką Bowdena oraz elektroniczne generujące impulsy proporcjonalne do przebytej drogi (od 3000 do 25 000 impulsów na kilometr). Czujniki indukcyjne mogą mieć 2 lub 3 przewody i generować impulsy prostokątne o amplitudzie zależnej od producenta. W Polonezie liczba impulsów wynosi około 1000 na kilometr, co odpowiada jednemu impulsowi na obrót linki (1 obrót = 1 m). Do zliczania impulsów proponuje się zastosowanie komparatora lub przetwornika impulsów (np. hallotronowego) oraz pomiar czasu między impulsami zamiast ich liczby w jednostce czasu, co pozwala na dokładniejszy pomiar prędkości, zwłaszcza przy niskich prędkościach. Wskazano na konieczność uwzględnienia odporności mikrokontrolera na zakłócenia, stosowanie watchdogów oraz pamięci EEPROM do przechowywania stanu licznika kilometrów. Jako mikrokontrolery polecano m.in. AT89C52, PIC16F872 oraz AVR ze względu na wbudowany watchdog i pamięć EEPROM. Dyskutowano również o sposobach sterowania wyświetlaczami LED (multipleksowanie vs. dekodery BCD) oraz o obciążeniu procesora podczas obliczeń prędkości i wyświetlania wyników. Przykłady zastosowań i konstrukcji taksometrów z impulsatorami o stałej liczbie impulsów na obrót (np. 8 impulsów w samochodach ciężarowych) potwierdzają praktyczność takich rozwiązań.
REKLAMA