-
Data: 2010-12-17 11:38:52
Temat: Re: Jak szybko mierzyć częstotliwość przy pomocy uC?
Od: Michoo <m...@v...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]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
Następne wpisy z tego wątku
- 17.12.10 14:27 Pszemol
- 17.12.10 18:44 VSS
- 18.12.10 00:45 Adam Wysocki
- 18.12.10 00:57 Adam Wysocki
- 18.12.10 17:22 VSS
- 18.12.10 19:38 J.F.
- 19.12.10 15:01 VSS
- 19.12.10 16:03 J.F.
- 19.12.10 18:44 Mirek
- 19.12.10 19:38 VSS
- 21.12.10 07:04 EM
- 21.12.10 13:05 J.F.
- 22.12.10 10:50 Kicer
Najnowsze wątki z tej grupy
- w czasach LED komary mają ciężko
- walizka z kodami
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
Najnowsze wątki
- 2025-07-19 Zakrzewo => SAP HCM Consultant <=
- 2025-07-19 Poznań => Konsultant SAP HCM <=
- 2025-07-19 Poznań => SAP HCR Consultant <=
- 2025-07-18 celnicy pobili policjanta
- 2025-07-18 Warszawa => Technik IT - Konfiguracja i Wsparcie Sprzętowe <=
- 2025-07-18 Warszawa => Specjalista ds. Sprzętu IT i Wsparcia Technicznego <=
- 2025-07-18 Białystok => Kotlin Developer <=
- 2025-07-18 Warszawa => Sales Director (Cloud solutions) <=
- 2025-07-18 Spalinowa trauma
- 2025-07-18 Polska => Senior Key Account Manager <=
- 2025-07-18 Białystok => Programista Kotlin <=
- 2025-07-18 Szczecin => Key Account Manager IT <=
- 2025-07-18 Łódź => Programista Mainframe (z/OS, Assembler) <=
- 2025-07-18 Łódź => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-18 Lublin => Delphi Programmer <=