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 zbudować przetwornik częstotliwości 1-100 Hz na napięcie dla µP?

sokmarcin 19 Sie 2006 23:59 10764 29
Najlepsze odpowiedzi LABEL_AI_GENERATED

Jak zbudować szybki przetwornik częstotliwość–napięcie dla prostokątnego sygnału 1–100 Hz, aby mierzyć częstotliwość mikrokontrolerem przez wejście A/D bez zajmowania jego zasobów pomiarem okresu?

Najprościej zastosować gotowy przetwornik F/U LM2907, korzystając ze schematów aplikacyjnych z jego noty katalogowej [#2933072] Dodatni sygnał prostokątny należy doprowadzić do wejścia przez kondensator, ponieważ układ przełącza się przy lekko ujemnej polaryzacji sygnału wejściowego [#2959906] LM2907 daje liniową zależność napięcia od częstotliwości, ale trzeba uwzględnić tętnienia i czas ustalania, szczególnie przy małych częstotliwościach; uzyskanie dokładności lepszej niż około 1% wymaga starannego dopracowania układu [#2932887] W wersji DIP14 można zastosować dodatkowy układ redukcji tętnień między pinami 3 i 4; w teście zmniejszył on tętnienia przy 10 Hz z około 0,6 Vpp do około 20 mVpp, a czas odpowiedzi wyniósł około 0,3 s [#2964027] Wersja DIP8 ma ograniczone możliwości redukcji tętnień, ponieważ piny 3 i 4 są wewnętrznie połączone; pozostaje użycie wersji DIP14 albo dodatkowego wzmacniacza, np. LM358 [#2961859]
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA
  • #1 2932825
    sokmarcin
    Poziom 20  
    Posty: 460
    Pomógł: 7
    Ocena: 235
    Witam

    Potrzebuje zbudowac taki przetwornik. Chce przetwarzac prostokątny sygnał o stalym wypelnieniu z zakresu 1÷100 Hz na napięcie, a następnie podawac na A/D w µP i tak mierzy częstotliwośc.
    Nie moge bezpośrednio mierzyc okresu sygnału na µP bo to zajmuje za duzo czasu. Musze mie możliwośc odczytania warości f w każdej chwili.
    Kiedyś robiłem tak, że czętotliwośc mierzyłem na drugim µP i podawałem równolegle przez jeden port, tak, że w każdej chwili mogłem ją odczyta z portu. Metoda choc sprawdzała się, to znacznie komplikowała cały układ i pozbawiała mnie jednego portu.

    pozdrawiam
    Marcin
  • REKLAMA
  • #2 2932887
    -RoMan-
    Poziom 42  
    Posty: 8781
    Pomógł: 766
    Ocena: 408
    Takie przetwarzanie jest mało dokładne, niestety.

    Przebiegiem mierzonym sterujesz uniwibrator o stałej długości impulsu. Następnie z wyjścia uniwibratora całkujesz prostym filtrem RC - napięcie na wyjściu jest proporcjonalne do częstotliwości.
    Jako uniwibrator użyj ICM555 - jest to CMSOwa wersja klasycznego 555. Ma na tyle niskie prady wejściowe, że ich nistabilność nie wpłynie na jakośc przetwarzania. Wyjście jest typowym CMOSowym totem-pole, czyli przy rozsądnych obciążeniach również nie powstanie błąd całkowania.

    Lojalnie uprzedzam: osiągnięcie dokładności lepszej niż 1% będzie wymagało ciężkiej pracy.
  • Pomocny post
    #3 2933072
    rasty
    Poziom 27  
    Posty: 734
    Pomógł: 126
    Ocena: 23
    Gotowy przetwormik to LM2907.
    W nocie aplikacyjnej znajdziesz mnóstwo przykładów, jak go użyć.

    pozdr.
  • #4 2933358
    Dar.El
    Poziom 41  
    Posty: 5450
    Pomógł: 750
    Ocena: 890
    Witam
    Najszybszą metodą pomiaru jest mierzenie długości okresu bezpośrednio w µP. Przy uśrednianiu wyniku metodą analogową dla uzyskania stabilnego napięcia potrzeba kilkudziesięciu okresów co dla 1Hz da nam czas pomiaru ponad 1 minutę. żeby mieć dostępny wynik ostatniego pomiaru trzeba trzymać go w pamięci RAM a nie czekać do następnego pomiaru.
  • #6 2938111
    Quarz
    Poziom 43  
    Posty: 14357
    Pomógł: 1646
    Ocena: 629
    Witam,
    masz za dużo "chciejstwa" w stosunku do realnych możliwości technicznych przy określonej niedokładności.
    sokmarcin napisał:
    Witam

    Potrzebuje zbudowac taki przetwornik. Chce przetwarzac prostokątny sygnał o stalym wypelnieniu z zakresu 1÷100 Hz na napięcie, a następnie podawac na A/D w µP i tak mierzy częstotliwośc.

    Już tu są dwa zagadnienia:
    - pomiar częstotliwości,
    - przetwarzanie tego ciągu impulsów na proporcjonalne co do wartości napięcie.

    Pomiar częstotliwości w podanym przez Ciebie zakresie z rozsądną niedokładnością, np. lepszą od 1% wymaga:
    - albo długiego czasu pomiaru (dla częstotliwości 1Hz, więcej jak 100s) i wtedy układ jest stosunkowo prosty, ponieważ korzystasz z klasycznego układu częstościomierza cyfrowego,
    - albo skomplikowanego układu wejściowego wyznaczającego (dokładnie) czas jednego okresu przebiegu (szybciej nie da się), jego pomiar metodami cyfrowymi, a następnie przeliczenie (za pomocą µPC) na odpowiadającą wartość częstotliwości.

    Natomiast przetwornik F/U dla częstotliwości 1Hz, potrzebuje stałej czasowej układu całkującego conajmniej o rząd większej od najniższej odwrotności wartości częstotliwości (1Hz, czyli stała czasowa 10s, a czas ustalania poniżej 1%, to już prawie pięć stałych czasowych... ).

    sokmarcin napisał:
    Nie moge bezpośrednio mierzyc okresu sygnału na µP bo to zajmuje za duzo czasu. Musze mie możliwośc odczytania warości f w każdej chwili.

    To jak mam to rozumieć?

    sokmarcin napisał:
    Kiedyś robiłem tak, że czętotliwośc mierzyłem na drugim µP i podawałem równolegle przez jeden port, tak, że w każdej chwili mogłem ją odczyta z portu. Metoda choc sprawdzała się, to znacznie komplikowała cały układ i pozbawiała mnie jednego portu.

    Nic za darmo. Ze względu na niestosowność nie przytoczę tu sentencji z dowcipu o facecie co to przyszedł do burdelu ... i chciał za ... darmo... :D

    Pozdrawiam
    Greg
  • #7 2938239
    _jta_
    Specjalista elektronik
    Posty: 49159
    Pomógł: 3212
    Ocena: 4262
    Jeśli sygnał jest prostokątny, i jakby tak jeszcze poziomy były w miarę stabilne, to układ wejściowy
    do pomiaru okresu może być prosty - byleby uP miał obsługę przerwań, i pomiar czasu. A jakby tak
    ten sygnał miał poziomy TTL (czy inne pasujące do uP), to można sygnał podać wprost na uP.

    I myślę, że tylko taki sposób byłby sensowny, bo po co konwertować częstotliwość na napięcie?

    Sprawa trochę się skomplikuje, jeśli uP nie ma przerwań, albo zegara (nie mam tu na myśli
    generatora, a układ, z którego można programowo odczytać, ile czasu minęło) - wtedy trzeba
    by dodać jakieś układy, które to zastąpią, i trzeba by pomyśleć, czy ich złożoność nie będzie
    zbyt duża - może nie jest potrzebny dokładny pomiar, a bardziej prosty układ konwersji?
  • REKLAMA
  • #8 2938998
    sokmarcin
    Poziom 20  
    Posty: 460
    Pomógł: 7
    Ocena: 235
    Witam

    Wybaczcie, rozpisaliście sie, a ja nie miałem czasu odpisac.

    Wyglada to tak:
    mam sterownik powiedzmy zapłonu do samochodu, i potrzebuje mierzy prędkośc obrotową silnika. Jak wcześniej pisałem mierzyłem czas impulsu na jednym uP i przesyłałem już wartośc częstotliwości w Hz na drugi uP szeregowo, przez jeden z portów.
    Ograniczyłem się do podawania wartości zaokrąglonych do całości i to w zupełności wystarczało (dokładnośc do 30 obr/min)

    Teraz robiąc podobny sterownik chciałem sobie uprościc układ i zrobic własnie taki przetwornik.

    najprostszym rozwiązaniem będzie dla mnie gotowy układ LM2907 - dzięki rasty
    Z tego co wyczytałem w nocie katalogowej powinien się sprawdzic (chyba, że coś przeoczyłem)

    -RoMan-
    Niestety ten układ mi się nie przyda, z powodów jakie poruszyli kolejni forumowicze; potrzebuje szybkiego pomiaru

    _jta_ uP ma przerwania i timery, sygnał jest prostokątny o poziomach TTL, ale nie chce tak, ponieważ: musze dołozyc drugi uP i strace cały port w głównym uP.
    A pomiaru takiego nie moge dokonywac w głównym uP, bo nie ma na to czasu.

    Narazie bedzie to tylko stanowisko do badań, więc dokładnośc pomiaru f nie ma znaczenia (sygnał zastępujący czujnik prędkości obrotowej generowany będzie na NE555). Przetestuje scalaka i zobacze czy ten sposób będze się nadawał. Jeżeli nie - wróce do poprzedniej metody (pomiaru czasu na uP)

    Cytat:
    Witam,
    masz za dużo "chciejstwa" w stosunku do realnych możliwości technicznych przy określonej niedokładności.

    Greg - ja nie wymagam, tylko pytam.
  • #9 2939101
    Quarz
    Poziom 43  
    Posty: 14357
    Pomógł: 1646
    Ocena: 629
    Witam,
    trzeba było na samym wstępie napisać, iż to ma do tego celu służyć.
    Wykonujesz prostą tarczę pomiarową sprzęgniętą z wałem i mającą 60 otworków na obwodzie. Poprzez zliczanie impulsów od przesłaniania tychże otworków przez czas jednej sekundy masz liczbowo jako wynik zliczania; wartość obrotów na minutę :D
    120 otworków ==> 1/2 sekundy,
    240 otworków ==> 1/4 sekundy, itd.

    Teraz odpowiedz po co Tobie potrzebny jest jeszcze przetwornik F/U?

    Pozdrawiam
    Greg
  • #10 2939236
    -RoMan-
    Poziom 42  
    Posty: 8781
    Pomógł: 766
    Ocena: 408
    :arrow: sokmarcin

    Nie przesadzaj z wymaganiami - zakres obrotów silnika wymagajacy pomiaru to 1:10 (np. dla typowego benzynowego zakres 650 - 6500 rpm) a nie 1:100.
    Nie wiem skąd będziesz zbierał informacje o obrotach - jeśli z pojedynczej cewki zapłonowej, to masz na 1 obrót wału 2 impulsy, czyli zakres częstotliwości masz od ok. 22 do 220 Hz. Jesli z wtryskiwaczy, to zależnie od układu - przy pełnej sekwencji 5.5 - 55 Hz, przy wtryskiwaczach pracujących parami - 11 - 110 Hz.

    Uprzedzam, że w przypadku wtrysku jednopunktowego masz problem - ma prawo pracować asynchronicznie.

    Obroty silnika nie zmieniają się na tyle gwałtownie, żeby czas odpowiedzi był krytyczny. Wszelkie rozwiązania analogowe obrotomierzy jakie znam oparte sa właśnie na różniczkowaniu a potem całkowaniu.

    W przypadku układu zapłonowego to już w ogóle inna bajka - musisz pilnować dokladnego momentu zapłonu a nie kombinować. Czyli nalezy liczyć impulsy z czujnika położenia wału i nasłuchiwać czujnika spalania stukowego. Tutaj próba analogowego odczytu prędkości obrotowej nie ma jakiegokolwiek sensu. Nawet do wprowadzania korekt wyprzedzenia zapłonu.
  • #11 2940167
    _jta_
    Specjalista elektronik
    Posty: 49159
    Pomógł: 3212
    Ocena: 4262
    Jak uP ma przerwania i timery, to czasu zużyjesz tylko tyle, ile wymaga obsługa przerwania
    - pewnie to będzie poniżej 1% nawet jak użyjesz dość wolnego uP przy dużych obrotach,
    sprawdź ile czasu zajmuje obsługa przerwania, będziesz miał do około 100 przerwań/sek,
    chyba że zastosujesz pomysł Grega (tarcza z otworami), żeby polepszyć dokładność.
  • #12 2941364
    sokmarcin
    Poziom 20  
    Posty: 460
    Pomógł: 7
    Ocena: 235
    GregBa - dzięki za chęci, ale taka tarcza z otworkami to wogóle nie wchodzi w gre...

    W warunkach praktycznych nie ma szans żeby się coś takiego sprawdziło (pył,kurz)

    Sygnał otrzymuje z czujnika indukcyjnego zamocowanego przy kole zamachowym. Jeden wycięty ząb - 100 st przed GMP - informuje o położeniu wału. Sygnał taki musze uformowac, żeby podac na uP. Wystarczyło wyselekcjonowac ten większy pik (oznaczający polozenie 100 st przed GMP) z sygnału i mierzyc czas miedzy kolejnymi impulsami. Dalsze sterowanie zapłonem, to już tylko odpowiedni program.


    Teraz robie tylko stanowisko (bez silnika), więc jest mi łatwiej przetworzyc f (z generatora zastepującego czujnik ) na U niż komplikowac ukad dodatkowym uP.
    W praktyce, podejzewam, sposób ten się nie sprawdzi, więc pewnie wróce do pomiaru czasu na uP.

    -RoMan- o obrotomierzach nie pomyślałem, zerkne na jakiś schemat, moze coś podpatrze.

    _jta_: to wyglada tak: wystepuje przerwanie > włączam timer > wystepuje kolene przerwanie > wyłączam timer > odczytuje juz powiedzmy czas obrotu w ms > przeliczam na herce. Te czynnosci troche zajmują, zwłaszcza dzielenie.
    Chociaż teraz jak to pisze przyszedł mi do głowy pomysł jak to pogodzic na jednym uP. Przemyśle sprawe i może się uda.
    tak czy owak teraz zastosuje scalaka.

    Naprawde jestem wdzięczny za chęc pomocy...
    ale pozwólcie mi zastosowac tego scalaka ;)
  • #13 2941446
    Quarz
    Poziom 43  
    Posty: 14357
    Pomógł: 1646
    Ocena: 629
    Witam,
    wiedziałem, iż tak będzie, ponieważ tarcza z otworkami to akademicki przykład.
    W praktyce wykorzystuje się kółko zębate (zasada taka sama jak z tarczą) i czujnik indukcyjny, np. głowicę odczytującą od magnetofonu kasetowego.
    Można też wykonać tarczę z materiału niemagnetycznego z rowkami w których umieszczony jest materiał ferromagnetyczny i stały magnes do magnesowania tego. Odczyt identyczny, jak z kołem zębatym.

    Pozdrawiam
    Greg
  • #15 2942253
    Quarz
    Poziom 43  
    Posty: 14357
    Pomógł: 1646
    Ocena: 629
    Witam,
    _jta_ napisał:
    Myślę, że potrzebujesz tylko liczyć odwrotność - jak uP nie ma dzielenia, to może to stablicować?

    a ja sobie tak myślę, że autor tego wątku nie zapoznał się z istniejącymi i znanymi, dobrze działającymi, rozwiązaniami tego zagadnienia i teraz próbuje "wyważać już dawno otwarte drzwi" ... :D
    Znanych mi jest z pięć różnych sposobów "liczenia", bo chyba o to idzie, kąta wyprzedzenia zapłonu.
    Większość z nich bazuje na czujniku (pomiarze) pochodnej prędkości obrotowej wału po czasie i sygnale tzw. bazowym...
    Jak to zrealizować (i często obejść ważne patenty) to już inna sprawa.

    Pozdrawiam
    Greg
  • REKLAMA
  • #16 2943105
    sokmarcin
    Poziom 20  
    Posty: 460
    Pomógł: 7
    Ocena: 235
    Chciałem zauważyc, że pytałem o przetwornik f->U - ten temat chyba juź wyczerpaliśmy. .

    GregBa a jakie Ty znasz istniejące rozwiązania? podrzuc kilka moze przedyskutujemy...

    _jta_ jak znajde program co kiedys napisałem to podam konkretne wartosci czasowe i sie wyjasni czy da sie to zrobic na jednym mikroprocesorze czy nie.
  • #17 2943134
    Quarz
    Poziom 43  
    Posty: 14357
    Pomógł: 1646
    Ocena: 629
    Witam,
    sokmarcin napisał:
    [ ... ]
    GregBa a jakie Ty znasz istniejące rozwiązania? podrzuc kilka moze przedyskutujemy...

    Proponuję wejść w komitywę z właścicielem porządnego zakładu elektrotechniki samochodowej i tam szukać tego.
    Ja mam to tylko w pamięci, więc nie bardzo chcę mi się to wszystko opisywać i robić "czarną robotę" za Ciebie ...

    Pozdrawiam
    Greg
  • #18 2954725
    rasty
    Poziom 27  
    Posty: 734
    Pomógł: 126
    Ocena: 23
    :arrow: sokmarcin
    Na moment wrócę do LM2907.
    Tętnienia "całkowania" można mocno zmniejszyć właczajac prosty układ RC między pin 3 i 4 układu.
    Np. jak na rys.

    pozdr.
    Załączniki:
    • Jak zbudować przetwornik częstotliwości 1-100 Hz na napięcie dla µP? 2907_fU.gif (6.19 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #19 2959847
    sokmarcin
    Poziom 20  
    Posty: 460
    Pomógł: 7
    Ocena: 235
    rasty rozumiem że używałeś tego scalaka... powiedz mi w jakiej postaci podawałeś sygnał na wejscie (1) ? W podstawowej specyfikacji "Minimum component Tachometer" układ reaguje jedynie na przemienny sygnał sinusoidalny, da się to jakoś obejśc, żebym mógł podac prostokątny o dodatniej polaryzacji?
  • Pomocny post
    #20 2959906
    rasty
    Poziom 27  
    Posty: 734
    Pomógł: 126
    Ocena: 23
    To jest proste :D
    Na wejsciu jest (wg schematu wewn.) jakiś zmacniacz operacyjny. Zeby zmienił stan wyjściowy, sygnał wejściowy powinien mieć polaryzację lekko ujemną. Spróbuj podać go przez kondensator.
    Załączniki:
    • Jak zbudować przetwornik częstotliwości 1-100 Hz na napięcie dla µP? 2907_fU_1.gif (2.15 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #21 2960322
    sokmarcin
    Poziom 20  
    Posty: 460
    Pomógł: 7
    Ocena: 235
    rasty dzięki wielkie, działa - nie wiem jak (będe się musiał zastanowic :) ) , ale działa. Ja kombinowałem ze sztucznymi masami itp, żeby wytworzyc sygnał przemienny, ale conajmniej dziwnie zachowywał się układ i nie działał.

    Co do pomiaru prędkości obrotowej silnika:
    Jak skończe to co teraz robie, to napisze jak to wygląda w praktyce w znanych, sprawdzonych i stosowanych konstrukcjach, oraz jakie są możliwości zrealizowania podobnych, w warunkach amatorskich.

    Edit:

    Niestety ale tętnienienia są bardzo duże, rzędu 0,5V.
    Tak jak zaproponowałeś nie moge zrobi bo mam wersje w DIL8 i u mnie pin 3 i 4 są wewnętrznie połączone.
    Dałem na wyjściu kondensator 100µ i jes lepiej, ale reaguje ze zwłoką na zmiane częstotliwości.
    Jak jeszcze moge zmniejszyc tętnienia?
    Dodam że zakres mierzonych częstotliwości to 10 ÷ 60 Hz
  • #22 2961859
    rasty
    Poziom 27  
    Posty: 734
    Pomógł: 126
    Ocena: 23
    Z 8 nóżkowym układem już nic nie można (raczej).
    Pozostaje kupić DIL-14 lub dołożyć extra wzmacniacz np LM358.

    pozdr.

    PS. Zajrzyj jeszcze tu:
    http://sklep.avt.com.pl/go/_info/?id=32049&sess_id=feecdb14e0a72dd6bba2f363a0367918
    http://sklep.avt.com.pl/photo/_pdf/AVT1082.pdf?sess_id=feecdb14e0a72dd6bba2f363a0367918
    Powielacz częstotliwości X 100 w tym przypadku pomógł by bardzo. Ale to komplikuje całość. Układ by się rozbudował.
  • #23 2961973
    _jta_
    Specjalista elektronik
    Posty: 49159
    Pomógł: 3212
    Ocena: 4262
    Można by zastosować układ próbkująco-pamiętający (sample&hold, S&H).
    Myślę, że sensowne jest próbkowanie napięcia na kondensatorze w połowie impulsu ładującego.
    Układ S&H najprościej zrobić na dwóch wzmacniaczach operacyjnych: wejście '+' pierwszego to
    wejście układu S&H, wejście '-' łączysz z kondensatorem (drugi koniec kondensatora do masy),
    wyjście przez klucz analogowy (i może jeszcze jakiś opornik) do tego kondensatora (więc jak
    klucz jest załączony, to to jest wtórnik, tylko z pewną opornością i kondensatorem na wyjściu),
    i od tego kondensatora standardowy wtórnik (czyli '+' do kondensatora, '-' zwarty z wyjściem) na
    drugim wzmacniaczu operacyjnym... a może na 3 wzmacniaczach podwójny S&H (wymyśl jak)
    - pierwszy próbkuje w środku impulsu, drugi na końcu, i tętnienia powinny zniknąć. ;)
    (oczywiście, jak częstotliwość jest stała: jak się zmienia, na wyjściu będą schodki)
  • #24 2962368
    sokmarcin
    Poziom 20  
    Posty: 460
    Pomógł: 7
    Ocena: 235
    _jta_,rasty Dzięki ale zabardzo nie moge rozbudowac układu, bo zrobiłem już płytke i nie chce mi sie drugi raz przez to przechodzic...
    Następnym razem z pewnością wykozystam powyższe uwagi :)

    _jta_ tak mysle, że nie było by potrzeby stosowania takiego układu, bo i tak uP będzie próbkował tuż za impulsem (ok 30 us) Najwyżej mógłbym w programie jakieś poprawki wnieśc.


    Jedyne co to nie zrobiłem jeszcze generatora, i tak myśle...
    potrzebuje sygnału taktującego od ok 1 do 100 Hz i informacji na uP o jego częstotliwości.
    Zmontował bym przetwornik U/f (np. na Lm331) i napięcie przestrajające przetwornik ( z dzielnika z potencjometrem) odczytywac poprzez AD w uP. To wszystko tylko pod warunkiem, że ten przetwornik u/f będzie liniowy. Zaraz mi się nota sciągnie, to przeanalizuje pomysł.
    Nie wim, czy na NE555 da się tak zrobi, żeby napięcie na potencjometrze przestrajającym generator było proporcjonalne do generowanej częstotliwości. Wsumie to na NE555 bym wolał...
    Co o tym myslicie?
  • #25 2963117
    _jta_
    Specjalista elektronik
    Posty: 49159
    Pomógł: 3212
    Ocena: 4262
    Próbkowanie przez uP z określonym i stabilnym opóźnieniem po impulsie rozwiąże problem tętnień.

    Nie wiem, czy na LM331 da się zrobić f/U tak, żeby nie dawał dużych opóźnień - może sprawdź?
    Co do liniowości, to zdaje się, że LM331 ma bardzo dobrą - 0.01% - lepiej, jak 12-bitowy ADC.

    NE555 - nie widzę szans na uzyskanie liniowej zależności f-U przy konwersji w którąkolwiek stronę.
  • REKLAMA
  • #26 2964027
    rasty
    Poziom 27  
    Posty: 734
    Pomógł: 126
    Ocena: 23
    No więc pobawiłem się trochę tym układem.
    Zrobiłem układ z redukcją tętnień.
    Wyniki są niezłe.
    Wyregulowałem potencjometrem czułość 10 Hz/1V.
    Bez układu redukcji tętnień piki były ok. 0,6 Vpp, z układem spadły do ok, 20mVpp przy 10 Hz. i Uwy równym 1 V.
    Przy 60 Hz tętnienia spady poniżej 2 mV przy napięciu wyjściowym 6 V.
    Kształt zbliżony do sinusoidy.
    Oscyloskop wyzwalałem zboczem narastajacym impulsów wejściowych. Tuż po zboczu błąd napięcia nie przekroczył 5 mV dla 10 Hz. Jak pisał _jta_ , rozwiązuje to problem tętnień, trzeba brać próbkę tuż po zboczu.
    Pozostaje kwestia synchronizacji próbkowania z narastajacym zboczem impulsów wejściowych. Z opadajacym jest nieco gorzej.
    Czas odpowiedzi był ok. 0,3 sekundy, wyłączałem i włączałem sygnał skokowo.

    Powinno się udac to zrobić, oczywiście jak kupisz układ 14 nóżkowy.
    Napięcie zasilające ustawiłem równo 12 V. Są układy, LM2917, które mają wbudowany regulator napiecia. Troszkę inaczej zasilane, ale to jest w nocie.

    pozdr.
    Załączniki:
    • Jak zbudować przetwornik częstotliwości 1-100 Hz na napięcie dla µP? 2907_fU_2.gif (7.31 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #27 2964123
    sokmarcin
    Poziom 20  
    Posty: 460
    Pomógł: 7
    Ocena: 235
    No to fajnie, że tętnieniami nie musze się już martwic... uP próbkuje ok 4 us po wykryciu przerwania (tyle zajmuje obsługa przerwania) przetwarzanie zajmuje od 65 do 260 us, ale nie powinno to wnieśc większego błedu, rozrzut pomiędzy kolejnymi odczytami wyniesie max ok. 200 us. Z tego co wyliczyłem napięcie zmienia się 10 mV /1 ms, co daje rozrzut 2mV, rozdzielczośc przetwornika 10 bitowego to 5mV. Więc powinno byc ok. Pozostaje tylko wyskalowac.

    rasty: w związku z tym, że masz jakieś doświadczenie z tym scalakiem zapytam jakie byś proponował wartości elementów? (2x C i jeden R) bo narazie mam mały zakres - ok 2,5V, zaczyna się mniejwiecej 1,3 V i kończy ok 4 V

    Dodano po 30 [minuty]:

    rasty napisał:

    Pozostaje kwestia synchronizacji próbkowania z narastajacym zboczem impulsów wejściowych.

    Z tym nie ma problemu, bo sygnł wejściowy podaje na uP i jakby to powiedziec wszysko koło niego sie kręci ;)

    Cytat:
    Oscyloskop wyzwalałem zboczem narastajacym impulsów wejściowych. Tuż po zboczu błąd napięcia nie przekroczył 5 mV dla 10 Hz. Jak pisał _jta_ , rozwiązuje to problem tętnień, trzeba brać próbkę tuż po zboczu


    to się tyczy układu z redukcją tętnień, czy bez redukcji? Nie podoba mi się pomysł zmiany układu, jak już pisałem płytke mam gotową, a nie lubie sztukowac...
  • #28 2964995
    rasty
    Poziom 27  
    Posty: 734
    Pomógł: 126
    Ocena: 23
    To, co napisałem powyżej, tyczy się układu z redukcją tętnień i tego konkretnego układu.
    Dołaczam jeszcze rysunek, jak to wygląda na oscyloskopie. Chciałem zrobić fotkę, ale trafiłem na "koniec akumulatorów" - niestety :cry:
    Dotyczy to najgorszego przypadku, czyli 10 Hz. Wyżej już nie ma się o co martwić, tętnienia szybko maleją. Na upartego mógłbys próbkować w dowolnym momencie, wtedy błąd byłby +/- 10 mV na tle 1000 mV sygnału użytecznego.
    Nie bardzo rozumiem tego:
    Cytat:
    narazie mam mały zakres - ok 2,5V, zaczyna się mniej wiecej 1,3 V i kończy ok 4 V

    Przetwornik jest liniowy i taki powinien być pomiar. Chyba, że pokombinujesz coś z przesunięciem skali. Trzeba pooglądać aplikacje w nocie, może tam coś takiego jest.
    Spróbuję w domu z innym napięciem zasilania, jak to wygląda.

    na razie tyle

    pozdr.
    Załączniki:
    • Jak zbudować przetwornik częstotliwości 1-100 Hz na napięcie dla µP? 2907_fU_3.gif (2.46 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #29 2968113
    sokmarcin
    Poziom 20  
    Posty: 460
    Pomógł: 7
    Ocena: 235
    Jednak zdecydowałem się na układ w DIP14. Wyszło mi jeszcze parę nieścisłości, więc płytke zrobie od nowa...

    Dzięki za pomoc
  • #30 2968180
    rasty
    Poziom 27  
    Posty: 734
    Pomógł: 126
    Ocena: 23
    Tak myślałem. Układ krótki ma za mało możliwości.
    Przetestowałem to z innym zasilaniem. Dałem 7,5V i wyregulowałem czułość na 0,6 V/10 Hz.
    To 7,5 V wzięło się stąd, że gdybyś kupił układ LM2917, to tam jest stabilizator o takim napięciu i wiadomo, jak by się zachował.
    Procentowy udział tętnień nie zmienił się. Dla 10 Hz na wyjściu było 0,6 V i 12 mV tętnień, co było do przewidzenia.
    Swoją drogą, warto zrobić jakiąś prostą płytkę do układów próbnych, choćby coś takiego. Stare złącze przerżnięte na pół, parę łączówek, kawałek tekstolitu i gotowe. :D
    Zmontowanie prostego układu na czymś takim to dosłownie minuty. Oszczędza się mnóstwo czasu.
    Projektowanie płytki trzeba zostawić na sam koniec, kiedy już wszystko jest wiadome.

    pozdr.
    Załączniki:
    • Jak zbudować przetwornik częstotliwości 1-100 Hz na napięcie dla µP? 2907_fU_4.jpg (35.28 KB) Musisz być zalogowany, aby pobrać ten załącznik.

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy budowy przetwornika częstotliwości (1-100 Hz) na napięcie do pomiaru przez mikroprocesor (µP). Autor potrzebuje szybkiego i ciągłego odczytu częstotliwości prostokątnego sygnału o poziomach TTL, bez angażowania µP w pomiar okresu, który jest czasochłonny. Proponowane rozwiązania obejmują użycie gotowych układów F/U, takich jak LM2907 i LM2917, które przetwarzają częstotliwość na napięcie, jednak z problemem tętnień i ograniczeń dokładności. Redukcję tętnień można osiągnąć przez dodanie prostych filtrów RC lub układów sample&hold. Dyskutowano także o pomiarze czasu trwania impulsu w µP z obsługą przerwań i timerów, co jest efektywne przy sygnale prostokątnym i poziomach TTL, ale wymaga dodatkowego oprogramowania i zasobów. Wskazano, że dokładność lepsza niż 1% wymaga długiego czasu pomiaru lub skomplikowanych układów. Autor ostatecznie zdecydował się na układ LM2907 w obudowie DIP14, co pozwoliło na lepszą stabilizację i redukcję tętnień. Poruszono też temat praktycznych zastosowań w pomiarze prędkości obrotowej silnika z czujnika indukcyjnego przy kole zamachowym, gdzie sygnał jest przetwarzany na częstotliwość. Wskazano, że pomiar bezpośredni w µP z przerwaniami jest najprostszym i najbardziej sensownym rozwiązaniem, jeśli µP ma odpowiednie funkcje. Dyskusja zawierała także uwagi dotyczące liniowości przetworników f/U, opóźnień próbkowania i możliwości zastosowania generatorów NE555 do konwersji częstotliwości na napięcie, które jednak nie zapewniają liniowości. Podsumowując, najlepszym kompromisem jest użycie układów LM2907/LM2917 z odpowiednią filtracją i próbkowaniem sygnału przez µP, lub pomiar czasu impulsu z obsługą przerwań, w zależności od wymagań dokładności i szybkości pomiaru.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA