Skocz do zawartości

Pomiar prądu stałego do 100 Amper na Arduino


Pomocna odpowiedź

Witam jak w temacie. Posiadam taki oto przetwornik https://pl.farnell.com/lem/la-55-p-sp1/current-transducer-50a-pcb/dp/2146846

Podpinam +12V oraz -12V do tego czujnika i wychodzi sygnał M z tego przekładnika prądowego 1:2000 . Czyli dla 100 Amper mam 50 mA . Pisze że można zastosowac rezystor szeregowo od 0 do 35 Ohm przy tym napięciu zasilania na wyjściu sygnału M .

Rozumiem że arduino odczytuje wartość analogową od 0-5V i teraz czy należy dodatkwo jakiś przetwornik dołożyć czy jak to zrobić by odczytać prąd obciążenia z tego czujnika ? 

Proszę o poradę.

Edytowano przez daniel89
Link to post
Share on other sites
(edytowany)

Pytanie najważniejsze: czy chcesz mierzyć prąd płynący w obu kierunkach, czy tylko w jedną stronę?

EDIT: Bo jeśli interesuje Cię przepływ prądu tylko w jedną stronę, to najprostszym wyjściem jest wstawienie opornika jako obciążenia na wyjściu LEMa. Jeśli maksymalny prąd wyjściowy to 50mA, to aby uzyskać 5V musiałbyś dać 100Ω. To jednak jest za dużo, czujnik nie chce pracować przy tak dużych napięciach wyjściowych. Na szczęście możesz bez problemu przełączyć Arduino na zakres 1.1V:

analogReference(INTERNAL);

Od tej pory wszystkie wejścia analogowe mają zakres 0...1.1V więc wystarczy, że od wyjścia czujnika do masy dasz opornik 22Ω i będziesz mógł mierzyć prądy unipolarne (jednokierunkowe) do 100A. Pozostaje problem zabezpieczenia wejścia Arduino przed prądem wpływającym do czujnika, tj. gdy wyjście czujnika będzie "zasysało" 50mA przy -100A. Na szczęście wystarczy dać jakąś małą diodę Schottky (BAS81, BAT54 itp) równolegle do opornika 22Ω, anodą do masy oczywiście.

A gdybyś jednak chciał wiedzieć jak przejść z bipolarnego prądu +/-50mA na unipolarne napięcie 0..+5V i mierzyć prądy 100A w obu kierunkach, to daj znać. Musisz kupić wzmacniacz za 5zł, kilka oporników i sklecić to do kupy. Układ jest bardzo prosty.

BTW: Skąd weźmiesz +/-12V?

Edytowano przez marek1707
Link to post
Share on other sites
(edytowany)

Marku o takim podłączeniu mówisz dla jednokierunkowego pomiaru(unipolarnego) ?

image.thumb.png.22b084ba316e0de81055fbfb03db005b.png

Jaką dokładność z tego pomiaru uzyskam? Jest w Arduino przetwornik 10-bitowy.

Napięcie +/- 12V do badań to z zasilacza komputerowego.

Co do pomiaru w obu kierunkach też mnie ciekawi taka opcja.

 

Edytowano przez daniel89
Link to post
Share on other sites

Prawie dobrze 🙂 Żeby być na 100% zgodnym z tym co masz zrobić, wywal ze schematu opornik 100R i to kółko (miernik?), stojące na wyjściu czujnika. Opornik na którym masz odkładać prąd wyjściowy już zrobiłeś, to ten 22R, każdy dodatkowy szeregowo tylko pogarsza sprawę. Czujnik ma na wyjściu źródło prądowe, ale tak jak każdy rzeczywisty układ elektroniczny ono też ma ograniczenia. Jednym z nich jest właśnie ograniczenie napięcia wyjściowego do ok. 3V (przy +/-12V zasilania), między wierszami można o tym przeczytać w datasheet. Prąd wyjściowy z czujnika będzie kalibrowany i będzie odpowiadał wejściowemu z przekładnią 1:2000 tylko wtedy, gdy nie dopuścisz by na wyjściu, na oporniku wyjściowym odłożyło się więcej jak te 3V. Przy napięciu +/-15V zasilania czujnik radzi sobie znacznie lepiej. Wtedy producent dopuszcza nawet 95Ω, co daje prawie 5V napięcia wyjściowego. Oczywiście rozumiejąc to ograniczenie można przypuścić, że im mniej napięcia wyjściowego (im mniejszy opornik obciążenia) tym dla tego czujnika lepiej. Ideałem jest oczywiście R=0 i czysta zamiana prądu na napięcie w przetworniku I/U (jeden wzmacnaicz operacyjny i dwa oporniki), ale starałem się zaproponować optymalne (wystarczająco proste i wystarczająco dobrze działające) rozwiązanie: opornik na tyle mały by nie przeszkadzać czujnikowi w wysyłaniu precyzyjnego prądu i na tyle duży by dało się coś zmierzyć trochę "podkręconym" Arduino bez uciekania się do wzmacniaczy itp.

Jeśli chodzi o dokładność, to tutaj ograniczenia masz dwa: ADC i czujnik:

Przetwornik ma 10 bitów, ale to nigdy nie działa idealnie. Przetworniki ADC robi się tylu bitowe, ile sensownych bitów z danej technologii możesz uzyskać (i odwrotnie: projektując scalak tak dobierasz implementację ADC by uzyskać to czego oczekujesz). Oznacza to po prostu, że słowo wyjściowe odczytywane z jakiegoś rejestru przy maksymalnej rozdzielczości danego ADC jest na granicy (albo tuż za) jego możliwości. Gdy przyjrzysz się danym przetwornika w AVR to zobaczysz, że a) wszystkie parametry podawane są dla VREF=4V, b) większość linijek w tabelce charakteryzuje jakieś błędy przetwornika i nie są one zerowe 😞 ADC jest modułem przetwarzającym sygnał analogowy więc ważne jest, by ten sygnał był jak największy w stosunku do wszystkich innych śmieci latających po strukturze krzemowej. Przy VREF=5V najmłodszy bit przetwornika "waży" ok. 5mV i najprościej rzecz ujmując okoliczny szum - żeby zakłócić pomiar musiałby być większy niż 5mV. Przy VREF=4V jest trochę gorzej, a przy 1.1V masz już tylko ok 1.1mV "odporności". Dlatego warto pracować z dużymi napięciami odniesienia i tak wypracować sygnał wejściowy ADC, by ten "opierał" się o granice pełnej skali. W takich warunkach badają swoje przetworniki producenci i sam rozumiesz, że są to bardzo optymistyczne wyniki. Oczywiście zawsze zakłada się milcząco, że napięcie odniesienia ADC jest idealnie "czyste". Jeśli tam pojawiają się jakieś zakłócenia, bezpośrednio widzisz je w wynikach - to jakby w procesie ważenia torebki cukru ktoś bez ustannie podmieniał Ci odważniki na delikatnie inne. W Arduino domyślny wybór to połączenie (wewnątrz procesora) AREF do VCC więc pobranie referencji z zasilania 5V (i dlatego taki masz zakres napięć mierzonych w wersjach Arduino 5V). A dopóki na Vcc nie masz podpiętych jakichś silników, wyświetlacza LED czy bardzo długiego kabla (czyli anteny) do zasilania np. czujnika za oknem to można przyjąć, że linia VCC (a więc i AREF) jest w miarę czysta i pomiary ADC też nie będą obarczone dużym szumem dodatkowym. Przełączenie się na wewnętrzne odniesienie procesora (specjalne źródło napięcia ok. 1.1V) z jednej strony odcina Cię od możliwych śmieci na VCC, ale z drugiej znacznie pogarsza warunki pracy części analogowej. Te same szumy jakie były w chipie mają teraz znacznie (5-krotnie) większy wpływ na pracę modułu ADC.

No i zostają jeszcze te błędy wbudowane przetwornika. Każdy jest wyrażany w liczbie LSB, czyli kwantów rozróżnianych porzez ADC. Dla uproszczenia rozważań producent w pierwszych linijkach podaje sumę tego wszystkiego i mamy 2LSB dla prędkości zegara 200kHz i 4.5LSB dla zegara 1MHz. Widać, że im wolniej tym lepiej, choć dolnym ograniczeniem jest podany niżej maksymalny czas konwersji 260us, co dla 13-zegarowego cyklu pracy daje ok. 50kHz zegara. Przetwornik pewne informacje (analogowe) pamięta w czasie przetwarzania w kondensatorach i dlatego nie może pracować zbyt wolno. Z moich doświadczeń wynika, że zakres 100-200kHz zegara ADC to najlepsze co można w AVR ustawić. A błąd 2LSB oznacza, że na pewno najmłodszy bit jest śmieciowy z definicji (waży 1LSB) i czasem kolejny (ten już waży 2LSB). Z 10-bitowego wyniku zostaje zatem w idealnych warunkach 8.5 bitów pewnych i to tylko w warunkach, gdy pozbyłeś się wszelkich błędów zależnych od Ciebie: kalibracji zera i pełnej skali. Zakładając, że pracujesz na VREF=1.1V i kilka kolejnych konwersji uśredniasz, możesz oczekiwać powiedzmy 9-bitowego wyniku i 9 bitów precyzji, czyli Twój LSB to 2.15mV. Takie napięcie przeliczone "wstecz" na wejście oznacza prąd w kablu ok. 200mA. To jest teoretyczna dokładność pomiarów jakie uzyskasz na tym zestawie. Rozdzielczość będzie rzecz jasna 10-bitowa, ale kogo to obchodzi?

A teraz LEM. Firma pisze, że błąd zera (offset) to 0.1mA. Taki prąd (nie wiadomo w którym kierunku) na oporniku 22R odłoży 2.2mV czyli mniej więcej Twój 1LSB. Już wiadomo, że gdy złożysz układ w ciemno bez kalibracji zera, to dla I=0 możesz dostać +/-200mA prądu na wyświetlaczu. Do tego dochodzą błędy pełnej skali (praktycznie 0.9% czyli 1.8A przy 100A i +/-12V zasilania) i nieliniowości (0.15% czyli dodatkowe 0.15A błędu gdziekolwiek na skali).

Acha, nie napisałem jeszcze o błędzie napięcia samej referencji 1.1V. Producent gwarantuje, że jest to w miarę stabilne napięcie przy zmianach temparatury chipu, ale dużo gorzej jest z wartością bezwzględną. Tutaj widełki są szerokie: od 1.0 do 1.2V (patrz tabelka). Ponieważ to wprost przekłada się na wyniki pomiarów, to bez żadnej kalibracji pełnej skali układu pomiarowego, musisz liczyć się z 10% błędem pomiaru prądu. Możesz oczywiście zmierzyć dobrym woltomierzem (min 4.5 cyfry) napięcie na pinie AREF procesora (po przełączeniu referencji na INTERNAL) - tam chyba jest jakiś kondensator na schemacie i uwzględnić to w obliczeniach, albo napisać procedurę kalibracji: przepuścić znany prąd najlepiej o wartości gdzieś pod koniec skali (90-100A) i zanotować co ADC w tych warunkach oddaje. Potem już tylko wystarczy "złapać zero" i policzyć dwa współczynniki kalibracji y=Ax+B, zapamiętać to w EEPROMie i gotowe 🙂 

W konfiguracji bipolarnej cały zakres przetwornika (powiedzmy, że wtedy 0..5V, bo zrobisz wzmacniacz, a warto) rozkłada się na 2 razy większy zakres prądów czyli 200A.

adc328.PNG

  • Lubię! 1
Link to post
Share on other sites
(edytowany)

Oj 200mA prądu w kablu jako dokładność to nie kalkuluje się . Potrzebuję do 1mA pomiar mieć. Czy taki przetwornik : ADS 1115 - 16 bitowy przetwornik , rozwiąże ten problem pomiaru z dokładnością 1mA ?

Tamten schemat uważam w takim razie za nie wystarczający nawet po wywaleniu tego 100 Ohm rezystora 🙂 .

Pomiar w jednym kierunku jest wystarczający , chyba że nie jest duża różnica w kosztach finalnych to mogę i w dwóch kierunkach.

 

Edytowano przez daniel89
Link to post
Share on other sites

Czy dobrze rozumiem że liczysz na 1mA na zakresie 100A czyli precyzję 0.001%? Nie żartuj. Jeśli zrozumiałeś co napisałem, to nie ma na to żadnych szans. Rozdzielczość możesz podciągać ile chcesz, są przecież 24-bitowe przetworniki delta-sigma 🙂 ale przecież samej ch-ki LEMa nie przeskoczysz, nie mówiąc o precyzjnie stabilizowanym temperaturowo, wilgotnościowo i napięciowo torze pomiarowym. W warunkach amatorskich zrobienie pomiaru z dokładnością lepszą niż 0.5% to naprawdę sukces. Zejdź na ziemię, zrób ten układzik, uruchom a potem przyłóż rękę do czujnika i sprawdź jak popłynęły wyniki gdy nagrzał się o 10°C choćby od kabla z prądem 100A. 

Link to post
Share on other sites

Czyli dając nawet lepszy/dokładniejszy LEM nie da się uzyskać dobrej dokładności ? 

Może powiedz proszę jaką dokładność z jak najlepszym czujnikiem LEMa oraz przykładowo 16-bitowym ADC można uzyskać ?

Link to post
Share on other sites

Zajrzyj do danych katalogowych czujników. Przecież tam jest wszystko napisane czarno na białym. Przecież liczby ze znakiem procenta i określenia typu "offset", "accuracy" czy "nonlinearity" rozumiesz. A jeśli możesz wyjśc poza ADC w AVR, to łatwiej go zrobić lepszy niż czujjnik.

Poza tym zastanów się nad kalibracją zrobionego urządzenia. Po zbudowaniu nawet najdokładniejszego miernika będziesz musiał go sprawdzić i znaleźć współczynniki do przeliczania liczb z ADC na rzeczywisty prąd. A wtedy potrzebujesz źródła, które produkuje zadany prąd z lepszą (np. 10-krotnie) niż mierzysz dokładnością, tzw. kalibratora. Tu jest przykład takiego urządzenia dla kilku wielkości fizycznych: m.in. napięcia i prądu DC:

https://www.tme.eu/Document/3b70ee724470a630b8dc3fd0aa75c087/FLK-753_754-Eng.pdf

W przypadku prądu dostajesz zakres 0-100mA z dokładnością 0.01% - to naprawdę wyczyn w urządzeniu przenośnym, ale to umieją tylko najlepsze firmy na świecie zatrudniające setki inzynierów. Ty potrzebujesz precyzji min 20 razy lepszej i to w zakresie tysiąc razy większym. Ten przyrząd kosztuje ponad 20 tysięcy zł. A kalibrator (jeśli w ogóle istnieje) o wymaganych w Twoim przypadku parametrach będzie wielkości szafy, będzie musiał być wygrzewany godzinę przed użyciem i będzie kosztował ponad 500 tysięcy. Masz gdzieś taki pod ręką? Inaczej weryfikacja tego co zbudowałeś będzie niemożliwa a więc cały wysiłek pójdzie na marne. Będziesz dostawał jakieś liczby i tylko nawiność pozwoli uwierzyć, że spełnia on postawione założenia.

Może inaczej: podejrzewam, że nigdy niczego pomiarowego nie robiłeś i zmyśliłeś sobie takie wymagania, bo fajnie wygląda gdy możesz pokazać prąd w mA. A jest tak, że w jakimś zakresie potrzebujesz mA, ale bardzo wąskim, np. w pobliżu zera a powyżej np. 1A już wystarczy 10mA, a jeszcze wyżej to i 100mA. To też jest niełatwe, ale przynajmniej robialne. Zastanów się dobrze i napisz do czego ten pomiar jest, a wiele rzeczy się wyjaśni. Na razie widzę marzenia dziecka o zbudowaniu "takiej wielkiej i fajnej rakiety, żeby na Księżyc doleciała albo nawet dalej".

Link to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.