logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[AVR][Bascom] - Pomiar 100 Hz, diagnostyka detektora przejścia przez 0

MES Mariusz 26 Maj 2012 13:40 2130 4
  • #1 10935619
    MES Mariusz
    Poziom 36  
    Witam.

    W swoim układzie zamierzam użyć rozwiązania diyzerocrosser. Nie mam niestety pod ręką oscyloskopu, pozostaje mi ufać, że to rozwiązanie (tudzież moje wykonanie) działa poprawnie. Chciałbym jednak zrobić wstępną diagnostykę (do testów, ale może zostanie zaimplementowane trwale w rozwiązaniu docelowym) poprzez pomiar częstotlowości 100 Hz na wyprowadzeniu INT1 (na tym wyprowadzeniu realizowana detekcja przejścia przez zero). Dla rozwiązania zerocosser mamy na wyjściu przebieg prostokątny więc powinno wystarczyć takie rozwiązanie.

    Co myślicie o takim testowaniu detektora przejść przez zero? Będzie wystarczające?

    PS. Jeśli ktoś widział w sieci gotowiec kodu do pomiaru f = 100Hz to chętnie skorzystam. Czemu nie.
  • #3 10937587
    MES Mariusz
    Poziom 36  
    Kiedyś bawiłem się takim oscyloskopem ale z tego co pamiętam nie było tam możliwości wyskalowania jednostek. Można było co najwyżej zobaczyć czy sygnał jest i jaki ma kształt. Do pomiarów wartości się to nie nadawało.
  • Pomocny post
    #4 10937629
    mickpr
    Poziom 39  
    Wykorzystaj timery do pomiaru czasu, ale na początku zmierz powiedzmy 6000 próbek (co powinno wynieść łącznie 1 minutę).
    Częstotliwość sieci zasilającej jest stała (moim zdaniem), ale czy nadaje się na wzorzec?
    Niech wypowiedzą się mądrzejsi.

    Poniżej parę linków:
    http://forum.elportal.pl/viewtopic.php?t=10481
    https://www.elektroda.pl/rtvforum/topic1414223.html
  • #5 10943912
    MES Mariusz
    Poziom 36  
    W EDW z sierpnia 2000 prostego pomiaru częstotliwości dokonywano na wejściach T0 / T1 (timery / liczniki). Jako, że na moim PCB detekcja przejścia przez zero realizowana jest na INT1 (a nie na wejściach counterów), pomyślałem, że zamiast counter'a wykorzystam po prostu przerwanie na INT1, po wystąpieniu którego w obsłudze przerwania zmienna zostanie zinkrementowana o 1. Wartość tej zmiennej po upłynięciu 1s to częstotliwość w Hz. Do odliczania jednosekundowych odcinków czasu wykorzysta się jakiś wolny timer. Powinno zadziałać.

    Pozostaje konfiguracja przerwania wg tabeli (reakcja na zbocze opadające, rosnące, zmianę, czy stan niski):

    [AVR][Bascom] - Pomiar 100 Hz, diagnostyka detektora przejścia przez 0

    Tutaj wypełnienie na pewno nie jest 50% ;-) Ale to nie powinno mieć znaczenia, i low level powinien spisać się dobrze.

    Brak częstotliwości lub spore odchyłki od 100Hz będą świadczyły o awarii obwodu detekcji przejścia przez zero (i w związku z tym, dla bezpieczeństwa, np. sterowanie fazowe nie będzie w takich warunkach realizowane, zamiast tego zgłoszona zostanie awaria).

    --- edit ---

    A jednak ma być rising. Dla low level inkrementuje ciągle gdy na INT1 stan niski. W sumie logiczne. Gdyby ktoś kiedyś szukał gotowca wklejam swój:

    Dla ATMEGA16, 8MHz kod:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Dla układu zerocrosserdiy i napięcia sieci 230V zwraca częstotliwości:

    [AVR][Bascom] - Pomiar 100 Hz, diagnostyka detektora przejścia przez 0

    Więc mniej więcej wszystko zgodnie z oczekiwaniami. Na INT1 jest mniej więcej 100Hz. Można rozpocząć próby z pisaniem softu do sterowania fazowego.
REKLAMA