RTV forum PL | NewsGroups PL

Szybkie metody pomiaru częstotliwości sinusoidalnej do 150Hz z użyciem uC

Jak szybko mierzyć częstotliwość przy pomocy uC?

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Szybkie metody pomiaru częstotliwości sinusoidalnej do 150Hz z użyciem uC

Goto page 1, 2  Next

Robbo
Guest

Fri Dec 17, 2010 10:39 am   



Witam,

Chciałem za pomocą mikrokontrolera mierzyć
częstotliwość przebiegu sinusoidalnego
w zakresie od 0 do 150Hz występującą
w danym momencie.
Zapewne najłatwiej byłoby zliczać liczbę
okresów w jakimś czasie. Niemniej to może
być rozwiązanie za wolne dla moich potrzeb.
Im szybciej wyznaczę częstotliwość, tym lepiej.
Wiem, że ktoś robił w ten sposób, że układem
analogowym mierzył czas trwania połówki
sinusoidy i w ten sposób określał częstotliwość.
Tylko, że ta metoda może okazać się kłopotliwa
we współpracy z mikrokontrolerem (jakoś trzeba
ten sygnał podać do uC -- może za pomocą
przetwornika A/C, tylko czy tu nie będzie jakichś
problemów typu przekłamania, opóźnienia związane
z czasem przetwarzania). A może sinusoidę
(poddaną "kwadratyzacji" Wink wprowadzać
na uC, na przerwanie wyzwalane narastaniem
i opadaniem zbocza, do tego wewnętrzny timer
i w ten sposób obliczać czas trwania połówki.
Czy ktoś mógłby mi zaproponować jakąś
inną metodę?
Z góry dziękuję za pomoc.

R.

Desoft
Guest

Fri Dec 17, 2010 11:17 am   



Quote:
Chciałem za pomocą mikrokontrolera mierzyć
częstotliwość przebiegu sinusoidalnego
w zakresie od 0 do 150Hz występującą
w danym momencie.

Na razie jasne.

Quote:
Zapewne najłatwiej byłoby zliczać liczbę
okresów w jakimś czasie. Niemniej to może
być rozwiązanie za wolne dla moich potrzeb.

Mierz okres.

Quote:
Im szybciej wyznaczę częstotliwość, tym lepiej.
Wiem, że ktoś robił w ten sposób, że układem
analogowym mierzył czas trwania połówki
sinusoidy i w ten sposób określał częstotliwość.
Tylko, że ta metoda może okazać się kłopotliwa
we współpracy z mikrokontrolerem (jakoś trzeba
ten sygnał podać do uC -- może za pomocą
przetwornika A/C, tylko czy tu nie będzie jakichś
problemów typu przekłamania, opóźnienia związane
z czasem przetwarzania).

Bez sensu.

Quote:
A może sinusoidę
(poddaną "kwadratyzacji" Wink wprowadzać
na uC, na przerwanie wyzwalane narastaniem
i opadaniem zbocza, do tego wewnętrzny timer
i w ten sposób obliczać czas trwania połówki.

To ma sens.
Z tą kwadratyzacją to może przesada. Wystarczy układ określajacy punkt na
sinusoidzie.
Takim szczególnym przypadkiem jest detektor przejścia przez zero. Tylko że
występuje dwa razy w ciągu okresu.. ale cóż to jest dla uC.

Quote:
Czy ktoś mógłby mi zaproponować jakąś
inną metodę?

Mierzyć miernikem częstotliwości, obrabiać dane - jak jest problem to z
użyciem komputera PC i wysyłać do uC. Smile))))

--
Desoft

Piotr Gałka
Guest

Fri Dec 17, 2010 11:20 am   



Użytkownik "Robbo" <yyy@mmm.com> napisał w wiadomości
news:4d0b2fb7$0$27044$65785112@news.neostrada.pl...
Quote:
Czy ktoś mógłby mi zaproponować jakąś
inną metodę?

Jakaś inna metoda - mierzyć cały okres, a nie pół Wink
P.G.

Zbych
Guest

Fri Dec 17, 2010 11:23 am   



W dniu 2010-12-17 11:17, Desoft pisze:

Quote:
A może sinusoidę
(poddaną "kwadratyzacji" Wink wprowadzać
na uC, na przerwanie wyzwalane narastaniem
i opadaniem zbocza, do tego wewnętrzny timer
i w ten sposób obliczać czas trwania połówki.

To ma sens.
Z tą kwadratyzacją to może przesada. Wystarczy układ określajacy punkt
na sinusoidzie.
Takim szczególnym przypadkiem jest detektor przejścia przez zero. Tylko
że występuje dwa razy w ciągu okresu.. ale cóż to jest dla uC.


Trzeba tylko wiedzieć, czy to jest czysty sinus, czy ze śmieciami, bo
wtedy możesz mieć wiele przejść przez zero w każdym półokresie.

Michoo
Guest

Fri Dec 17, 2010 12:38 pm   



W dniu 17.12.2010 10:39, Robbo pisze:
Quote:
Witam,

Chciałem za pomocą mikrokontrolera mierzyć
częstotliwość przebiegu sinusoidalnego
w zakresie od 0 do 150Hz występującą
w danym momencie.
Żaden problem.


Quote:
Zapewne najłatwiej byłoby zliczać liczbę
okresów w jakimś czasie.
Zapewne.


Quote:
Niemniej to może
być rozwiązanie za wolne dla moich potrzeb.
Dlaczego?


Quote:
Im szybciej wyznaczę częstotliwość, tym lepiej.
Wiem, że ktoś robił w ten sposób, że układem
analogowym mierzył czas trwania połówki
sinusoidy i w ten sposób określał częstotliwość.
Tylko, że ta metoda może okazać się kłopotliwa
we współpracy z mikrokontrolerem (jakoś trzeba
ten sygnał podać do uC -- może za pomocą
przetwornika A/C, tylko czy tu nie będzie jakichś
problemów typu przekłamania, opóźnienia związane
z czasem przetwarzania).
Tak, taka atmega ma 15 tysięcy próbek na sekundę. Tanie army od ST 10

razy tyle. To na pewno wprowadza ogromne opóźnienia przy sygnale 150Hz

Quote:
A może sinusoidę
(poddaną "kwadratyzacji" Wink wprowadzać
na uC, na przerwanie wyzwalane narastaniem
i opadaniem zbocza, do tego wewnętrzny timer
i w ten sposób obliczać czas trwania połówki.
Czy ktoś mógłby mi zaproponować jakąś
inną metodę?
Jeżeli sinusoida oscyluje wokół masy to albo ją przesuwasz, albo

prostujesz, albo ucinasz.

Próbkujesz sygnał za pomocą ADC - różnice między 2 kolejnymi próbkami
zapisujesz w buforze cyklicznym (np 30), trzymasz też sumę zawartości
bufora (bufor cykliczny pozwala uaktualniać ją w czasie stałym). W
momencie kiedy suma z dodatniej staje się ujemna lub z ujemnej dodatnia
to znaczy, że wykryłeś przejście przez max/min sinusa. W buforze
cyklicznym trzymasz czas między ostatnimi K min/max - K zależnie od tego
czy interesuje cię czas odpowiedzi, czy odporność na zakłócenia. Liczysz
średni czas i masz częstotliwość chwilową.

Zależnie od wymaganych parametrów masz odpowiedź w 1..10..100 okresów.

--
Pozdrawiam
Michoo

Pszemol
Guest

Fri Dec 17, 2010 3:27 pm   



"Robbo" <yyy@mmm.com> wrote in message
news:4d0b2fb7$0$27044$65785112@news.neostrada.pl...
Quote:
Chciałem za pomocą mikrokontrolera mierzyć
częstotliwość przebiegu sinusoidalnego
w zakresie od 0 do 150Hz występującą
w danym momencie.

Filtr dolnoprzepustowy, nawet najprostszy układ RC który nam odfiltruje
śmieci.

Potem komparator z którego wyjście dasz na wejście cyfrowe procesora.
Przetwornik AC nie jest potrzebny jeśli sinusoida ma w miarę stałą
amplitudę to komparator z ustawionym na stałe progiem wystarczy...
I teraz po prostu mierzysz ilość taktów timera między przerwaniami.

Jeśli sinusoida ma zmienną amplitudę to można wciąż użyć komparatora
z tym że zamiast progu na stałym poziomie napięcia można zadać próg
utworzony z wyprostowanej jednopołówkowo i odfiltrowanej sinusoidy
wejściowej nieco obsuniętej aby uniknąć wyzwalania szumem.

VSS
Guest

Fri Dec 17, 2010 7:44 pm   



W wiadomości:4d0b2fb7$0$27044$65785112@news.neostrada.pl,
Robbo <yyy@mmm.com> nastukał:
Quote:
Witam,

Chciałem za pomocą mikrokontrolera mierzyć
częstotliwość przebiegu sinusoidalnego
w zakresie od 0 do 150Hz występującą
w danym momencie.

A jak zrobisz już ten miernik jest szansa na jedna sztuke która potrzfi
wykrywać 110,9Hz i wystawić 1 na jakies nózce ?

--
VSS

Adam Wysocki
Guest

Sat Dec 18, 2010 2:45 am   



VSS <vss@gazeta.pl> wrote:

Quote:
Chciałem za pomocą mikrokontrolera mierzyć
częstotliwość przebiegu sinusoidalnego
w zakresie od 0 do 150Hz występującą
w danym momencie.

A jak zrobisz już ten miernik jest szansa na jedna sztuke która potrzfi
wykrywać 110,9Hz i wystawić 1 na jakies nózce ?

Robisz dekoder CTCSSu? Może zainteresuj się układem LM567?

--
gof

Adam Wysocki
Guest

Sat Dec 18, 2010 2:57 am   



VSS <vss@gazeta.pl> wrote:

Quote:
Chciałem za pomocą mikrokontrolera mierzyć
częstotliwość przebiegu sinusoidalnego
w zakresie od 0 do 150Hz występującą
w danym momencie.

A jak zrobisz już ten miernik jest szansa na jedna sztuke która potrzfi
wykrywać 110,9Hz i wystawić 1 na jakies nózce ?

Robisz detektor CTCSSu? Może zainteresuj się układem LM567?

--
gof

VSS
Guest

Sat Dec 18, 2010 6:22 pm   



W wiadomości:pme.1292633858@news.chmurka.net,
Adam Wysocki <gophi.at.chmurka.net@nospam.invalid> nastukał:
Quote:
Robisz detektor CTCSSu? Może zainteresuj się układem LM567?

tak, uzywałem 567 ale problem polega na szerokości pasma, zbiera 2 tony w
lewo i prawo Sad
dlatego potrzebuje cos dokładniejszego

--
VSS

J.F.
Guest

Sat Dec 18, 2010 8:38 pm   



On Fri, 17 Dec 2010 19:44:14 +0100, VSS wrote:
Quote:
A jak zrobisz już ten miernik jest szansa na jedna sztuke która potrzfi
wykrywać 110,9Hz i wystawić 1 na jakies nózce ?

A jak dokladnie ma mierzyc ?
Moze sobie algorytm Goertzela zaprogramowac ?

J.

VSS
Guest

Sun Dec 19, 2010 4:01 pm   



W wiadomości:nb3qg6l617rmhgoqt9ejnjfv77l5bacpat@4ax.com,
J.F. <jfox_xnospamx@poczta.onet.pl> nastukał:
Quote:
On Fri, 17 Dec 2010 19:44:14 +0100, VSS wrote:
A jak zrobisz już ten miernik jest szansa na jedna sztuke która
potrzfi wykrywać 110,9Hz i wystawić 1 na jakies nózce ?

A jak dokladnie ma mierzyc ?
Moze sobie algorytm Goertzela zaprogramowac ?

J.


Tony CTCSS w okolicy 110,9Hz wyglądaja tak:

100,0
103,5
107,2
110,9
114,8
118,8
123,0

Dobrze by było aby łapal tylko 110,9Hz a nie łapał tych dwóch po bokach.
Jest to możliwe ? Potrzeba jak najbardziej amatorska - przemiennik
amatorski.

--
VSS

J.F.
Guest

Sun Dec 19, 2010 5:03 pm   



On Sun, 19 Dec 2010 16:01:12 +0100, VSS wrote:
Quote:
J.F. <jfox_xnospamx@poczta.onet.pl> nastukał:
A jak dokladnie ma mierzyc ?
Moze sobie algorytm Goertzela zaprogramowac ?

Tony CTCSS w okolicy 110,9Hz wyglądaja tak:

100,0
103,5
107,2
110,9
114,8
118,8
123,0

Dobrze by było aby łapal tylko 110,9Hz a nie łapał tych dwóch po bokach.
Jest to możliwe ?

Oczywiscie ze jest, tylko ze wymaga rozdzielczosci 2Hz, wiec czas
pomiaru to tak im dluzszy tym lepszy - z dobrym sygnalem moze by sie
udalo zejsc do 1/8 sekundy (cwierc okresu roznicy), ale doradzalbym
raczej nastawic sie na sekunde.

J.

VSS
Guest

Sun Dec 19, 2010 8:38 pm   



W wiadomości:9uasg65b0s0kg2qo8druppm212lugqh87u@4ax.com,
J.F. <jfox_xnospamx@poczta.onet.pl> nastukał:
Quote:
Oczywiscie ze jest, tylko ze wymaga rozdzielczosci 2Hz, wiec czas
pomiaru to tak im dluzszy tym lepszy - z dobrym sygnalem moze by sie
udalo zejsc do 1/8 sekundy (cwierc okresu roznicy), ale doradzalbym
raczej nastawic sie na sekunde.

J.

wystrczy 1/4 sekundy w 100%. czy przy rozdzielczości 4Hz można by skrócic
czas pomiaru.

--
VSS

Mirek
Guest

Sun Dec 19, 2010 8:44 pm   



On nie, 19 gru 2010 17:03:33 in article news:<9uasg65b0s0kg2qo8druppm212lugqh87u@4ax.com>
J.F. wrote:
Quote:
107,2
110,9
114,8
118,8
123,0

Dobrze by było aby łapal tylko 110,9Hz a nie łapał tych dwóch po bokach.
Jest to możliwe ?

Oczywiscie ze jest, tylko ze wymaga rozdzielczosci 2Hz, wiec czas
pomiaru to tak im dluzszy tym lepszy - z dobrym sygnalem moze by sie
udalo zejsc do 1/8 sekundy (cwierc okresu roznicy), ale doradzalbym
raczej nastawic sie na sekunde.

Z bardzo dobrym sygnałem, to można zrobić na podstawie kilku próbek.
http://cache.freescale.com/files/dsp/doc/app_note/AN2384.pdf

Goto page 1, 2  Next

elektroda NewsGroups Forum Index - Elektronika Polska - Szybkie metody pomiaru częstotliwości sinusoidalnej do 150Hz z użyciem uC

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map