Skocz do zawartości

Generacja przebiegu sinusoidalnego ATMEGA32


macpiej

Pomocna odpowiedź

Witam wszystkich.

Po przetrzepaniu chyba całego Internetu, gdzie nie znalazłem satysfakcjonującej odpowiedzi na moje pytanie, chciałbym zasięgnąć u Was rady.

W jaki najprostszy sposób możliwe jest wygenerowanie przy pomocy Atmegi32 przebiegu sinusoidalnego o stałej częstotliwości 50Hz i regulowanej amplitudzie?

Z góry dziękuję Wam za wszystkie podpowiedzi.

Pozdrawiam serdecznie

Link do komentarza
Share on other sites

Mi do głowy przychodzi kilka prostych pomysłów na szybko i podzieliłbym je na dwie grupy. Pierwsza to takie w których osobno generujesz falę 50Hz a osobno zmieniasz jej amplitudę. Drugie to "combo" czyli wszystko w jednym. Generować 50Hz możesz na kilka sposobów:

1. Generujesz falę prostokątną 50Hz za pomocą timera (sprzętowo) lub machania pinem portu (programowo). Ten sygnał przepuszczasz przez analogowy filtr dolnoprzepustowy, który zostawia tylko pierwszą harmoniczną. Im lepszy filtr tym lepiej, bo wtedy przebieg jest bardziej podobny do sinusoidy, ale w większości aplikacji wystarczy kilka oporników i kondensatorów. W tym pomyśle do generacji sygnału prostokątnego wystarczy także zwykły 555.

2. Generujesz PWM o częstotliwości np. 1 lub 2kHz. To są Twoje próbki sygnału analogowego. Teraz wystarczy tylko wysyłać do timera odpowiedzialnego za PWM odpowiednie wypełnienia tak, by wartość uśredniona przez (prosty) filtr RC wyglądała jak sinusoida 50Hz. Próbki możesz odczytywać z wcześniej przygotowanej tablicy (tzw. wavetable) lub generować na bieżąco za pomocą funkcji oscylatora harmonicznego - to jeden z podstawowych algorytmów DSP.

W obu powyższych przypadkach możesz na wyjściu wstawić potencjometr sterowany cyfrowo do regulacji amplitudy.

W drugim przypadku - skoro i tak masz pełną kontrolę nad generowanym sygnałem - możesz po prostu mnożyć wychodzące próbki przez jakiś współczynnik, to też da regulację amplitudy.

I jak zwykle na początek pytanie podstawowe: do czego to jest Ci potrzebne? Bo czasem można coś zrobić zupełnie inaczej...

Link do komentarza
Share on other sites

Potrzebuję tego do badania RCD. Myśl jest taka, że wygenerowany sygnał będzie podawany na przetwornik napięcie-prąd (+ewentualnie wzmacniacz), a następnie na wyłącznik różnicowoprądowy. Muszę mieć możliwość płynnej zmiany wartości amplitudy w celu zmierzenia prądu różnicowego.

Link do komentarza
Share on other sites

No to jeszcze pytanie: czy jest to stanowisko pomiarowe np. do pracowni w szkole lub czy będą tam RCD wzorcowane lub homologowane tj. czy od wyników pomiarów coś ma zależeć? Myślę o tej sinusoidzie. W przypadku "szkolnym" to może być prawie cokolwiek - ważne, by prąd dał się jakoś sensownie mierzyć. W drugim przypadku wymagania są dużo większe.

Wydaje mi się, że metoda generacji sinusoidy 50Hz poprzez PWM odczytywany z wavetable będzie pojęciowo i algorytmicznie najłatwiejsza. Z tego co rozumiem urządzenie będzie raczej jednostkowe i powinno być stabilne a metody czysto analgowe zawsze wiążą się z jakimiś kompensacjami itp. Chyba nie musisz iść aż na takie uproszczenia. Czy mniej więcej rozumiesz jak miałoby to działać z ATmegą? To dosłownie kilka linijek kodu w C plus tablica sinusa, żeby nie liczyć go na bieżąco. Zagadką jest jeszcze zakres regulacji amplitudy (dynamika). AVR mają co najwyżej 10-bitowy PWM i to jest podstawowe ograniczenie. Można przyjąć, że mógłbyś ustawiać amplitudę np. w 250 krokach a więc taka byłaby rozdzielczość tego parametru. Czy to wystarczy? Być może trzeba będzie wprowadzić np. regulowane (choćby kilka zakresów np. 0-5, 0-50, 0-500mA) wzmocnienie stopnia końcowego wzmacniacza prądowego lub dać potencjometr cyfrowy oprócz mnożenia przez współczynnik w samym procesorze.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Jest to fragment mojego projektu inżynierskiego, urządzenie docelowo znajdzie się w laboratorium na potrzeby wykonywania ćwiczeń. Zakładając jako główną funkcję badanie RCD AC30mA, zakres regulacji w 250 krokach wydaje się być sensowny -pomiar wykonywany jest od 0,5 prądu różnicowego, czyli w naszym wypadku od 15mA do max 30mA, co daje krok 60uA

Link do komentarza
Share on other sites

Hm, a to jeszcze muszę zapytać: do czego tam procesor? Czy nie wystarczy autotransformator, szeregowy rezystor i multimetr do pomiaru prądu? Masz regulowany prąd sinusoidalny i tyle. Gdy człowiek pokręci gałką, odczyta prąd i usłyszy trzask bezpiecznika to przynajmniej coś zapamięta.

Jak bardzo to stanowisko będzie zautomatyzowane? Czy będziecie mierzyć jakieś duże liczby tych RCD i wyciągać statystyki? Bo jeśli nie, a praca ma polegać na jednorazowym pomiarze, to całe to procesorowe zadawanie prądu jest trochę kwiatkiem do kożucha, nie sądzisz?

W każdym razie czy wiesz już jak to możesz zrobić? Czy jeszcze potrzebujesz jakichś wskazówek?

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Stanowisko ma być zautomatyzowane, także z możliwością pomiaru charakterystyk i zapisu danych w celu późniejszej jej wizualizacji. Przy pomiarze charakterystyk dochodzi także pomiar czasu, ale z tym raczej nie powinienem mieć problemów.

W każdym razie mniej więcej już wiem jak to ruszyć, jeśli będę mieć jeszcze jakieś pytania to będę pisać. No i oczywiście pochwalę się gotowym projektem 😉

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.