22-07-2018, 12:50
(Ten post był ostatnio modyfikowany: 23-07-2018, 14:24 przez Robson Kerman.)
(21-07-2018, 22:54)akudom napisał(a): 1. Czy regulacja częstotliwości odbywa się tylko poprzez zmianę wartości IRC1?
Nie tylko. Jest jeszcze preskaler.
(21-07-2018, 22:54)akudom napisał(a): 2. Nie do końca rozumiem w jaki sposób regulować wypełnieniem. Standardowo zmieniałem je w zakresie 0-255 w funkcji AnalogWrite, jeśli dobrze rozumiem to teraz zmiana powinna odbywać się podobnie, tyle ze w zakresie 0-400 (pomijając funkcje void PWM).
Tą funkcję, to sobie napisałem, aby ułatwić ustawianie wypełnienia na dwóch kanałach jednocześnie. Skoro przesunięcie ma być o 180°, to po co kombinować?
Funkcja analogWrite jest tak napisana, że jej licznik przepełnia się przy 255, więc wypełnienie zmieniałeś w zakresie 0-255.
Nie wiem w czym masz problem z zakresem 0-400, albo 0-100???
NIe musisz kożystać z tej funkcji, możesz pisać (dla wypełnienia powiedzmy 25%):
Kod:
OCR1A = 100;
OCR1B = 300;
(21-07-2018, 22:54)akudom napisał(a): Zastanawia mnie fakt, że w okolicach wypełnienia 200 wartość napięcia jest prawdopodobnie największa, natomiast w miarę zmieniania wypełnienia bliżej wartości skrajnych to napięcie jest niższe.
Wyjątkiem który zauważyłem jest domyślna wartość graniczna czyli 255 przy której sygnał przyjmuje wartość w okolicach zera.
Prosiłbym o odpowiedź, czy dobrze zrozumiałem regulację, albo informację gdzie popełniam błąd.
Wartość napięcia jest stała i wynosi 5V.
Twój sposób pomiaru jest taki, że wynikiem jest wartość skuteczna napięcia (Vrms).
Wartość skuteczna jest równa wartości maksymalnej pomnożonej przez pierwiastek wypełnienia Vrms = V*sqrt(D/100%)
U mnie jest tak:
Masz po prawo wyświetlane wartości napięć. Zauważ jak zmienia się Vrms w zależności od wypełnienia.
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.