ATNEL tech-forum https://forum.atnel.pl/ |
|
Pomiar mocy przy regulacji fazowej - ASC712 https://forum.atnel.pl/topic20938.html |
Strona 1 z 1 |
Autor: | Pixelxx [ 2 lip 2018, o 21:17 ] |
Tytuł: | Pomiar mocy przy regulacji fazowej - ASC712 |
Witam. Chciałbym mierzyć moc np: żarówki za pomocą czujnika z efektem Halla ASC712. Szukałem trochę po internecie i znalazłem przykładowe kody programów pod arduino i chciałbym to przełożyć na język C. Z prądem stałym nie było by problemu, ale z racji, że mam tu prąd przemienny to użyta została funkcja millis() i czy ktoś mógłbym powiedzieć jak zrealizować taką funkcję w języku C i przedstawić kod takiej funkcji? Kod pod arduino jaki znalazłem na stronie: http://www.theorycircuit.com/hall-effec ... r-circuit/ |
Autor: | jez2000 [ 2 lip 2018, o 22:16 ] |
Tytuł: | Re: Pomiar mocy przy regulacji fazowej - ASC712 |
możesz zrobić inaczej np tak dla m32 ma 8 mhz język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. a w przerwaniu mozesz zmniejszac zmienna język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. a w pętli głównej napełniać zmienną milisekundy = 1000 a następnie czekać sekundę |
Autor: | Nefarious19 [ 3 lip 2018, o 07:00 ] |
Tytuł: | Re: Pomiar mocy przy regulacji fazowej - ASC712 |
Z tym że jak masz regulacje fazową to Ci pomiar amplitudy nic nie da. Żeby wyliczyć rzeczywistą moc skuteczną musisz całkować iloczyn napięcia i prądu przez jakiś okres czasu a następnie tę wartść przez ów okres czasu podzielić. całkowanie numeryczne w Twoim przypadku to będzie suma iloczynów kolejnych próbek sygnału napięcia, prądu i czasu odstępu pomiędzy próbkami podzielona finalnie przez okres zbierania próbek. |
Autor: | Pixelxx [ 3 lip 2018, o 17:36 ] |
Tytuł: | Re: Pomiar mocy przy regulacji fazowej - ASC712 |
No już trochę lepiej to rozumiem. Mam pytanie odnoście warunku język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Czyli jeżeli warunek jest prawdziwy czyli zmienna milisekundy==1 to zmniejszaj milisekundy--? Nie do końca bym chciał dawać jakieś dodatkowe while() w pętli głównej o ile dobrze rozumiem czyli wyglądało by to tak język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Chciałbym uzyskać taki efekt mieć funkcje jak w arduino millis() z tego co wiem to ona zlicza do 50dni i później się zeruje. https://www.arduino.cc/reference/en/lan ... me/millis/ Jeżeli chodzi o pomiar mocy to bym musiał wykorzystać jakaś metodę całkowania numerycznego np: prostokątów? |
Autor: | jez2000 [ 3 lip 2018, o 21:06 ] |
Tytuł: | Re: Pomiar mocy przy regulacji fazowej - ASC712 |
Tutaj jest opisana funkcja millis(), możesz z tego skorzystać https://ucexperiment.wordpress.com/2012/03/16/examination-of-the-arduino-millis-function/ |
Autor: | Nefarious19 [ 4 lip 2018, o 07:58 ] |
Tytuł: | Re: Pomiar mocy przy regulacji fazowej - ASC712 |
Pixelxx napisał(a): Jeżeli chodzi o pomiar mocy to bym musiał wykorzystać jakaś metodę całkowania numerycznego np: prostokątów? 1. Musisz mieć pomiar napięcia i prądu. Ewentualnie chociaż detektor przejścia przez zero żeby wiedzieć w którym punkcie sinusa jesteś. Zakładamy że amplituda napięcia sieciowego to 230V * sqrt(2) 2. Robisz próbki prądu dajmy na to co 500us a więc Twoje dt = 0.0005 będziesz miał 40 takich próbek na 1 okres sinusoidy. 3. Skoro wiesz w jakim momencie sinusa jesteś, bo masz synchronizacje, odczytujesz z tablicy wartość chwilową napięcia. Tak, nmusisz wcześniej stablicować sobie sinusa żeby nie liczyć go w locie bo to za wolne na AVR. nie będzie to dokładna wartość ale niestety nie masz pomiaru napięcia. Chyba że takowy dołożysz, wtedy jest bajeczka. 4. co te 500us mnożysz: u * i * dt i dodajesz do zmienej moc która pomieści takie wartości. Powiedzmy coś takiego: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. 5. jak zrobisz to 40 razy, dzielisz: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. 6. Nie używaj zmiennych zmiennoprzcinkowych. |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |