-
1. Data: 2010-12-17 09:39:03
Temat: Jak szybko mierzyć częstotliwość przy pomocy uC?
Od: "Robbo" <y...@m...com>
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" ;) 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.
-
2. Data: 2010-12-17 10:17:48
Temat: Re: Jak szybko mierzyć częstotliwość przy pomocy uC?
Od: "Desoft" <D...@i...pl>
> 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.
> 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.
> 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.
> A może sinusoidę
> (poddaną "kwadratyzacji" ;) 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.
> 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. :-)))))
--
Desoft
-
3. Data: 2010-12-17 10:20:41
Temat: Re: Jak szybko mierzyć częstotliwość przy pomocy uC?
Od: Piotr Gałka <p...@C...pl>
Użytkownik "Robbo" <y...@m...com> napisał w wiadomości
news:4d0b2fb7$0$27044$65785112@news.neostrada.pl...
> Czy ktoś mógłby mi zaproponować jakąś
> inną metodę?
Jakaś inna metoda - mierzyć cały okres, a nie pół ;-)
P.G.
-
4. Data: 2010-12-17 10:23:43
Temat: Re: Jak szybko mierzyć częstotliwość przy pomocy uC?
Od: Zbych <a...@o...pl>
W dniu 2010-12-17 11:17, Desoft pisze:
>> A może sinusoidę
>> (poddaną "kwadratyzacji" ;) 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.
-
5. Data: 2010-12-17 11:38:52
Temat: Re: Jak szybko mierzyć częstotliwość przy pomocy uC?
Od: Michoo <m...@v...pl>
W dniu 17.12.2010 10:39, Robbo pisze:
> 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.
> Zapewne najłatwiej byłoby zliczać liczbę
> okresów w jakimś czasie.
Zapewne.
> Niemniej to może
> być rozwiązanie za wolne dla moich potrzeb.
Dlaczego?
> 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
> A może sinusoidę
> (poddaną "kwadratyzacji" ;) 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
-
6. Data: 2010-12-17 14:27:16
Temat: Re: Jak szybko mierzyć częstotliwość przy pomocy uC?
Od: "Pszemol" <P...@P...com>
"Robbo" <y...@m...com> wrote in message
news:4d0b2fb7$0$27044$65785112@news.neostrada.pl...
> 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.
-
7. Data: 2010-12-17 18:44:14
Temat: Re: Jak szybko mierzyć częstotliwość przy pomocy uC?
Od: "VSS" <v...@g...pl>
W wiadomości:4d0b2fb7$0$27044$6...@n...neostrada.
pl,
Robbo <y...@m...com> nastukał:
> 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
-
8. Data: 2010-12-18 00:45:59
Temat: Re: Jak szybko mierzyć częstotliwość przy pomocy uC?
Od: g...@n...invalid (Adam Wysocki)
VSS <v...@g...pl> wrote:
>> 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
-
9. Data: 2010-12-18 00:57:38
Temat: Re: Jak szybko mierzyć częstotliwość przy pomocy uC?
Od: g...@n...invalid (Adam Wysocki)
VSS <v...@g...pl> wrote:
>> 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
-
10. Data: 2010-12-18 17:22:20
Temat: Re: Jak szybko mierzyć częstotliwość przy pomocy uC?
Od: "VSS" <v...@g...pl>
W wiadomości:p...@n...chmurka.net,
Adam Wysocki <g...@n...invalid> nastukał:
> 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 :(
dlatego potrzebuje cos dokładniejszego
--
VSS