Arduino Polska Forum
Rozróżnienie częstotliwości - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: Rozróżnienie częstotliwości (/watek-rozr%C3%B3%C5%BCnienie-cz%C4%99stotliwo%C5%9Bci)



Rozróżnienie częstotliwości - darek_op - 22-02-2025

Założenia sa takie. Komputer odtwarza krótki dźwięk z pliku wav.  Dwa dźwięki będące po prostu sinusoidą (lub prostokątem) o określonej dowolnie wybranej częstotliwości. Sygnał z wyjścia głośnikowego jest odczytywany przez Arduino i w zależności od od dźwięku podejmuje dalsze kroki.
Pewnie poste, ale nie mogę sobie z tym poradzić


RE: Rozróżnienie częstotliwości - oscarX - 23-02-2025

A z czym konkretnie masz problem? Może poszukaj jakiego projektu 'miernika częstotliwości na Arduino' i zobacz jak to jest zrobione.


RE: Rozróżnienie częstotliwości - KaDe - 14-03-2025

Witam.
Ja to bym ugryzł w ten sposób że, ów analogowy sygnał podnieść do takiego poziomu aby po wyprostowaniu i zachowaniu tylko górnych połówek sinusoidy przepuścić przez przerzutnik Schmitta po czym wprowadzić sygnał wyzwalający przerwanie które z chwilą np. zbocza narastającego mierzy jego długość (czas trwania od narastającego zbocza do opadającego). Czynność tą w celu uwiarygodnienia że mamy doczynienia z użytecznym sygnałem powtórzyć np. 10 razy i jeśli wynik jest taki sam (ewentualnie odrzucić inne wyniki) można założyć że był sygnał taki na jaki czekasz?
Z czasem program będziesz rozbudowywał (dopieszczał) o elementy które wyjdą w tzw. "praniu".
Od czegoś trzeba zacząć. Powodzenia.


RE: Rozróżnienie częstotliwości - oscarX - 15-03-2025

(14-03-2025, 20:52)KaDe napisał(a): Witam.
Ja to bym ugryzł w ten sposób że, ów analogowy sygnał podnieść do takiego poziomu aby po wyprostowaniu i zachowaniu tylko górnych połówek sinusoidy przepuścić przez przerzutnik Schmitta po czym wprowadzić sygnał wyzwalający przerwanie które z chwilą np. zbocza narastającego mierzy jego długość (czas trwania od narastającego zbocza do opadającego). Czynność tą w celu uwiarygodnienia że mamy doczynienia z użytecznym sygnałem powtórzyć np. 10 razy i jeśli wynik jest taki sam (ewentualnie odrzucić inne wyniki) można założyć że był sygnał taki na jaki czekasz?
Z czasem program będziesz rozbudowywał (dopieszczał) o elementy które wyjdą w tzw. "praniu".
Od czegoś trzeba zacząć. Powodzenia.

Są dwie postawowe metody mierzenia częstotliwości - pomiar czasu trwania okresu sygnału i pomiar liczby impulsów w zadanym przedziale czasu. Proponujesz tą pierwszą metodę - z tym, że wtedy należy zadbać o powtarzalność przetworzenia sygnału anologowego na postać cyfrową. Komparator musi wykrywał przejście z zera na jedynkę i odwrotnie dokładnie w tej samej fazie sygnału - co wymaga stałej aplitudy sygnału analogowego.

Sam pomiar nawet nie wymaga używania przerwań - procki mają wejście ICP (input capture) - polega to na tym, że jest sobie licznik/timer pracujący cały czas w kółko. I gdy na wejściu ICP zmienia się sygnał aktualna wartość licznika jest kopiowana do dedykowanego rejestru sprzętowego. Potem można go odczytać programowo, odjąć poprzednią wartość i od razu dostajemy sprzętowo zmierzoną długość impulsu.