Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Miernik z dobowym wykresem zużycia prądu + zapis na kartę SD.

Andsa 07 Mar 2017 21:12 8463 29
  • Miernik z dobowym wykresem zużycia prądu + zapis na kartę SD.
    Użytkownicy forum namówili mnie bym podzielił się tym projektem.

    Miernik ten powstał z potrzeby chwili. Wcześniej zbudowałem sterownik akwarium, a parę miesięcy temu dodałem oświetlenie LED na modułach 10W. Już wcześniej zastanawiałem się jaki pobór prądu ma całość i ile mnie to kosztuje. Dodatkowo bardzo ciekawiło mnie jaką różnicę w poborze prądu ma 50% wypełnienie PWM w stosunku do pełnej mocy.

    Zamówiłem dwa układy ACS712 30A. Początkowo w ramach testu uruchomiłem układ na Arduino Uno. Dodałem do tego wyświetlacz 4x20 znaków podłączony po magistrali I2C i zegar czasu rzeczywistego DS3231. Wszystko podłączyłem na płytce prototypowej. ACS712 wrzuciłem do obudowy sterownika zegarowego (15zł CAST..). Pokopałem trochę w sieci by znaleźć odpowiedni kod. Zmodyfikowałem go do własnych potrzeb (kod1.txt). Na wyświetlaczu mamy pomiar prądu, pomiar poboru w Wat. W trzeciej linii po prawej ilość KHh od ostatniego resetu, a pod bieżącą godziną czas pracy miernika w godzinach.
    Wspomagając się multimetrem stwierdziłem że dokładność jest wystarczająca. Podczas prób okazało się że pojawia się jakieś dziwne jałowe obciążenie. Poprawiłem połączenia, poruszałem przewodami i znikło. Później znów się pojawiło i oscylowało w zakresie 30-80W bez żadnego obciążenia. Zwaliłem wszystko na prototyp i przystąpiłem do budowy ciut solidniejszego urządzenia. Od jakiegoś czasu w szafce kurzyło się Arduino Mega i wyświetlacz 3,2 cala. Stwierdziłem że idealnie nadaje się do tego projektu, Kilka godzin zajęło mi przygotowanie grafiki. Poprzedni kod przeniosłem do nowego i dodałem obsługę kart SD.
    Na karcie zapisuje się w każdej linii zużycie prądu w każdej godzinie (kod2.txt)
    Pliki mają rozszerzenie txt ponieważ portal nie przyjmuje rozszerzenia ino.
    Gdy byłem zadowolony z działania miernika umieściłem go w obudowie po sklepowym opakowaniu dysku twardego. Do zamaskowania plątaniny kabli posłużył kawałek okładki z teczki biurowej. Układ zasilam z tego samego zasilacza co sterownik akwarium i oświetlenia (zasilacz komputerowy 400W).
    Przez 2 tygodnie układ działał poprawnie, lecz teraz znów pojawiły się jakieś śmieci i wskazuje zużycie większe o 30W.
    Projekt jest nadal tymczasowy, ale zarazem rozwojowy. Planuje sterownik akwarium przenieść na Megę, tak by w pliku poza godzinowym zużyciem energii była temperatura w akwariach, oraz temperatura pomieszczenia.

    Poniżej kilka zdjęć. Przepraszam za ich jakość, ale chyba za duża jaskrawość wyświetlacza jest by aparat poprawnie ją ujął. No i sorka za kota, ale to jedyne zdjęcie prototypu oraz sterownika akwarium.




    Miernik z dobowym wykresem zużycia prądu + zapis na kartę SD. Miernik z dobowym wykresem zużycia prądu + zapis na kartę SD. Miernik z dobowym wykresem zużycia prądu + zapis na kartę SD. Miernik z dobowym wykresem zużycia prądu + zapis na kartę SD. Miernik z dobowym wykresem zużycia prądu + zapis na kartę SD. Miernik z dobowym wykresem zużycia prądu + zapis na kartę SD.


    Fajne!
  • #2 08 Mar 2017 07:03
    Duch__
    Poziom 31  

    Nie prościej było wysyłać dane przez internet i wykorzystać Thingspeak?

    Ja w moim mierniku energii elektrycznej mierzę ilość mignięć diody LED na WATOMIERZU i dane przesyłam do Thingspeak co minutę.

    Miernik z dobowym wykresem zużycia prądu + zapis na kartę SD.

    Miernik z dobowym wykresem zużycia prądu + zapis na kartę SD.

  • #3 08 Mar 2017 07:50
    Andsa
    Poziom 9  

    Duch__ napisał:
    Nie prościej było wysyłać dane przez internet i wykorzystać Thingspeak?

    Ja w moim mierniku energii elektrycznej mierzę ilość mignięć diody LED na WATOMIERZU i dane przesyłam do Thingspeak co minutę.

    Miernik z dobowym wykresem zużycia prądu + zapis na kartę SD.

    Miernik z dobowym wykresem zużycia prądu + zapis na kartę SD.


    Widziałem Twój temat. Nie potrzebuje wiedzieć ile zużywa moje mieszkanie, chciałem wiedzieć ile zużywa prądu akwarium z rozbiciem na każdą godzinę. W moim przypadku bawienie się w ESP i robienie wykresów w internecie było całkiem niepotrzebne. Uzyskałem to moim miernikiem, przy okazji dowiedziałem się że jedna z grzałek pobiera o 100W więcej niż wynika ze specyfikacji.

  • #4 08 Mar 2017 08:33
    zgierzman
    Poziom 16  

    Moim zdaniem taki trochę gadżet, który coś pokazuje, ale nie wiadomo ile ma to wspólnego z rzeczywistością.
    Mierzysz prąd w losowych momentach i szukasz wartości maksymalnej, więc z pomiarem wartości skutecznej nie ma to nic wspólnego. Nie kalibrujesz też pomiarów prądu, a one przecież mocno zależą do samego ACS712, jego zasilania, przetwornika ADC w kontrolerze...
    Zakładasz stałe napięcie i w ogóle go nie mierzysz. A napięcie w gniazdkach może się zmieniać całkiem mocno...
    Nie uwzględniasz przesunięcia fazowego prądu i napięcia, więc pomiar mocy czynnej nie jest w ogóle możliwy (nawet gdybyś mierzył napięcie a nie zapisał je na stałe w kodzie).

    Nie dziw się więc, że ci pomiary czasami wychodzą dziwne. Niestety, będą się rozjeżdżały, bo metoda pomiaru nie jest idealna. Nie jest nawet dobra...
    Parę dni temu ktoś opisał licznik energii na układzie ADE7759. Cena kostki jest porównywalna z ACS712, więc w kolejnej wersji rozważ metodę pomiaru która nie jest wróżeniem z fusów.

    Podoba mi się natomiast obudowa. Elementy z odzysku, dla niektórych śmieci, a można je wykorzystać i zrobić coś estetycznego.

    Chętnie zobaczyłbym schemat.

  • #5 08 Mar 2017 09:06
    michcior
    Poziom 29  

    zgierzman napisał:
    Nie uwzględniasz przesunięcia fazowego prądu i napięcia, więc pomiar mocy czynnej nie jest w ogóle możliwy (nawet gdybyś mierzył napięcie a nie zapisał je na stałe w kodzie).

    Bardzo słuszna uwaga. Nie ważne, że taki podlicznik można kupić za grosze, cenimy to że ktoś wykonuje urządzenie w 100% od zera. Jednak, ważne jest aby merytorycznie temat był dobrze przemyślany. A tu, dosłownie ręce opadają. Pomiar mocy elektrycznej nie jest skomplikowany. Wystarczy wymnażać przebieg prądu z napięciem bez przesunięcia i z przesunięciem 90stopni. Próbkowanie 4kHz, przetwornik 12bitów, super dokładności nie będzie ale to już ma
    jakiś sens .

  • #6 08 Mar 2017 09:15
    seba_x
    Poziom 31  

    Duch__ napisał:
    Nie prościej było wysyłać dane przez internet i wykorzystać Thingspeak?

    Ja w moim mierniku energii elektrycznej mierzę ilość mignięć diody LED na WATOMIERZU i dane przesyłam do Thingspeak co minutę.

    Miernik z dobowym wykresem zużycia prądu + zapis na kartę SD.

    Miernik z dobowym wykresem zużycia prądu + zapis na kartę SD.


    Możesz podać linka do tego projektu ?

  • #7 08 Mar 2017 09:31
    Andsa
    Poziom 9  

    zgierzman napisał:
    Moim zdaniem taki trochę gadżet, który coś pokazuje, ale nie wiadomo ile ma to wspólnego z rzeczywistością.
    Mierzysz prąd w losowych momentach i szukasz wartości maksymalnej, więc z pomiarem wartości skutecznej nie ma to nic wspólnego. Nie kalibrujesz też pomiarów prądu, a one przecież mocno zależą do samego ACS712, jego zasilania, przetwornika ADC w kontrolerze...
    Zakładasz stałe napięcie i w ogóle go nie mierzysz. A napięcie w gniazdkach może się zmieniać całkiem mocno...
    Nie uwzględniasz przesunięcia fazowego prądu i napięcia, więc pomiar mocy czynnej nie jest w ogóle możliwy (nawet gdybyś mierzył napięcie a nie zapisał je na stałe w kodzie).

    Nie dziw się więc, że ci pomiary czasami wychodzą dziwne. Niestety, będą się rozjeżdżały, bo metoda pomiaru nie jest idealna. Nie jest nawet dobra...
    Parę dni temu ktoś opisał licznik energii na układzie ADE7759. Cena kostki jest porównywalna z ACS712, więc w kolejnej wersji rozważ metodę pomiaru która nie jest wróżeniem z fusów.

    Podoba mi się natomiast obudowa. Elementy z odzysku, dla niektórych śmieci, a można je wykorzystać i zrobić coś estetycznego.

    Chętnie zobaczyłbym schemat.


    Masz 100% racji. Długo szukałem rozwiązania. W listopadzie znalazłem kilka metod i ta dawała mi najbardziej zbliżony pobór prądu w A w porównaniu do multimetru. Na stronie Odnośnik znajduje się dość długi wątek dotyczący pomiaru zużycia z wykorzystaniem ACS712. Niestety mój angielski jest stanowczo za słaby by zrozumieć tamte wywody.
    Nie będę kupować kostki ADE7759, więc trzeba poprawić rozwiązanie na ACS. Jestem otwarty na wszelkie sugestie. Co do mojego kodu - nie mierzę prądu w losowych momentach. Mierzę go cały czas, szukam wartości maksymalnej. Co sekundę wywoływany jest alarm, tam wszystko przeliczam, a potem wyświetlam.
    Co do schematu. Wyświetlacz wpięty jest bezpośrednio w Arduino Mega, zegar RTC podpięty jest do linii SDA, SCL. Vo z ACS wpięty jest w pin A1 (chyba). VRef nie podpięte. Zasilanie 5V wchodzi bezpośrednio na płytkę. Reszta połączeń to zwykły pająk.
    Dodano po 8 [minuty]:
    michcior napisał:

    Pomiar mocy elektrycznej nie jest skomplikowany. Wystarczy wymnażać przebieg prądu z napięciem bez przesunięcia i z przesunięciem 90stopni. Próbkowanie 4kHz, przetwornik 12bitów, super dokładności nie będzie ale to już ma jakiś sens .


    Pięknie napisane. Może byś poparł to jakimś przykładem?

  • #8 08 Mar 2017 09:52
    zgierzman
    Poziom 16  

    Policzyłem tak na szybko:

    Zakładasz napięcie w sieci 233V, błędy masz ok 30W (to znaczy Tobie się tak wydaje, bo zapewne są znacznie większe)

    30/233 - 0,128

    czyli zmierzony prąd 128 mA pokaże ci te 30W.
    Stosujesz czujnik na 30A, więc te 128mA to jest jakieś 0,5% jego zakresu.
    Według noty katalogowej dokładność ACS712 to 1,5%, więc można się spodziewać błędów ok +/- 100W już na starcie.

    Wyjście ACS712 dla zakresu 30A to 66 mV/A, co dla tych 128 mA daje jakieś 8,5 mV. Twój przetwornik ADC mierzy na tyle dokładnie? Nie wydaje mi się...
    Przy 10 bitach i 5V napięcia odniesienia masz rozdzielczość ok 5 mV. Wystarczy że zasilanie trochę szumi i najmłodszy bit "przeskakuje" i już masz błąd trudny do zaakceptowania.

    Andsa napisał:
    Nie będę kupować kostki ADE7759, więc trzeba poprawić rozwiązanie na ACS.
    Na początek zmień ACS na taki z zakresem 5A.
    Mocno skup się na filtrowaniu zasilania dla ATmegi. I na precyzyjnym napięciu odniesienia.
    Inaczej mierz prąd (nie na zasadzie wyszukiwania wartości szczytowych, bo tu każda szpilka rozwala całą koncepcję).
    Mierz napięcie.
    Licz tak jak podpowiada michcior.
    Innej drogi nie ma.

    A tak na marginesie: przy tej metodzie pomiarowej i zakresach możesz uzyskać wyniki ok 7 kW. (233*30). Zakładałeś, że akwarium zżera więcej prądu niż piekarnik elektryczny, pralka i czajnik bezprzewodowy razem wzięte?

  • #9 08 Mar 2017 09:54
    michcior
    Poziom 29  

    Andsa napisał:
    Pięknie napisane. Może byś poparł to jakimś przykładem?

    Zbyt proste na przykład. Próbkujesz prąd i napięcie. Mnożysz próbkę prądu przez próbkę napięcia i wynik uśredniasz za okres(y) lub filtrujesz cyfrowo filtrem dolnoprzepustowym. Jeśli chcesz moc bierną, to tak samo tylko z przesunięciem 90stopni. Ot i cała filozofia. Jeśli fazy są zgodne, wymnożenie da przebieg sinusoidalny w 100% powyżej zera czyli średnia wartość jest dodatnia. Jak przebieg jest przesunięty o 90stopni, wymnożenie daje sinus o średniej 0. Jak prąd jest zero to wymnożenie nie daje nic. Co więcej, do pomiaru energii wystarczy te wyniki mnożenia po prostu sumować, tyle że trzeba mieć sporo bitów w sumatorze żeby się wyniki mieściły.

  • #10 08 Mar 2017 10:32
    Andsa
    Poziom 9  

    zgierzman napisał:
    Policzyłem tak na szybko:

    Zakładasz napięcie w sieci 233V, błędy masz ok 30W (to znaczy Tobie się tak wydaje, bo zapewne są znacznie większe)

    30/233 - 0,128

    czyli zmierzony prąd 128 mA pokaże ci te 30W.
    Stosujesz czujnik na 30A, więc te 128mA to jest jakieś 0,5% jego zakresu.
    Według noty katalogowej dokładność ACS712 to 1,5%, więc można się spodziewać błędów ok +/- 100W już na starcie.

    Wyjście ACS712 dla zakresu 30A to 66 mV/A, co dla tych 128 mA daje jakieś 8,5 mV. Twój przetwornik ADC mierzy na tyle dokładnie? Nie wydaje mi się...
    Przy 10 bitach i 5V napięcia odniesienia masz rozdzielczość ok 5 mV. Wystarczy że zasilanie trochę szumi i najmłodszy bit "przeskakuje" i już masz błąd trudny do zaakceptowania.
    Na początek zmień ACS na taki z zakresem 5A.
    Mocno skup się na filtrowaniu zasilania dla ATmegi. I na precyzyjnym napięciu odniesienia.
    Inaczej mierz prąd (nie na zasadzie wyszukiwania wartości szczytowych, bo tu każda szpilka rozwala całą koncepcję).
    Mierz napięcie.
    Licz tak jak podpowiada michcior.
    Innej drogi nie ma.

    A tak na marginesie: przy tej metodzie pomiarowej i zakresach możesz uzyskać wyniki ok 7 kW. (233*30). Zakładałeś, że akwarium zżera więcej prądu niż piekarnik elektryczny, pralka i czajnik bezprzewodowy razem wzięte?


    Moduł ACS712 30A kupiony był po to by mierzyć napięcie stałe 12V (po drugiej stronie zasilacza). Podczas budowy wpadłem na pomysł pomiaru całości (widzę że to był chyba głupi pomysł). Porównałem błędy mojego ustrojstwa z takim kupionym. Na początku pomiary były bardzo zbliżone, ale jak wcześniej wspominałem czasem pojawiało się tam 30W bez żadnego obciążenia. Ostatnio jak wspomniałeś pojawił się błąd 100W, ale po resecie modułu i rozładowaniu pinu błąd wynosi +30W.

    Dodano po 5 [minuty]:

    Początkowo chciałem użyć tego kodu, ale coś mi nie działało poprawnie:
    Cytat:
    /*
    Measuring AC Current Using ACS712
    */
    const int sensorIn = A0;
    int mVperAmp = 185; // use 100 for 20A Module and 66 for 30A Module


    double Voltage = 0;
    double VRMS = 0;
    double AmpsRMS = 0;



    void setup(){
    Serial.begin(9600);
    }

    void loop(){


    Voltage = getVPP();
    VRMS = (Voltage/2.0) *0.707;
    AmpsRMS = (VRMS * 1000)/mVperAmp;
    Serial.print(AmpsRMS);
    Serial.println(" Amps RMS");

    }

    float getVPP()
    {
    float result;

    int readValue; //value read from the sensor
    int maxValue = 0; // store max value here
    int minValue = 1024; // store min value here

    uint32_t start_time = millis();
    while((millis()-start_time) < 1000) //sample for 1 Sec
    {
    readValue = analogRead(sensorIn);
    // see if you have a new maxValue
    if (readValue > maxValue)
    {
    /*record the maximum sensor value*/
    maxValue = readValue;
    }
    if (readValue < minValue)
    {
    /*record the maximum sensor value*/
    minValue = readValue;
    }
    }

    // Subtract min from max
    result = ((maxValue - minValue) * 5.0)/1024.0;

    return result;
    }

  • #11 09 Mar 2017 13:53
    max-bit
    Poziom 21  

    Bez dobrego przetwornika pomiarowego projekt jest raczej ....
    Nawet ADE7759 wymaga dobrej aplikacji ... i jest że tak powiem czuły na błędy projektowe i tez jeśli coś źle zrobimy w konstrukcji PCB będzie pokazywał większe lub mniejsze głupoty.
    Ogólnie takie przetworniki najlepiej procują jeśli zastosujemy przekładniki ... przede wszystkim uzyskujemy galwaniczną izolację układu.

  • #12 09 Mar 2017 23:34
    djkomprez
    Poziom 21  

    Tu masz 100 razy lepsze rozwiązanie od Twojego ... bez obrazy ale faktycznie
    takie pomiary nie mają żadnego sensu bo nic z nich się nie dowiedz poza losowymi wynikami...

    Link

  • #13 10 Mar 2017 08:20
    Andsa
    Poziom 9  

    Upieracie się przy innych modułach i kostkach. W przypadku użycia transformatora również trzeba będzie porządnie wyliczyć RMS. Widać nikt nie myśli poważnie o modułach ACS na tym forum, a to ciekawe bo tylko tutaj użytkownicy próbują zniechęcić do ACS712. Mój kod rzeczywiście jest beznadziejny, Pogrzebałem trochę i jestem w fazie analizowania nowego algorytmu. Zacząłem od przetwornika. Wartość pobieram dopiero gdy przetwornik skończy pracę, eliminuje to cześć śmieci. Bieżąca wartość znajduje się w zmiennej padc.

    Cytat:

    void ac_current_measurement()
    {
    float SQAVG = 0;
    uint32_t sumsqrs = 0;
    for(int i=0;i<32;i++)
    {
    while (semadc == 0) {} // czekamy aż przetwornik skończy pracę
    cli(); //na chwilę wyliczeń wyłączamy przerwania
    padc = padc - 512; // korekcja ofsetu
    int32_t k1 = padc;
    sumsqrs = sumsqrs + k1*k1;
    semadc = 0; // resetujemy zmienną do oczekiwania na kolejną wartość
    sei();
    }
    SQAVG = sumsqrs/32;
    rms = sqrt(SQAVG);
    newval = (rms * 0.0049); //rozdzielczość 49mv/licznik dla 10 bit ADC
    newval = newval/0.066; // Czułość ACS 30A - 66mv/A
    fvalue = newval; // wyliczona wartość
    }

  • #15 10 Mar 2017 11:20
    Andsa
    Poziom 9  

    Oczywiście że pewnych parametrów się nie przeskoczy. Moim celem nie było wykonanie mega precyzyjnego miernika, gdybym taki chciał to kupiłbym gotowca. Elektroda jest jedynym miejscem gdzie spotkałem się z krytyką ACS712. Na innych forach ludzie wykorzystują go do pomiaru AC.

    Zrobiłem nowy prototyp na razie bez wyświetlacza do testowania powyższego algorytmu. Jak na razie działa stabilnie. Procedurę c_current_measurement() wywołuję w pętli i sumuję jej rezultat. Co sekundę uśredniam ten wynik. Jak wróci do mnie kupny miernik porównam wyniki.

  • #16 10 Mar 2017 11:36
    michcior
    Poziom 29  

    Andsa napisał:
    gdzie spotkałem się z krytyką ACS712

    Nikt nie krytykuje układu! Nawet sama nota katalogowo jasno określa pola zastosowań, wśród których nie mia systemów pomiarowych! Ten układ po prostu nie nadaje się do takich zastosowań ze względu na dokładność.

  • #18 10 Mar 2017 20:12
    djkomprez
    Poziom 21  

    To jest dokładnie to samo co podałem Ci wyżej, ;) podpowiem że na chińskim allegro kosztuje znacznie taniej, w okolicach 12zł.

  • #19 12 Mar 2017 18:47
    R-MIK
    Poziom 38  

    Duch__ napisał:
    Nie prościej było wysyłać dane przez internet i wykorzystać Thingspeak?

    Ja w moim mierniku energii elektrycznej mierzę ilość mignięć diody LED na WATOMIERZU i dane przesyłam do Thingspeak co minutę

    A wiesz, że taki pomiar jest bardzo orientacyjny? Rozbierzności mogą sięgać 10..20%!

  • #20 13 Mar 2017 20:27
    djkomprez
    Poziom 21  

    R-MIK nie wydaje mi się , nowe liczniki posiadają standardowe wyjście impulsów kWh lub samą diodę informującą o zliczeniu 0,001kWh (standardowo 1000imp/kWh) , jeśli piszesz że tak jest to oczywiście robią nas w bambuko z rachunkami co ostatnio jest dość głośno w internecie ponieważ ponoć te urządzenia nie radzą sobie zbytnio z odbiornikami impuslowymi (zasilacze, LED etc)
    Sam tego nie sprawdzałem ale nie omieszkam sobie zbudować takowego licznika w celu sprawdzenia przynajmniej orientacyjnej różnicy (lub jej brakiem ;))

  • #21 13 Mar 2017 20:57
    R-MIK
    Poziom 38  

    djkomprez napisał:

    Sam tego nie sprawdzałem ale nie omieszkam sobie zbudować takowego licznika w celu sprawdzenia przynajmniej orientacyjnej różnicy (lub jej brakiem ;))

    Moje informacje nie sa najświeższe (z 10 lat) i dotyczą leda a nie wyjścia impulsowego. Producent licznika twierdzi (twierdził), że dioda niekoniecznie miga w dokładnie aby brać ja za informacje o zużyciu energii. Co innego wyjście impulsowe. Fakt, że teraz trzeba by te informacje zweryfikować.

  • #22 13 Mar 2017 21:01
    djkomprez
    Poziom 21  

    Tylko nie wiem czy wiesz ... ale liczniki z wyjściem impulsowym mają wyprowadzenie właśnie z tej gałęzi co dioda ;) Wiem .. bo rozebrałem z ciekawości ze dwa takie liczniki różnej marki ...

  • #23 13 Mar 2017 21:54
    R-MIK
    Poziom 38  

    djkomprez napisał:
    Tylko nie wiem czy wiesz ... ale liczniki z wyjściem impulsowym mają wyprowadzenie właśnie z tej gałęzi co dioda ;) Wiem .. bo rozebrałem z ciekawości ze dwa takie liczniki różnej marki ...

    Dlatego pisałem, że należy to zweryfikować, najlepiej z producentem.

  • #24 17 Mar 2017 20:17
    Andsa
    Poziom 9  

    Transformator(30A) jedzie już do mnie. Tak się zastanawiam nad przykładowym kodem. W moim układzie za czas odpowiada bardzo dokładny zegar. Co sekundę występuje przerwanie. Czy wystarczy mi średnia pomiarów z sekundy z użyciem biblioteki emon.lib? Czy zastosować inną metodę.

  • #25 19 Mar 2017 09:19
    zgierzman
    Poziom 16  

    Andsa napisał:
    Transformator(30A) jedzie już do mnie.


    To może być błąd. Po co taki zakres? Prawdopodobnie bezpiecznik który masz przy liczniku głównym w domu jest mniejszy...

    Problem polega na tym, że im większy zakres będzie miał Twój układ pomiarowy, tym większego błędu bezwzględnego możesz się spodziewać. Wspomniałem o tym poprzednio - rozdzielczość przetwornika ADC i tak dalej. Świadoma praca na wycinku absurdalnie wielkiego zakresu spowoduje, że pomiary nie będą dokładne. Jak ci się wydaje, po co nawet najtańsze chińskie multimetry mają przełączane zakresy? Albo po co robi się termometry medyczne, a ludzie nie wkładają pod pachę termometrów zza okna?
    Powiedzmy, że zbudujesz układ w klasie 0,5 - a to już jest przyzwoita dokładność. Przy zakresie 6900VA (w uproszczeniu, 30*230) spodziewany błąd pomiarowy to +/- 34,5VA (!)
    Gdybyś miał przekładnik o zakresie 10A, to 2300VA * 0,005 = 11,5VA
    I choć nie wiem jakie masz akwarium, to wydaje mi się, że nie przekroczysz wartości prądu 5A

    Możesz sobie pomóc przeciągając przewód w którym mierzysz prąd przez otwór przekładnika kilkukrotnie (robiąc coś na kształt cewki). W zależności od tego, ile razy przełożysz przewód, tyle razy "pomnożysz" prąd płynący przez przekładnik. Np, jeśli zrobisz pięć pętli, to już przy 6A przekładnik będzie "myślał", że płynie przez niego 30A...

  • #26 20 Mar 2017 12:37
    Andsa
    Poziom 9  

    zgierzman napisał:
    Andsa napisał:
    Transformator(30A) jedzie już do mnie.


    To może być błąd. Po co taki zakres? Prawdopodobnie bezpiecznik który masz przy liczniku głównym w domu jest mniejszy...

    Problem polega na tym, że im większy zakres będzie miał Twój układ pomiarowy, tym większego błędu bezwzględnego możesz się spodziewać. Wspomniałem o tym poprzednio - rozdzielczość przetwornika ADC i tak dalej. Świadoma praca na wycinku absurdalnie wielkiego zakresu spowoduje, że pomiary nie będą dokładne. Jak ci się wydaje, po co nawet najtańsze chińskie multimetry mają przełączane zakresy? Albo po co robi się termometry medyczne, a ludzie nie wkładają pod pachę termometrów zza okna?
    Powiedzmy, że zbudujesz układ w klasie 0,5 - a to już jest przyzwoita dokładność. Przy zakresie 6900VA (w uproszczeniu, 30*230) spodziewany błąd pomiarowy to +/- 34,5VA (!)
    Gdybyś miał przekładnik o zakresie 10A, to 2300VA * 0,005 = 11,5VA
    I choć nie wiem jakie masz akwarium, to wydaje mi się, że nie przekroczysz wartości prądu 5A

    Możesz sobie pomóc przeciągając przewód w którym mierzysz prąd przez otwór przekładnika kilkukrotnie (robiąc coś na kształt cewki). W zależności od tego, ile razy przełożysz przewód, tyle razy "pomnożysz" prąd płynący przez przekładnik. Np, jeśli zrobisz pięć pętli, to już przy 6A przekładnik będzie "myślał", że płynie przez niego 30A...


    Akurat tylko 30A znalazłem. Pomyślę o tej przekładni. Tylko czy czasem impulsy prądowe nie będą wtedy wychodzić poza zakres?

  • #29 28 Mar 2017 10:48
    Andsa
    Poziom 9  

    Wczoraj wykonałem parę testów. Biblioteka emonlib zbiera mnóstwo "szumów". Mam na myśli to że, przykład jej użycia zwraca wyniki od -11 do 12 chociaż nic nie jest podłączone. Może to być spowodowane zasilaniem z USB. W każdym razie to co pisaliście o ACS712 który nie nadaje się do tego celu, nie miałem takich problemów poza jakimś dziwnym nasyceniem które powodowało wskazanie 30W.
    Sprawdziłem odczyt bezpośrednio z pina arduino i tak jak wcześniej zauważyłem z powodu niezbyt stabilnego napięcia odczyt waha się między 510 a 511. Całkiem teraz zgłupiałem, Skąd takie różnice po wywołaniu procedury emon1.calcVI(20,2000); ?

  • #30 31 Mar 2017 19:27
    Andsa
    Poziom 9  

    Nadszedł czas by podsumować temat.

    Chciałbym podziękować wszystkim za sugestie i pomoc. A teraz wnioski.
    Po pierwsze: Arduino nie nadaje się do tego, co koledzy słusznie wcześniej zauważyli. Jest niedokładne i szumi. Może jak samemu wsadził by atmegę na płytkę, zafiltrował i dobrze zasilił to coś by z tego wyszło. W poważnych wypadkach lepiej zainwestować w przetwornik ADC dobrej jakości.
    Po drugie: Transformator prądowy razem z układem zbiera więcej zakłóceń niż ACS712. Dodatkowo włączanie/wyłączanie odbiorników zawiesza moduł. To można poprawić, ale w przypadku chwilowego projektu nie ma żadnego sensu.
    Po trzecie: Metoda pomiarowa. Koledzy mieli rację. Kod był błędny, Poprawiłem wszystko i testowałem z różnymi obciążeniami. Wykonałem ręczną kalibrację ACS712 do pracy z biblioteką emonlib.

    Efekty:
    Transformator mierzył bardzo dobrze, oczywiście musiałem odjąć szumy które były w czasie gdy nie było poboru prądu. Pomiar prądu w porównaniu do amperomierza miał poniżej 2% różnicy. ACS712 po kalibracji ma błąd w porównaniu do miernika około 3%. Można więc założyć że całość może mieć błąd pomiarowy nawet 10%. Taka dokładność wystarczy mi w zupełności. W moim projekcie nie użyję transformatora. By go użyć należałoby zaprojektować płytkę, ekranować całość itd.

    Poprawiony kod pojawi się niebawem w pierwszym temacie.

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME