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

Pomiar prądu AC 230V z układem ACS712-05 i Bascom: Dokładność 0.1A, AC vs DC

dam23 02 Sty 2023 19:37 738 9
  • #1 20364241
    dam23
    Poziom 10  
    Witam
    Panowie ma ktoś może kawałek programu w Bascomie do pomiaru prądu AC 230v. Potrzebuje mierzyć prąd z dokładnością 0.1A.Na pradzie DC wszystko działa ale Niewiem jak programowo ogarnąć prąd AC.
  • #2 20364573
    tmf
    VIP Zasłużony dla elektroda
    Na wyjściu ACS (swoją drogą, to gdzie go teraz można kupić z dostawą nie za rok?) masz po prostu napięcie proporcjonalne do płynącego po stronie pomiarowej prądu. Wystarczy to podłączyć pod ADC i to tyle.
  • #3 20364838
    dam23
    Poziom 10  
    W tme sa tylko 20A.Ja narazie bawię się z modulem z allegro! A puzniej porostu przelatuje go do orginalnej PCB .chyba najtaniej i najszybciej wyjdzie.Co do tematu gdy podłączyłem prąd stały miernik pokazywał napiecie proporcjonalne do prądu czyli 185mV/A
    Ale przy pradzie AC podłączyłem żarówkę 450w i nic na miernik się nie działo a płynęła ok 1.8A .zastanawiam się czy nie wymienić kondensatora FILTER na 100nF (noga nr.6) .
  • #4 20364903
    tmf
    VIP Zasłużony dla elektroda
    dam23 napisał:
    e przy pradzie AC podłączyłem żarówkę 450w i nic na miernik się nie działo a płynęła ok 1.8A .zastanawiam się czy nie wymienić kondensatora FILTER na 100nF (noga nr.6) .

    Jeśli masz AC to na wyjściu też masz AC - prąd zmienia się w czasie! A więc potrzebujesz miernik z trueRMS, jeśli to podłączysz pod ADC to będzie ok, tylko musisz wykonać szereg pomiarów i je całkować, ew. brać wartość maksymalną, w zależności co cie interesuje. Można też na wejściu ADC dać filtr, ale przy 50Hz, żeby on miał dobre parametry to będzie kłopot. No i przy okazji odpowiedź się znacznie pogorszy, a więc szybkich zmian prądu nie zmierzysz. Dlatego lepiej IMHO to rozwiązać programowo, a na wejściu dać tylko jakiś filtr, który wytnie zakłócenia.
  • #5 20364916
    zdziwiony
    Poziom 27  
    Na wyjściu ACS712 przy przy zerowym prądzie masz połowę napięcia zasilania ACS712. Przy Twoim układzie występuje sinusoida nałożona na to napięcie. Miernik nawet z true RMS pokaże właśnie tylko tę połowę napięcia i przy przepływie prądu przemiennego nie zmieni wskazań.
  • #6 20364936
    dam23
    Poziom 10  
    Tak mam połowę zasilania i nic sie nie zmienia gdy AC płynie.tmf masz może kawałek softu jak obsłużyć AC przez ACSa?

    Dodano po 6 [minuty]:

    Zrobiłem też taki myk że na wejście pomiarowe podłączyłem mostek prostowniczy (pin1 i 2 do - a pin3 i 4 do +) i prąd AC przepuscilem przez mostek No i mierzy dobrze.Tylko chciałbym się dowiedzieć jak to fachowo programowo zrobić.😀
  • #7 20365043
    bart-projects
    Poziom 29  
    Mam takie urządzenie ktore mierzy szczyty sinusoid przesuniętych w fazie z trzech przekładników prądowych. Jako, że jest to też Modbus Slave z baudrate 250kbps to nie chciałem robić ADC na przerwaniu bo te już mają co robić z obsługą komunikacji.

    Tak więc ADC jest obsługiwane przez pooling flagi ADC. Zamieszczam tylko kawałek kodu. W tym urządzeniu wykorzystuję pięć kanałów ADC i muszę je MUX`ować oraz pominąć jeden odczyt po zmianie kanału więc jest to bardziej rozbudowane.

    Niemniej wykrycie szczytu jest rozwiazane następująco. Mam tablicę trzech Wordów i wartości w nich kolejno przesuwam po czym najnowszy odczyt zapisuję do ostatniego z nich. Potem sprawdzam czy trend jest opadający. Czyli jeśli po kolei trzy odczyty, jeden po drugim, są coraz niższe to.... najwyższy jest ten najstarszy. Dalsze badanie opadającego zbocza jest zablokowane aż do momentu kiedy odczyty zaczną znów rosnąć.

    Kod: VB.net
    Zaloguj się, aby zobaczyć kod
  • #8 20373377
    dam23
    Poziom 10  
    Witam
    Staram się zrozumieć ten kod i widzę że zaczerpnięte jest to z języka C . I czy to dobrze rozumie że wartosc pomiaru będzie zapisany w rejestr(43)? Co przepisywanie jest z tablicy licz_skuteczne.
  • #9 20373395
    bart-projects
    Poziom 29  
    Nie ma tu nic z C. Napisałem to kiedyś "z palca" :D
    Ciebie najbardziej powinno zainteresować "Adcmax3 = Adcr3(3)" bo to jest przepisanie aktualnie najwyższej wartości.

    Rejestr(43) i to obok to funkcja która liczy wartość skuteczną napięcia. Może niepotrzebnie tam zostawiłem bo to jest z urządzenia które jest Modbus Slave`em.

    Ten wpis !SBI ADCSRA , 6 to dosłownie "Set ADCSRA.6" w Bascom. Został tam bo kiedyś myślałem że jak coś napiszę w ASM to będzie optymalniej, ale Bascom generuje dokładnie taki sam kod.

    Nie używam tutaj funkcji Getadc() bo ona jest napisana tak by działała po zmianie kanału czyli mierzy dwa razy to samo i pierwszy odczyt odrzuca. Jeśli nie zmienia się kanałów to wystarczy odpalic konwersję i albo poczekać albo wrócić po nią za chwilę.
  • #10 20373446
    dam23
    Poziom 10  
    Ok dzięki.Bardzo mało programie uC. Na codzien programuje PLC a to troszeczke łatwiej.
    Ogólnie muszę uzyc 2 kanałów jeden będzie mierzył rezystancje pewnego obwodu a drugi AC z ACS712.Najlepiej będzie jak wygram kod do uC i go przetestuję ale narazie mam mały brak czasu i może wezmę się za to pod koniec miesiąca. Pozdrawiam
REKLAMA