Skocz do zawartości

Pomiar napięcia i natężenia prądu - INA219 + Arduino Leonardo


Pomocna odpowiedź

Witam. Na co dzień param się fotowoltaiką i często otrzymuję pytania w stylu, który panel lepiej pracuje przy różnych warunkach pogodowych. Wymyśliłem więc, żeby zrobić sobie mały system PV, który będzie czymś w rodzaju laboratorium umożliwiającym porównywanie parametrów poszczególnych paneli. Jednym z głównych czynników, który mają wpływ na wydajność modułów PV jest temperatura i chciałbym obserwować w jaki sposób wpływa ona na każdy z paneli. System będzie się składał z czterech paneli różnych producentów ale o tej samej mocy, podłączonych do mikoinwertera - każdy panel niezależnie. Pod każdy z paneli będzie podłączony pomiar temperatury na DS18B20 i tę część mam już ogarniętą. Pozostaje realizacja pomiaru napięci i natężenia prądu płynącego z modułu PV do mikrofalownika. Posiadam moduły INA219, na których chciałbym to zrobić, jednak moduł ten może mierzyć napięcie do 26V oraz prąd do 3,2A, napięcie jakie może wystąpić na stykach panela fotowoltaicznego może się wahać od 0 do 45V a prąd może przekroczyć 11A. Moje pytanie i prośbą o pomoc jest takie, czy można użyć jakiegoś bocznika i dzielnika napięcia aby móc INA219 wykorzystać, czy raczej nie uda się tego zrobić ? Jeżeli się nie da, to jaki inny shield zastosować ? Jeśli jednak można zastosować te shieldy, to jakie rezystory zastosować do budowy takiego układu pomiarowego ? W jaki sposób je połączyć w całość ?  Kolejnym etapem będzie rozbudowa tego układu o moduł ethernetowy w celu wysyłania i prezentowania tych danych na stronie www, no ale to już kolejny etap, na razie chciałbym odczytać prądy i napięcia. Proszę o pomocw tym temacie doświadczonych kolegów.

Edytowano przez pisiorek
  • Lubię! 1
Link to post
Share on other sites

Same pomiary to jeszcze nie wszystko. Co to za "mikrofalowniki", bo to przecież od nich (pomijając oświetlenie) i od ich obciążenia (co będzie na ich wyjściach) będzie zależało to, ile mocy będziesz wyciągał z paneli.

EDIT: A jeśli podobają Ci się zintegrowane chipy do pomiaru napiecia/prądu/mocy z wyjściem cyfrowym, to popatrz na INA228/237/238 lub z SPI: INA229/239. Wszystkie pracują do 85V i każdemu musisz dać bocznik prądowy.

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

@marek1707 Dzięki za włączenie się do dyskusji.Mikrofalownik to urządzenie firmy ApSystems YC1000. Na wejściu DC może przyjąć cztery niezależne moduły fotowoltaiczne, na wyjściu AC są już trzy fazy. Jego zadaniem jest oddanie energii z paneli do sieci. Max moc AC tego  mikroinwertera to 1440W - falownik będzie chciał oczywiście wyciągnąć z paneli ile się da. Pomiar ma dotyczyć każdego panela z osobna. Maksymalny prąd to jakieś 12A a napięcie 44V. Generalnie można z pomocą dedykowanego  systemu monitoringu dla tych falowników odczytywać moc w danym momencie ale prądu i napięcia już nie, poza tym jednostka odpowiedzialna za wysyłanie tych danych na serwer wysyła paczkę danych raz na kilkanaście minut, co w przypadku konieczności obserwacji i porównywania wyników na bieżąco jest niemożliwe. Docelowo chcę żeby te dane wyciągnąć z miernika i wrzucić na www w celach prezentacji np. klientom.

Edytowano przez pisiorek
Link to post
Share on other sites
4 godziny temu, pisiorek napisał:

falownik będzie chciał oczywiście wyciągnąć z paneli ile się da

Wiesz na pewno, że tak jest? Bo to wcale nie jest oczywiste. A jeśli rzeczywiscie te urządzenia mają zaimplementowane MPPT to czy wiesz jaki algorytm i jak szybko on się adaptuje do zmiennych warunków?

No chyba, że nie interesuje Cię rzeczywista moc paneli (czyli nie robisz testów samych paneli) a chcesz szacować cały zespół panel-inweter i te wyniki porównywać. Chodzi mi o to, że w takim układzie to inwertery stanowią o tym ile mocy z panelu płynie a jeśli Ty planujesz pomiary różnic na poziomie powiedzmy kilku procent, to mogą one zniknąć w "szumie" związanym z działaniem algorytmów inwerterów.

"Czystym" z punktu widzenia metodologii testów rozwiązaniem byłoby wykonanie jednego urządzenia pomiarowego robiącego także za obciążenie. Wtedy mogłoby ono na bieżąco skanować wszystkie podłączone ogniwa i każde mierzyć w tych samych, kontrolowalnych warunkach, np. mierzyć napięcie otwartego obwodu, prąd zwarciowy, temperaturę i położenie punktu mocy maksymalnej.

Zauważ, że z temperaturą płynie efektywność paneli ale tylko dlatego, że zmienia się napięcie przewodzenia VF diod będących ogniwami. A to ma znaczenie jedynie w przypadku gdy obciążenie panelu (czyli inwerter, przetwornica, ładowarka) pracują w punkcie MPP. Jeśli tak nie jest (a wiele tego typu rzeczy tak nie robi albo robi to w prywmitywny sposób np. stablizując napięcie ogniwa) to wyniki pomiarów nie pokażą żadnej zależności mocy od temperatury. Punkt MPP owszem, przesunie się, ale ponieważ inwerter tego nie wie (bo w nim nie pracuje), to pobierana moc się nie zmieni. Temperatura nie wpływa bowiem na natężenie generowanego prądu.

  • Lubię! 1
  • Pomogłeś! 1
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

7 godzin temu, marek1707 napisał:

Wiesz na pewno, że tak jest?

Oczywiście nie mam pewności, raczej zakładam, że tak jest, bo w zasadzie tak by nakazywała logika, aby starać się w taki sposób wysterować ogniwo, aby pracowało jak najwydajniej w danym momencie. Ten mikrofalownik ma oczywiście tracker MPPT- dla każdego panela ale, tak jak piszesz, rzeczywiście nie wiem jak jest punkt MPP wyliczany. Co do szybkości działania MPPT, to z tego co zasłyszałem, to obliczenia MPP są przeprowadzane klika razy na sekundę - ale pewności też nie mam,. Ogniwa PV będą wpięte, a nawet już są wpięte oczywiście do sieci domowej, bo szkoda by było tej energii nie wykorzystać. Z tego też powodu budowa  jednego urządzenia pomiarowego robiącego także za obciążenie nie wchodzi w grę. Raczej zakładałem, że różnice w osiągach miedzy poszczególnymi panelami będzie na tyle duża, że uda się jednoznacznie stwierdzić, który pracuje lepiej, a który gorzej. Tutaj też nie chodzi o wyniki super-precyzyjne, traktuję ten projekt raczej jako formę nauki Arduino i elektroniki a przy okazji ma spełniać dodatkowo funkcję prezentacyjną i poglądową. Mimo wszystko chciałbym to zrealizować w taki sposób aby mierzyć prąd  i napięcie na każdym z paneli, choćby dla tego aby poznać głębiej zagadnienia związane z programowaniem Arduino. Czy uważasz, że lepiej/prościej będzie to zrobić w oparciu o te układy, o których wspomniałeś w pierwszym swoim poście ? Który będzie najprostszy w obsłudze i jak dobrać ewentualnie do niego bocznik ? Dziękuję za wszelkie informacje i poświęcony czas.

Link to post
Share on other sites

Co ja uważam jest mało ważne w obliczu tego, że to Ty będziesz musiał wszystko zrobić. A jeśli nie masz pewnego poziomu doświadczenia, to lepiej niech przykłady gołych scalaków pozostaną tylko wskazówką dla innych kolegów. Na Twoim miejscu szukałbym zatem gotowców - i od tego właśnie, jak rozumiem, zacząłeś ten wątek. INA219 siedzi na wielu gotowych modułach i są one bardzo wygodne, ale w tej aplikacji się nie sprawdzą. W ogóle nie bardzo czuję co znaczy wg. Ciebie "najprostszy w obsłudze". Prawie każdy moduł musisz jakos zasilić, jakoś przesłać z niego dane i napisać program. A przesyłanie sygnałów po drutach to już osobna wiedza. Możesz to robić "analogowo" przekształcając w module pomiarowym wielkość mierzoną (napięcie, prąd, temperaturę, cokolwiek) na jakieś niskie napięcie "łykane" bezpośrednio lub pośrednio przez moduł komputerka. Możesz też wybierać moduły, które same zamieniają wielkość mierzoną na liczby i wysyłają je dalej już w postaci cyfrowej. Każde z tych podejść ma swoje wady i zalety. Napisz może jak tę swoją instalację widzisz od strony fizycznej konfiguracji. Ile tych paneli na raz chcesz mierzyć? Czy jesteś w stanie wszystkimi kablami prowadzonymi do inwerterów wejść do jednej skrzynki? Czy masz w niej miejsce na zasilacz, jakiś moduł główny z procesorem i kilka modułów pomiarowych? To jest najlepsza konfiguracja, bo punkty pomiarowe sa blisko siebie a sygnały z czujników mają blisko do komputerka i niezależnie od sposobu przesyłania informacji odpada wiele problemów. Niestety nie wszystkie. Najpoważniejszy jaki teraz widzę to taki, że linie z osobnych paneli są wprowadzone do osobnych inwerterów i nie mają wspólnej masy.To chyba także oznacza, że nie mogą jej mieć a więc nie możesz zewrzeć w skrzynce minusów wszystkich paneli ze sobą, bo nie wiemy jak to wpłynie na pracę inwerterów. Komputerek który te pomiary będzie zbierał oczekuje, że wszystkie doprowadzone sygnały - tak analogowe jak i cyfrowe - bedą odniesione do jego masy GND. To z kolei oznacza, że moduły pomiarowe muszą zapewniać tzw. izolację galwaniczną wejścia od wyjścia a to znacznie zmniejsza zakres dostępnych gotowców i podbija cenę. O ile jeszcze prąd da się "bezkontaktowo" zmierzyć poprzez odczyt wielkości pola magnetycznego i takich modułów trochę jest:

https://botland.com.pl/pl/czujniki-pradu/524-czujnik-pradu-acs714-30a-do-30a-pololu-1187.html

https://botland.com.pl/pl/czujniki-pradu/14235-czujnik-pradu-achs-7122-20a-do-20a-pololu-4031.html

o tyle z napięciem tak łatwo nie pójdzie. Rzecz jasna elektronika umie takie coś na wiele sposobów, ale gotowe izolowane i wielokanałowe moduły napięciowe są drogie.

Także kluczowe dla tego projektu jest dowiedzenie się, czy możesz spiąć minusy wszystkich paneli ze sobą. Ja bym był ostrożny, ale może coś takiego specyfikacja inwerterów przewiduje? Bo to od ich konstrukcji zależy taka możliwość lub zakaz. 

A komputerek to na pewno koledzy Ci jakiś znajdą. Jeśli myślisz o łączności WiFi czy przez Ethernet i komunikacji TCP/IP to w podstawowym Ardunio owszem, na oparach daje się takie rzeczy robić, ale radziłbym coś większego. Z kolei te taniuchne ESP32 umieją w WiFi, ale mają skormne możliwości analogowe więc pewnie i tak trzeba by dospawać jakiś zewnętrzny moduł przetwornika A/C. 

  • Lubię! 1
Link to post
Share on other sites
18 minut temu, marek1707 napisał:

taniuchne ESP32 umieją w WiFi, ale mają skormne możliwości analogowe

Hej, nie pomyliło Ci się z ESP8266?

Akurat zaczynam projektować pewne ustrojstwo na ESP32 dość mocno korzystające z analogowych wejść i po poczytaniu sobie dokumentacji jestem pod wrażeniem, co to potrafi. Szczególnie interesujące mogą być funkcje esp_adc_cal_characterize (obliczająca charakterystykę konwertera) i esp_adc_cal_get_voltage (podająca rzeczywistą wartość napięcia w mV).

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

Oczywiście, masz rację 🙂 Dzięki.

BTW: Ta pierwsza funkcja niczego nie oblicza. Ona tylko podaje sposób w jaki podsystem ADC został (lub nie) skalibrowany na etapie produkcji. Bo przecież jak zwykle, ADC jest tak dobry jak jego technologia i jego VREF. A VREF, mimo że jest stabilne temperaturowo i długoczasowo, to sztuka do sztuki chipu może mieć spore odchyłki - i jest to naturalne dla bandgap. Dlatego od pewnego momentu wprowadzili do procesu produkcji ESP32 najpierw jedno- a później dwupunktową kalibrację przetwornika. W pierwszym przypadku masz zapamiętaną rzeczywistą wielkość VREF w [mV] i dzięki temu funkcje pomiarowe mogą kompensować tylko (albo aż) błąd skali. W drugim poszli trochę dalej: zapodawali z zewnątrz dwa jakieś w miarę odległe napięcia wzorcowe (nie pamiętam jakie, ale oczywiście oba niższe od VREF) a wyniki ADC wpisywali do chipu, dzieki czemu można było usuwać zarówno błąd skali jak i zera.

Fajne, choć moim zdaniem takie trochę na pokaz. Przecież i tak montując jakiś swój dzielnik napięcia z 5% oporników (bo rzadko co oddaje sygnał napięciowy 0-1V), nie mówiąc już o czujnikach innych wielkości na napięcie (mających przecież swoje własne błędy) i tak musisz kalibrować całość toru. Jaka jest wtedy zaleta tego, że wiesz ile mV mierzysz? W takich przypadkach to nikogo nie obchodzi, bo ważna jest wielkość wejściowa (np. temperatura czy prąd) i czysta liczba otrzymana z ADC. Nie będziesz przecież "po drodze" przechodził przez miliwolty, bo po co? I tak musisz mieć zapamiętane własne współczynniki i to czasem więcej niż dwa, bo przecież nie zawsze przekształcenie jest liniowe y=ax+b. Wołanie w takich wypadkach funkcji korzystających z "wbudowanych" współczynników kalibracyjnych i przeliczających wynik ADC na mV jest bez sensu - zajmuje to więcej czasu i wymaga więcej prądu. No ale w folderach wygląda nieźle.

Link to post
Share on other sites
9 godzin temu, marek1707 napisał:

Ta pierwsza funkcja niczego nie oblicza. Ona tylko podaje sposób w jaki podsystem ADC został (lub nie) skalibrowany na etapie produkcji.

Obliczenie współczynników jest chyba obliczeniem?

9 godzin temu, marek1707 napisał:

dwa jakieś w miarę odległe napięcia wzorcowe (nie pamiętam jakie, ale oczywiście oba niższe od VREF)

Konkretnie to 150 i 850 mV (wewnątrz tego zakresu można pracę przetwornika uznać za jako-tako liniową).

9 godzin temu, marek1707 napisał:

I tak musisz mieć zapamiętane własne współczynniki i to czasem więcej niż dwa, bo przecież nie zawsze przekształcenie jest liniowe y=ax+b.

No właśnie funkcja kompensuje w pewnym stopniu nieliniowość przetwornika w zakresie 2880..4095 (co prawda tylko dla dzielnika 11dB, ale dla niższych napięć można po prostu włączyć inny dzielnik i poruszać się w zakresie liniowości komparatora). Nawet więc jeśli ów "miliwolt" będzie tylko abstrakcyjnym pojęciem - w większości przypadków uzyskamy liniową zależność wskazań od napięcia w szerszym zakresie.

Oczywiście ta "liniowość" jest taka "mniej więcej", ale jeśli potrzebujemy czegoś lepszego i tak zastosujemy jakiś porządny ADC, a do wielu zastosowań będzie wystarczająca. I użycie własnej funkcji będzie właśnie miało problematyczny sens - po co tworzyć własną funkcję działającą tak samo jak wbudowana?

No, ale odbiegliśmy nieco od tematu 🙂 Podejrzewam, że ESP32 z jego przetwornikami i tak nie nada się do tego typu pomiarów, jakie chce wykonać kolega wątkotwórca, ale może bardzo grzecznie służyć właśnie do zbierania danych i przekazywania wyników do sieci.

 

Link to post
Share on other sites
15 godzin temu, marek1707 napisał:

Napisz może jak tę swoją instalację widzisz od strony fizycznej konfiguracji.

Zbombardowaliście mnie koledzy mnóstwem informacji ale na tym etapie mojej wiedzy elektronicznej, a raczej jej braku, nie do końca jestem w stanie się odnieść do tego o czym piszecie :). Więc tak jak marek1707 zasugerował, może zacznę od początku i wstawię jakiś schemat tego, co chciałem zrobić i napiszę jak to fizycznie ma wyglądać i jak sobie to wyobrażam. W załączeniu prosty schemat tej mikroinstlacji. Mam mały domek gospodarczy, na dachu  którego chcę zamontować 4 panele PV na konstrukcji wsporczej, która to skieruje panele na południe pod najlepszym w naszej szerokości geograficznej kątem - 35 stopni w stosunku do gruntu. Każdy z tych paneli ma tę samą moc ale pochodzą od różnych producentów, wszystkie moduły są obok siebie, identycznie ustawione, więc warunki fizyczne mają te same. Dysponuję mikrofalownikiem firmy APSystems - YC1000- falownik trójfazowy, wyposażony w cztery niezależne wejścia DC i niezależne MPPT dla każdego modułu PV. Chcę mikrofalownik zamontować zaraz pod panelami w domku gospodarczym, nie dalej jak 2m od paneli, na kablach tej samej długości. Po drodze między każdym z paneli a mikrofalownikiem chcę wstawić moduł pomiarowy (np. INA219) i mierzyć parametry każdego z nich. Zakładam, że pomiędzy falownikiem i modułami PV zrobię jakąś listwę, czy blok z zaciskami, na których będę mógł dokonać pomiarów lub wstawić boczniki, dzielniki itp. Moduł INA219 wybrałem właśnie z tego powodu, o którym Marku piszesz, czyli właśnie braku mojego doświadczenia i wystarczającej wiedzy żeby zbudować coś od zera, a INA219 ma sporo tutoriali i gotowców w sieci, które można po niewielkich modyfikacjach zaprząc do roboty. Poza tym posiadam dwa shieldy INA219 więc myślałem, że je wykorzystam. O Arduino mam jakieś podstawowe pojęcie, bo potrafię obsłużyć wyświetlacze, diody, termometry DS18B20, przyciski itp. Z płytką stykową (prototypową) też sobie radzę, mam kilka zmontowanych przez siebie szkoleniowych układów na Arduino Leonardo, czy Medze 2560. Bardziej potrzebuję pomocy właśnie w doborze odpowiedniego modułu do pomiaru napięcia i natężenia (temperaturę mam już ogarniętą), który ma już jakieś biblioteki w Arduino, najlepiej z gotowymi przykładami i jest w stanie wytrzymać te wielkości parametrów elektrycznych, bo INA219 jest za słaba na nie - przynajmniej bez dodatkowych ulepszeń. I tutaj właśnie się zastanawiam, czy można np. wstawić rezystor(y) jako boczniki lub zrobić dzielnik napięcia, jeśli tak, to na jakich parametrach, aby tego nie zjarać wszystkiego, lub może jednak lepiej kupić inne shieldy, podobne do INA219, które bez dodatkowych kombinacji się nadadzą. Brakuje mi wiedzy, żeby poprawnie dobrać wielkość bocznika, rezystorów i jak to wszystko połączyć w całość. 

pomiar_schemat.jpg

Link to post
Share on other sites

Ha, to teraz pewnie wiemy tyle co Ty 🙂

Super, że masz to już dobrze przemyślane i fajnie, że trzyma to jakiś poziom. Listwa z zaciskami to świetny pomysł a Twoje doświadczenie w instalacjach elektrycznych i Arduino na pewno zaprocentuje. Szkoda, że nie napisałeś tego na początku, oszczędziłbym Ci kilku akapitów marudzenia. No, ale wracając. Niestety popularnego INA219 nie możesz użyć. Nie da się wstawić "dzielnika", bo piny pomiaru prądu muszą dochodzić bezpośrednio do opornika/bocznika a z jednego z tych pinów układ pobiera mierzone napięcie. Są jak już wiesz inne INY, wytrzymujące o wiele więcej woltów, ale nie znalazłem na nich żadnego gotowego modułu. Poza tym wciąż nierozwiązany jest problem wspólnej szyny/masy/potencjału pomiarowego do którego będzie podpięta masa komputerka - jakikolwiek by on był. Jeżeli zakładamy, że inwerter jest czarną skrzynką o której strukturze wewnętrznej nic nie wiemy a Ty nie zdecydujesz się (na własną odpowiedzialność) połączyć/zewrzeć minusów wszystkich paneli razem, to de facto masz do zmierzenia 4 napięcia "pływające" tj. nie mające wspólnego poziomu odniesienia. To z kolei oznacza, że każdy z czterech układów pomiarowych musi zdejmować napięcie jakby był niezależnym multimetrem "wiszącym w powietrzu" - jak typowy miernik trzymany w ręku. Ty jednak chcesz mieć (a w zasadzie musisz) jeden wspólny minus - nazwijmy go GND, bo na końcu jest jakiś komputerek. No i teraz masz kilka opcji:

  • Znajdujesz układ analogowego przeniesienia "pływającego" napięcia do potencjału odniesienia GND. To robi się na tzw. transoptorach analogowych i wzmacniaczach operacyjnych. Jak już masz odniesione wszystkie cztery napięcia do wspólnej GND, pomiar jednym wspólnym przetwornikiem A/C (np. wbudowanym w procesor) jest trywialny.
  • Znajdujesz tani moduł jednokanałowego (bo więcej nie potrzeba) przetwornika A/C, który po stronie cyfrowej wypluwa dane szeregowo. Najwygodniej gdyby sam to wysyłał w postaci zegara i danych, ale może to być standardowe SPI z zegarem dostarczanym z komputerka. Takich rzeczy jest mnóstwo, ale Ty musisz do tego jeszcze dospawać moduł izolacji galwanicznej, przenoszący dane cyfrowe z poziomu minusa panelu (bo względem niego mierzysz i tam jest masa modułu pomiarowego) na poziom GND komputerka. To może być gotowy moduł izolatora SPI a możesz kupić coś w budowie DIP16 i sklecić samemu.

https://www.tme.eu/pl/details/mikroe-2583/plytki-rozszerzajace/mikroelektronika/spi-isolator-click/

  • Znajdujesz moduł wielokanałowego przetwornika A/C z izolacją wszystkich kanałów od siebie. To najwygodniejsze, bo jeden klocek załatwia wszystko, ale najdroższe i najrzadsze. Nawet jeśli można kupić tzw. "isolated analog inputs" to zwykle jest to izolacja po stronie cyfrowej, a wszystkie wejścia analogowe mają wspólną masę - to nie wystarczy i tego nie chcesz.

Spróbuj przeczytać ze zrozumieniem co napisałem, może narysuj to sobie i podejmij jakąś decyzję albo.. zadaj kolejne pytania pomocnicze.

Pomiary prądów - jak już pisałem - to sprawa stosunkowo prosta, bo tam izolacja nie jest problemem.

Zauważ: gdyby nie problem osobnych "minusów" paneli, sprawa sprowadziłaby się do zakupu 4 modułów pomiaru prądu, kilku oporników do dzielników napięcia, podłączenia 8 linii analogowych do wejść Arduino i na drugi dzień mógłbyś się zająć pisaniem programu pokazującego wyniki np. na wyświetlaczu.

  • Lubię! 1
  • Pomogłeś! 1
Link to post
Share on other sites
(edytowany)

@marek1707 Kurde, chyba się porwałem z motyką na słońce. Brzmi to skomplikowanie, jak dla mnie. Początkowo myślałem, że to nie będzie jakoś ekstra trudne, bo kupiłem sobie na próbę miernik tablicowy taki jak w tym linku i zakładałem, że z pomocą Arduino będę mógł to ogarnąć bez problemu na podobnych zasadach okablowania, czyli trzy przewody wpięte w odpowiednie miejsca każdego panela, szybki odczyt i działa, jednak widzę, że tu jest trochę więcej ceregieli i nie wiem, czy mnie to nie przerośnie. Najwyżej dokupię jeszcze trzy takie mierniki jak w linku powyżej i zabuduję do tablicy a jedynie temperatury sczytam za pomocą DS18B20 + Arduino i wyświetlę. Z tym mikrofalownikiem jest tak, jak piszesz - poniżej fotka w załączeniu - że jest to skrzynka w hermetycznej, metalowej obudowie, do tego sporo kosztuje i jest objęta wieloletnią gwarancją, którą oczywiście utracę jeśli zacznę coś z nią kombinować. Więc raczej się nie zdecydują na łączenie do wspólnej masy wszystkich paneli, bo nie wiem jak to może wpłynąć na falownik. Bardzo dziękuję Ci i doceniam Twoje zaangażowanie w ten mój projekt, ale chyba mam zbyt mały zasób wiedzy żeby ogarnąć to, co mi wypisałeś w poprzednim poście. Muszę się zdecydowanie podszkolić w elektronice, żeby się porywać na takie rzeczy, bo też nie chodzi o to żeby komuś zajmować czas i zmuszać żeby mnie prowadził za rękę. Zagadnienia typu pływające napięcie, transoptory, moduły jednokanałowe itd. mimo, że nie są mi całkiem obce, to jeszcze trzeba znać ich dokładne właściwości, zastosowanie i wpływ na układ, w którym mają się znaleźć, żeby wiedzieć jak je wykorzystać. Jeszcze raz bardzo dziękuję za pomoc.

yc1000.jpg

Edytowano przez pisiorek
Link to post
Share on other sites

Jeszcze nie składaj broni, może nie jest tak źle. Znalazłem gotowe, analogowe izolatory z wbudowanym zasilaniem strony wejściowej. DFRobot (więc nie będzie to najtańsze) zrobiło coś własnego i sprzedają jako moduł:

https://botland.com.pl/pl/konwertery-pozostale/9529-dfrobot-gravity-izolator-sygnalu-analogowego.html

https://www.dfrobot.com/product-1621.html

Układzik jest prymitywny: mały procesorek mierzy napięcie wejściowe i zamienia je na PWM, sygnał prostokątny o zmiennym wypełnieniu jest przenoszony na stronę "wtórną" przez zwykły transoptor cyfrowy gdzie filtr analogowy zamienia to z powrotem na napięcie. Wybór metody i rozwiązania sprawia, że jest to koszmarnie wolne. W danych mamy czas odpowiedzi 4s, ale nie podają co to znaczy, tj. do jakiej wartości błędu dociąga wyjście po zmianie wejścia o ileśtam. Wydaje mi się, że w Twoim przypadku nawet i te 4 sekundy były by do przełknięcia. Zatem musiałbyś kupić 4 takie moduły, na wejściu każdego z nich wstawić dzielnik tak policzony, by spodziewane maksymalne napięcie panelu nie dawało więcej jak 4.5-4.8V na wyjściu dzielnika (bo moduł mierzy maks. 5V). Po stronie wyjściowej masz już zatem 4 napięcia do zmierzenia swoim Arduino (czy tam wstawisz). Do tego bierzesz 4 moduły pomiaru prądu - kupujesz izolowane i z nich też dostajesz 4 napięcia. Wszystkie 8 modułów zasilasz z jakichś dobrych 5V. Jeśli komputerek także da się z tego napędzić, to masz jeden prosty zasilacz. Sygnały dla przetwornika A/C są w tym rozwiązaniu w zakresie 0-5V więc musisz mieć taki, który to łyknie. Zwykłe Arduino 5V radzi sobie z tym bez problemu, ale już co lepsze/szybsze płyteczki na STM32, ESP to już tylko do 3.3V. No a Malina to o ile pamiętam w ogóle wejść analogowych nie ma. Można oczywiście dawać 8 kolejnych dzielników napięcia, ale być może wyjściem byłoby użycie jednego, wielokanałowego przetwornika A/C zasilanego z 5V i umiejącego po stronie cyfrowej pracować z sygnałami 3.3V. Od biedy możesz nawet kupić goły scalak i coś sklecić na płytce uniwersalnej.

Weź to narysuj i przymierz się do kosztów.
 

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

@marek1707 Super, bardzo ucieszyło mnie to co piszesz Marku. Koszty są do przełknięcia, czego się nie robi dla nauki :). Czas opóźnienia na wyjściu danych z modułów DFRobot też nie jest żadnym problemem, pomiar może być realizowany nawet raz na 15 sekund. W celu doprecyzowania tego, o czym piszemy i czy czasem błędnie czegoś nie zrozumiałem, narysowałem coś a'la schemat, daleko temu do prawdziwego schematu, no ale do pokazania tego jak to widzę, to chyba wystarczy. Narysowałem to tylko dla dwóch ogniw ale reszta jest oczywiście powtarzalna. Bardzo CIę proszę abyś zweryfikował to co teraz opiszę i ewentualnie skorygował moje rozważania. Rozumiem, że dzielniki muszą być tak dobrane, aby ogarnąć napięcie do poziomu max 4,8V na wejściu do izolatorów DFRobot Gravity, za izolatorami mamy już napięcia na bezpiecznym dla Arduino poziomie i tu już zbieramy wszystkie masy GND, łączymy je np. na wspólnym dla wszystkich zacisku pomiarowym, napięcie na wyjściu z izolatorów też już możemy zmierzyć za pomocą wbudowanych pinów ADC z Arduino więc nie trzeba dodatkowych modułów np. INAxxx. Teraz pomiar prądu realizujemy z pomocą bocznika, mierząc spadek napięcia na rezystorze bocznikowym (za pomocą dodatkowego sensora) i wyliczamy z prawa Ohma w programie wartość natężenia lub mierzymy modułem amperomierza połączonego równolegle z bocznikiem i odczytujemy te wyniki w Arduino. Tutaj również wszystkie masy sensorów do pomiarów natężenia mamy wpięte we wspólną masę GND. Ostatnia sprawa, to kwestia zasilenia dla całego układu pomiarowego (Arduino, izolatory, moduły pomiaru prądu) - tutaj wszystko podpinamy do wspólnego zasilacza i tej samej masy. Kwestia komunikacji i wysyłania danych do sieci to kolejny etap, którym teraz nie zawracam sobie głowy. W załączniku jest schemat, na którym mniej więcej pokazałem jak to rozumiem. Proszę o wszelkie uwagi. 

pomiar_schemat.jpg

Link to post
Share on other sites

O, świetnie, że jednak probujesz dalej. Koncepcję jak widzę rozumiesz - to jest ta beczka miodu. A teraz przejdźmy do dziegciu:

Wspomniane izolatory, po stronie wejściowej (od panelu) mają trzy piny:

  • Power_Output - tego nigdzie nie podłączasz, to jest zasilanie +5V izolowane od Arduino i gdyby układ był bardziej rozbudowany (np. musisz postawić jakiś czujnik, nie wiem, ciśnienia w zbiorniku na żywca podłączonym do fazy sieci 230VAC, który to czujnik oddaje napięcie w granicach 0-5V) to wtedy bardzo by mu się takie zasilanie przydało. W przypadku pasywnego dzielnika żadne zasilanie nie jest mu potrzebne.
  • Analog_Input - to tutaj ma przyjść "środek" dzielnika.
  • GND - izolowana masa, to na niej ma "stać" dzielnik swoim dolnym opornikiem i tutaj dopinasz minus panelu. Górny opornik rzecz jasna podpięty do plusa panelu.

Musiałeś się bardzo spieszyć, bo wydawałoby się prosty schemat pomiaru napięcia od strony panelu jest skopany. 

Czujniki prądu także muszą być izolowane i nie ma mowy byś użył metody zbierania napięcia z opornika pomiarowego. Musisz wybrać moduły pracujące na zasadzie pomiaru pola magnetycznego. Już je wskazałem wcześniej. Użyte tam scalaki potrzebują blisko przebiegającej ścieżki z prądem, w niektórych wykonaniach wchodzi ona wręcz do wnętrza chipu normalnie przez nóżki. Blisko drogi prądu umieszczony jest z definicji "bezdotykowy" czujnik pola magnetycznego (tzw. hallotron), który oddaje malutkie napięcie proporcjonalne do natężenia i kierunku pola. Reszta scalaka to wzmacniacze i układy kompensacji temperaturowej, bo układy tego typu są niestety czułe na temperaturę. No i na wyjściu dostajesz napięcie proporcjonalne do prądu, ale bez żadnego kontaktu elektrycznego z "badanym" przewodem. Złą informacją jest to, że wszystkie popularne moduły działające na powyższej zasadzie są dwukierunkowe. W Twojej aplikacji to zupełnie zbędne więc od razu tracisz połowę dokładności, bo zamiast mieć zakres napięcia 0-5V (na cały zakres mierzonego prądu) dostaniesz połowę tego. W zależśności jak podłączysz kable prądowe będziesz korzystał albo z zakresu 0-2.5V albo z 2.5-5V. W drugiej połowie prąd musiałby płynąć w drugą stronę, a raczej rzadko inwerter wpycha energię do panelu.. Ale jak się ma co się lubi, to się lubi co się ma. Chyba nie masz wyjścia. Pisząc program warto pamiętać, że punkt "zero" każdego modułu prądowego jest tylko w okolicy połowy zasilania i może się od tych umownych 2.5V trochę różnić. Dlatego po zmontowaniu i włączeniu wszystkiego (jeszcze bez dołączonych paneli) będziesz musiał skalibrować wszystkie linie pomiarowe przynajmniej w dwóch punktach. Napięciowe np. w 10V i 40V a prądowe w punkcie 0A i przy jakimś większym prądzie, najlepiej pod koniec zakresu modułu.

Rysuj kolejny, poprawiony schemat. Możesz ograniczyć się do jednego panelu, bo po stronie Arduino wszystko wydaje się OK.

Zastanów się nad sposobem zasilania całości, bo te izolatory biorą jakieś absurdalne (jak na spełnianą funkcję) ilości prądu. A jak jeszcze dojdzie jakiś wyświetlacz, moduł WiFi czy ethernetowy, to typowe USB może nie wyrobić.

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

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.