ACS712 Jak dokładnie zmierzyć prąd

Masz problem z Arduino? Tutaj możesz szukać pomocy.
hertzh1
Majsterkowicz
Posty: 62
Rejestracja: 29 sty 2014, 12:23

ACS712 Jak dokładnie zmierzyć prąd

Post autor: hertzh1 » 25 kwie 2015, 14:57

Witam

Chcę wykonać do ładowarki USB pomiar wykorzystywanego przez urządzenie prądu. Chcę ten układ zastosować do ładowarki, która zakończy ładowanie, kiedy urządzenie będzie w pełni naładowane, w celu mniejszego zużycia akumulatora (ma to zastosowanie głównie w urządzeniach rzadziej używanych). Problem polega na tym że sam mikrokontroler ma być zasilany z tej samej ładowarki co ładowane urządzenie. Zbudowałem już układ (na płytce stykowej) tyle że chwilowe wskazania prądu mocno skaczą (np amperomierz miernik pokazuje 310mA a mikrokontroler między 250-340mA). Rozumiem że ładowarka jest impulsowa, ale takie skoki nie pozwalają dokładnie wyznaczyć momentu kiedy prąd jest na tyle mały, że już nie doładowuje akumulatora, a jedynie podtrzymuje.
Do tej pory zastosowałem
pokazywanie wartości średniej z pomiarów co około 300ms
kondensator 100nF na wejściu mikrokontrolera (płytka Boarduino)
kondensator elektrolityczny 220uF między plus a masę ładowarki
co jeszcze można zrobić???

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


hertzh1
Majsterkowicz
Posty: 62
Rejestracja: 29 sty 2014, 12:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: hertzh1 » 24 maja 2015, 18:12

temat spadł mocno w dół a nikt nie pomógł, czy mimo zastosowania innego napięcia niż 5V do zasilania czy zmiana charakterystyki na wyjściu będzie liniowa, czy będzie się zmieniać?
czy muszę wyliczając prąd używać dokładnie wartości, jaką zmierzyłem, czy wystarczy podstawić wzory z przykładów???
daniel89
Majsterkowicz
Posty: 245
Rejestracja: 17 maja 2014, 22:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: daniel89 » 25 maja 2015, 19:36

Pokaż schemat jak to ma działać
hertzh1
Majsterkowicz
Posty: 62
Rejestracja: 29 sty 2014, 12:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: hertzh1 » 27 maja 2015, 12:05

ładowarka ma zasilać arduino/atmegę i poprzez miernik prądu równolegle do arduino ma być wyjście na gniazdo usb włączane wyłączane przekaźnukiem, albo tranzystorem
daniel89
Majsterkowicz
Posty: 245
Rejestracja: 17 maja 2014, 22:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: daniel89 » 27 maja 2015, 15:03

podpinasz pin sygnałowy pod analog. zasilanie dajesz stałe z mikrokontrolera 5v . warto zmierzyć napięcie czy masz faktycznie 5v na wyjściu mikrokntrolera, jeśli tyle nie masz lub skacze jak mówisz to trzeba trzeba sprawdzić ładowarkę jakie napięcie daje na zasilanie arduino jeśli nie ma od 7v w górę to będą przekłamania bo lm na tej płytce od 7v w górę działa poprawnie.

potem zależnie od tego na jaki prąd masz ten czujnik wyliczasz sobie wartości do poprawnego mierzenie i w programie to wykonujesz, przy czym należy przeliczać wartości analogowe czyli od 0 do 1023 na napięcie jakie masz czyli do 5v. przy czujniku do 30A , 66mV odpowiada przepływowi 1A .
hertzh1
Majsterkowicz
Posty: 62
Rejestracja: 29 sty 2014, 12:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: hertzh1 » 30 maja 2015, 22:26

dzięki do tego sam doszedłem, tyle że, ja chcę zastosować do tego typową ładowarkę telefoniczną, i tu pojawiają się schody. Większość ładowarek daje ponad 5V, i o ile czujnik prądu można stosować od 4,5 do 5,5V (tyle doczytałem się z noty katalogowej), a napięcie przy odłączonym odbiorniku jest równe połowie napięcia zasilania, to problem pojawia się kiedy podłączy się coś do ładowania bo wskazania amperomierza, różnią się od wskazania przez czujnik.
Zastosowałem nawet podpięcie zasilania do złącza aref, i napięcie odniesienia, jako zewnętrzne w kodzie.
Pomiar niestety pływa, tzn. nie otrzymuje wyników na jednostajnym poziomie. Dałoby się to wytzymać gdyby np. uśredniając wynik z kilku (kilkunastu, kilkudziesięciu) pomiarów był na jakimś zrównoważonym poziomie, ale rozrzut rzędu 150 - 180 mA jest nie do przyjęcia.
Zastosowałem w kodzie pewien chwyt, że na początku po uruchomieniu układu, kiedy przez czujnik nie płynie prąd zbieram odczyty i wyliczam z nich średnią, którą następnie odejmuje od wyniku pomiaru przy ładowaniu, tyle że ta różnica to jakieś -10 do +20 mA czyli mniej niż rozrzut pomiaru.
Nie wiem jak to dalej ugryźć.
Zastosowałem jeszcze pewien mały myk do wyliczania napięcia zasilania, ale tu kolejny problem na długi fragment tekstu....
daniel89
Majsterkowicz
Posty: 245
Rejestracja: 17 maja 2014, 22:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: daniel89 » 31 maja 2015, 23:39

oj przyjacielu :) metrologia to jest to coś czego nam brakuje ;p
błąd pomiaru zależny jest od jakości klasy błędu danego miernika jak masz jakiś tani to błąd będzie znaczny. dalej miernik mierzy moc czynną. każdy przyrząd do pomiaru ma swoją rezystancję wewnętrzną, więc samo przyłożenie miernika już zmienia odczyt ;p

dalej masz działanie samego czujnika od 5V , a zmierz sobie zanim to 5v dotrze do czujnika to ile spadnie to napięcie dlatego chciałem abyś zmierzył napięcie na wyjściu arduino 5v czy jest stabilne. Dalej prąd zależny jest od tego jak sprawną masz ładowarkę jeśli daje za mało prądu to samo podłączenie czujnika może spadki generować.

takie wahania to wyglądają jakby brakowało gdzieś kondensatora, który by ustabilizował ale takiego pojemnego.

''Pomiar niestety pływa, tzn. nie otrzymuje wyników na jednostajnym poziomie'' - gdzie Ci to pływa dokładnie ?
hertzh1
Majsterkowicz
Posty: 62
Rejestracja: 29 sty 2014, 12:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: hertzh1 » 1 cze 2015, 19:13

Dzięki wielkie bo teraz wreszcie pomogłeś mi w paru kwestiach.
Tak więc zaraz za wtyczką od ładowarki jest elektrolit 220uF (mikro Faradów).
przed samą atmegą siedzi 50 (albo 100) nF (nie pamiętam bo korzystam z płytki Dc Borduino).
Miernik faktycznie nie jest rewelacyjny, i ze względu na zakresy pomiarowe jest ustawiony na 20A, bo następny mniejszy to 200mA.
Zastanawia mnie tylko dlaczego mam tak duże różnice przy pomiarze napięcia tzn, bez obciążenia jest to jakieś 10-30mV (tu zakładam błąd miernika, za długie kable itp), ale kiedy zacznę ładować to błąd sięga już 120mV. Mówiąc błąd mam na myśli napięcie zmierzone przez mikrokontroler (taka sprytna funkcja wykorzystująca wewnętrzne źródło odniesienia) i wskazanie woltomierza.
Co prawda zastosowałem pewien sposób, czyli podłączyłem do jednego z wejść analogowych regulator 3,3V (docelowo pewnie będzie to źródło odniesienia) i przed każdym podaniem napięcia sprawdzam czy na tej nóżce otrzymuję 675 i z tej różnicy wyliczam poprawkę napięcia, ale jak pisałem przy obciążeniu ładowaniem telefonu to się nie sprawdza, otrzymuję 120mV za dużo.
Może kwestią problemu jest tu brak na płytce jakiegoś dławika, czy czegoś w zasilaniu części analogowej dla atmegi???

edit

Czy problem z mocą czynną/bierną dotyczy też prądu stałego??? Gdzie tu przesunięcie fazy???
gdzie Ci to pływa dokładnie ?
bardzo zmienne odczyty analogRead z wyjścia czujnika np między 513 a 528
a zmierz sobie zanim to 5v dotrze do czujnika to ile spadnie to napięcie dlatego chciałem abyś zmierzył napięcie na wyjściu arduino 5v czy jest stabilne
Ładowarka ma teoretycznie 2A napięcie bez obciążenia 5,18V obciążone 4,98V
zakres napięć dla czujnika ACS712 od 4,5V do 5,5V (tak znalazłem w nocie)
daniel89
Majsterkowicz
Posty: 245
Rejestracja: 17 maja 2014, 22:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: daniel89 » 1 cze 2015, 19:49

100nF to jest odsprzęgające na zasilanie arduino dajesz ale to ma byc przy samej płytce. 220 mikro moze byc za malo. Ale co najwazniejsze to to ze masz przeciez arduino nie goly mikrokontroler wiec na tej plytce powinny juz byc te elementy wraz ze stabilizatorem. Najprosciej to by bylo podpiecie oscyloskopu i atedy by bylo wiadome co jest nie tak z tymi wachaniami i co przeklamuje.
hertzh1
Majsterkowicz
Posty: 62
Rejestracja: 29 sty 2014, 12:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: hertzh1 » 1 cze 2015, 19:57

Oscyloskop - nie ta skala projektu, chyba że jakaś przejściówka pod kartę dźwiękową
Gdyby to był chociażby chińczyk klon Arduino UNO to sprawa byłaby prosta, chwilowo z braku płytek arduino korzystam z https://learn.adafruit.com/boarduino-kits/solder-it
220 mikro moze byc za malo
450 wystarczy, więcej nie mam
daniel89
Majsterkowicz
Posty: 245
Rejestracja: 17 maja 2014, 22:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: daniel89 » 1 cze 2015, 20:01

Bardzo zmienne odczyty z analog read dla czujnika halla. Teraz tak czujnik halla mierzy indukkcje magnetyczna która jest prostopadła do płynacwgo prądu więc jakiekolwiek wachania świadcza o nie stabilnym prądzie płynącym w obwodzie dlatego trzeba uśrednic odczyt na moc czynna taka jaka odczytuje miernik
hertzh1
Majsterkowicz
Posty: 62
Rejestracja: 29 sty 2014, 12:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: hertzh1 » 1 cze 2015, 20:10

Mógłbym prosić o rozszerzenie sformułowania "UŚREDNIĆ" teraz podaje na wyświetlacz średnią z 48 pomiarów, ale nadal pokazuje za mało (w stosunku do miernika) tzn. teraz pokazuje mikrokontroler od 230mA do 270mA a amperomierz 280mA

i wpadłem jeszcze na jeden pomysł, ale tu niestety moja wiedza z metrologi i pomiarów analogowych jest za mała, a może to kwestia próbkowania przez miernik i przez mikrokontroler, oraz nieliniowy pobór prądu przez moduł ładowarki w telefonie (telefon jakby co wyłączony, telefon to odbiornik w którym mierzę prąd)
daniel89
Majsterkowicz
Posty: 245
Rejestracja: 17 maja 2014, 22:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: daniel89 » 1 cze 2015, 20:34

Po piersze prad staly to tylko moc czynna wiec z tym racja. Co do usrednic to skoro masz na wyjsciu czujnika wachania to wqrgalo by gorna granice dodac do dolnej i podzielic na 2 ale peanie to robisz kilkakrotnie. Probkowanie to zamiana sygnalu analogowego na cyfrowy dla mikrokontrolera ale z tym nie powinno byc problemu. Zaraz wez moze zmierz napiecie na wyjsciu ukladu bo na nexie pisza ze powinno wynosic vcc/2 i każda zmiana o 0,1 skutkuje przeklamaniem o 26mA. Probkowanie odgrywa role tylko w pradqxh zmiennych tzn szybkosc probkowania.
Napiecie na wyjsciu pezy zerowym mierzonym pradzie vcc/2.

Z tego wynika ze jakbys mial np 4,8 na wyjsciu to musisz przepisac 2,4 jako 1023 dla 10 bitowego przetwornika. Napisz ile tam masz.
Ostatnio zmieniony 1 cze 2015, 20:53 przez daniel89, łącznie zmieniany 1 raz.
hertzh1
Majsterkowicz
Posty: 62
Rejestracja: 29 sty 2014, 12:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: hertzh1 » 1 cze 2015, 20:50

Musiałem to przeoczyć, faktycznie vcc/2 było z różnicą na -0,1
Zmiana kondensatora na 470 troche zmniejszyła rozrzut pomiarów
daniel89
Majsterkowicz
Posty: 245
Rejestracja: 17 maja 2014, 22:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: daniel89 » 1 cze 2015, 20:55

Jak masz 4,9 to przypisz 2,45 jako 1023 to powinno blad wykluczyc
hertzh1
Majsterkowicz
Posty: 62
Rejestracja: 29 sty 2014, 12:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: hertzh1 » 1 cze 2015, 21:01

daniel89 pisze:Jak masz 4,9 to przypisz 2,45 jako 1023 to powinno blad wykluczyc
to może głupie pytanie, ale jak to dokładnie zrobić w arduino ide???

---EDIT-------

Nie chcę się chwalić przedwczesnym sukcesem, ale dałem ten kondensator 220uF między wyjście czujnika i masę i rozrzut pomiarów (cały czas średnia z 48) spadł do 20mA, a błąd w stosunku do miernika do 5mA czyli poza skalą mierzalności dla jego zakresu wielkie dzięki za naprowadzanie do celu.
daniel89
Majsterkowicz
Posty: 245
Rejestracja: 17 maja 2014, 22:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: daniel89 » 1 cze 2015, 21:41

Wartosc zmiwerzona pomnozyc przez 4,9 lub 2,45 i podzielic na 1023 chyba tak xd najlepiej przerob ten kod co masz poszukaj gdzie tak jest zamiana waetosci i tak zmien . co do tego kondensatora to wiadome ze ustabilizuje ale czy stabilizuje na 5 czy na 4,9? Bo jak jest 4,9 to programowo trzeba kombinowac .
hertzh1
Majsterkowicz
Posty: 62
Rejestracja: 29 sty 2014, 12:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: hertzh1 » 1 cze 2015, 22:17

no więc do obliczenia prądu używam w kodzie zmierzone napięcie(dlatego myślałem że, że masz na myśli jakąś sztuczkę z ustawieniem źródła odniesienia), natomiast zauważyłem pewną dziwną właściwość. Niektóre urządzenia ładują się liniowo i wtedy po poprawkach wskazania są idealne, ale są też urządzenia, które mają straszny rozrzut pomiarów zwłaszcza na początku ładowania, i wtedy nawet dodanie kondensatora nie pomaga wskazania zupełnie inne.
Odtrąbiony sukces, po tym jak dołożyłem kondensator, nie resetując układu, był z deka przedwczesny, ale idzie w dobrym kierunku.
Niestety chyba trzeba wytrawić płytkę, bo bez tego, nawet wysunięty kabelek może coś popsuć.
daniel89
Majsterkowicz
Posty: 245
Rejestracja: 17 maja 2014, 22:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: daniel89 » 1 cze 2015, 22:56

Liniowo probkowanie jest dobre. Co do pików przy starcie to trzeba by 100nF odsprzeglic na to co mierzysz
hertzh1
Majsterkowicz
Posty: 62
Rejestracja: 29 sty 2014, 12:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: hertzh1 » 1 cze 2015, 23:07

z tym kondensatorem to sprawdzę jutro, ale zauważyłem że po około pół godziny, od rozpoczęcia ładowania, nawet problematyczny szajzung pokazywał prawidłowe wyniki
daniel89
Majsterkowicz
Posty: 245
Rejestracja: 17 maja 2014, 22:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: daniel89 » 1 cze 2015, 23:20

No bo na starcie wiekszasc urzadzen pobiera wiekszy prad a potem sie to stabilizuje
hertzh1
Majsterkowicz
Posty: 62
Rejestracja: 29 sty 2014, 12:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: hertzh1 » 2 cze 2015, 21:30

no tak rozumiem że pobiera większy prąd, ale chyba nie aż tak skokowo tzn. od dwieście kilkadziesiąt miliAmper do ponad 600 i to odczyt z amperomierza, to musi mieć jakiś związek z jakby testowaniem ogniw, jakim prądem maksymalnym można je ładować, bo te skoki po kilku, kilkunastu minutach się stabilizują
daniel89
Majsterkowicz
Posty: 245
Rejestracja: 17 maja 2014, 22:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: daniel89 » 3 cze 2015, 11:57

Jakie testowanie ogniw ? Wszystko zależy od budowy ładowarki jaki prąd i napięcie daje na biegu jałowym i jak pod obciążeniem, tyle może maksymalnie dać to do ładowarki. Telefon ma pewnie swój wewnętrzny układ jakim ma być ładowany i ile mu prądu potrzeba tyle bierze. Niektóre telefony mają też jakieś początkowe skoki 100Hz częstotliwości potrzebne do ładowania nokia tak miała. Dlatego nie każda ładowarka nadaje się do danego telefonu ;p Najlepiej wszystko widać na oscyloskopie czy ma piki bo takie szczegółowe jak chcesz zrobić bez widzenia jak prąd i napięcie płyną to do niczego ta robota ;)

Ten kondensator pomógł coś ? Można jeszcze dławik dać jakby tętnienia były ale to wszystko trzeba zaobserwować jak się dane urządzenie zachowuje no chyba że widząc płytkę jesteś w stanie powiedzieć jak działa dany układ i czy wszystkie części mają odpowiednie parametry i jesteś w stanie wyliczyć przebieg ;)

Co do stabilizacji skoków po kilkunastu minutach to widocznie taki układ jest wewnątrz który potrzebuje na start większy prąd aby ładować baterie a potem jak odpowiednio napięcie na baterii wzrośnie to zmniejsza przepływ ;p
hertzh1
Majsterkowicz
Posty: 62
Rejestracja: 29 sty 2014, 12:23

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: hertzh1 » 11 cze 2015, 22:19

Można jeszcze dławik dać jakby tętnienia były
A więc tak kondensatory pomogły na tyle że po małym uśrednieniu odczytu wynik już nie skakał jak oszalały, ale dopiero po pewnym czasie
Zbadałem 3 urządzenia ładując je i mierząc prąd i zauważyłem, że w pierwszych minutach wynik jest bardzo dziwny bo dochodzi do dużych skoków.
Wszystko zależy od budowy ładowarki jaki prąd i napięcie daje na biegu jałowym i jak pod obciążeniem
Nie obciążona około 5,17V obciążona 4,98V do 5,02V czyli teoretycznie się wyrabia

Niestety prawdopodobnie zabiłem w atmedze fragment odpowiedzialny za pomiary analogowe, bo odczyt na pinach analogowych wychodzi mi cały czas około 250, nawet jak podłącze taki pin do masy :( Nawet działająca w miarę poprawnie funkcja Vcc read (zwracająca wartość napięcia zasilania) teraz pokazuje totalne bzdury.
Co do pomiarów prądu zauważyłem pewną prawidłowość, że kiedy urządzenie się naładuje to na moment prąd przez nie pobierany spada do 0. Nie tyle spada do zera co jego średnia wartość spada do 0 lub jest nieco poniżej 0. Ze względu na to, że dane zapisywane są do plików *.csv, a mój excell przyjmuje do wykresu tylko 32000 pomiarów nadałem pewne ograniczenie, czyli jeżeli wynik (prądu) jest mniejszy niż 0 to wydruk na serial wychodzi około 8 razy na sekundę, a jeżeli większy niż 0 to 3. Na wykresie linia trendu, średnia z 255 pomiarów wskazywała mniej więcej koniec ładowania.
Zważywszy na fakt, że część analogową szlag trafił, mam teraz wątpliwości, czy wcześniejsze problemy nie były związane z jej uszkodzeniem.
Jak tylko znajdę czas i kupię jakąś atmegę to wrócę do testów
Tylko teraz będę musiał zastanowić się nad częścią analogową tzn, czy wystarczy mi pomiar napięcia odniesienia tzw DEFAULT, czy jednak EXTERNAL podłączony do plusa zasilania.
Sam czujni nie został uszkodzony, bo kiedy nie płynie przez niego prąd, to pokazuje na wyjściu połowę napięcia, a kiedy płynie prąd to wartość odpowiednio wyższą.
scorpion10
Młodszy majsterkowicz
Posty: 7
Rejestracja: 26 mar 2015, 00:54

Re: ACS712 Jak dokładnie zmierzyć prąd

Post autor: scorpion10 » 8 sie 2015, 23:29

Hello ! Nie wiem czy temat jeszcze zyje ale chciałbym sie przyłączyć do dyskusji. Otóz mam ten sam problem, chciałem również zrobić kontrolę ładowania baterii tablet-a poprzeż arduino i wykorzystać do tego odczyt napięcia baterii na pinie analogowym Arduino, ale to niestety wlka z wiatrakami. odczyt napięcia pomimo wszelkich starań jest nie dokładny i mocno pływający w zakresie uniemozliwiającym prawidłowe załaczanie wyłaczanie ładowania tabletu. Pomijając niedokładność pomiaru to i tak lepiej było by to zrobić mierząc prąd niż napiecie bo wtedy łatwiej było by określić chyba czy tablet potrzebuje ładowania czy też nie.
Nie wiem czy rozwiązałeś jakoś ten temat ładowania czy to sobie odpuściłeś, ale jeżeli udało Ci sie rozwiązać problem to odezwij sie na forum i opisz co wymyśliłeś. A może właczyć w to wszystko jakoś układ ACS712 i tak rozwiązać problem ?
ODPOWIEDZ

Strony partnerskie: