Skocz do zawartości

Pomiar napięcia 3 cel baterii na Arduino bez dzielnika napięcia.


mati557

Pomocna odpowiedź

Na początku chciałem się przywitać, jestem nowy na tym forum 🙂

Elektroniką zajmuje się hobbystycznie jak i studiuje w tym kierunku.

Mam pewien problem, mianowicie chce zbudować urządzenie oparte na Arduino Uno Rev3 na ATmega 328p, które będzie miało baterię Li-pol 11.1V z wyprowadzeniem na 3 cele z pomiarem każdej celi osobno.

Bateria wygląda tak na schemacie:

Mój pierwszy pomysł:

Jednak tu pojawia się problem wiecznie płynącego prądu przez te dzielniki napięcia co nie jest szczęśliwym rozwiązaniem. Postanowiłem więc zrobić to jeszcze inaczej:

W tym rozwiązaniu wykorzystałem tranzystor do załączenia masy. Gdy układ jest wyłączony przez dzielniki napięcia nie płynie żaden prąd, w chwili włączenia prąd zaczyna płynąć, ekonomiczne rozwiązanie myślę.

Problem w tym, że tranzystor trochę będzie "pływał" w zależności od temperatury i napięcia zasilania, więc taką możliwość widzę jako ostateczną.

Ostatnim pomysłem jaki przyszedł mi do głowy jest pomiar bezpośredni na ADC Arduino, jednak nie mam żadnej pewności do tego dlatego zakładam ten wątek. Mianowicie gdzieś wyczytałem że owy procek ma jeden przetwornik ADC, a te wejścia są realizowane za pomocą multipleksera, i teraz pytanie czy ten multiplekser ma wspólną masę? Bo jeżeli nie, to wydaję mi się że można z 3 cel zrobić 6 wyjść, podpiąć do ADC każdy osobno i napisać program który by to sobie wyliczał. Zasada działania to 3 punkty odniesienia i 3 punkty pomiarowe. Co o tym myślicie, jest to do zrealizowania czy robię duży błąd w myśleniu?

Z góry dziękuję za jakiekolwiek odpowiedzi 🙂

Link do komentarza
Share on other sites

Nie chcę Cię martwić, ale dzielniki to wcale nie taki zły pomysł.

Zacznijmy od układu z tranzystorem - wcale nie zmniejsza on prądu pobieranego z akumulatora, przecież cały czas każda cela jest zwarta przez 2 lub 4 rezystory. Inna sprawa, że wyłączenie tranzystora spowoduje pojawienie się napięcia z akumulatora na ADC i śmierć Arduino...

W kolejnym układzie są dwa problemy - ADC ma wspólną masę, bo i względem czego miałby mierzyć? Mógłbyś co prawda pomierzyć napięcia na kolejnych celach (względem tej samej masy), a później odjąć wyniki, ale ten układ podaje pełne napięcie 12V na biedny mikrokontroler i nie będzie czym mierzyć ani odejmować.

A dzielnik jest prosty i skuteczny - co więcej możesz dać duże rezystory, powiedzmy 1M/3M3 i pobór prądu nie będzie takim problemem.

Link do komentarza
Share on other sites

Okej, tylko jaka jest rezystancja wewnętrzna ADC? Nie można dać przecież za dużych rezystorów na dzielniku bo nie zmierzy nam tego napięcia, chyba że się mylę. Dla tego co piszesz 3.3M i 1M prąd wyniesie 0.00000093A co daje 0.93uA dla jednej celi czyli tyle co nic przy pojemności 2.2Ah 😋 Racja nie wziąłem pod uwagę tego co będzie jak tranzystor nie zostanie wysterowany...

Link do komentarza
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

Pierwszy pomysł jest trywialny i to jego zaleta. Aby niepotrzebnie nie rozładowywać ogniwa prądy dzielników muszą być małe - to jasne. Producent procesora podaje typową rezystancję wejściową pinów analogowych ok. 100MΩ. Wydaje się dużo, ale rezystancja dzielnika rzędu 1M może wprowadzać już błąd rzędu 1%. Jaki prąd będzie pobierał cały system? Bo jeśli np. 10 lub 100mA to walka o uA dzielników nie ma sensu.

Tak jak napisał Elvis, przetwornik tego typu co w ATmegach pobiera prąd w czasie próbkowania napięcia, tuż przed konwersją. Podłącza wtedy do wejścia swój kondensator a źródło zewnętrzne musi go w tym - dość krótkim - czasie zdążyć przeładować do "swojego" napięcia. Dlatego sam wysokooporowy dzielnik nie jest dobrym pomysłem i kondensator rzędu min. 1-10nF jest obowiązkowy. To oczywiście oznacza filtr RC ograniczający pasmo sygnału. W przypadku pomiarów akumulatora to nie przeszkadza.

Pomysł z tranzystorem tak umieszczonym jest bez sensu, bo każde ogniwo jest i tak zawsze obciążone prądem dwóch dzielników a poza tym, przy wyłączonym tranzystorze, męczysz wejścia Arduino wysokim napięciem z cel. Żeby to zrobić dobrze, musiałbyś wstawić cztery tranzystory PMOS w każdą gałąź odchodzącą od akumulatora (przed dzielnikami) i włączać je czymś z otwartym kolektorem/drenem ciągnącym do masy. Rezystancja kanału takiego włączonego tranzystora nawet marnego, rzędu omów, ma się nijak do dziesiątek kΩ w dzielniku. Wtedy włączasz konkretny dzielnik (lub wszystkie na raz) tylko wtedy gdy potrzebujesz mierzyć a napięcia ogniw uzyskujesz przez odejmowanie wyników. Robiłem tak, działa. Wadą jest to, że rozdzielczość pomiarów kolejnych coraz wyższych ogniw spada wraz ze wzrostem podziału dzielnika. Trzeba dobrze skalibrować każdy dzielnik zdejmując na gotowym systemie współczynniki przeliczeniowe dla każdego wejścia osobno.

Multiplekser ma wspólną masę z całym procesorem. Na piny ATmegi nie możesz podawać napięć przekraczających jej Vcc więc pomysł z bezpośrednim podawaniem 12V odpada. A przecież względem GND procesora(?), Twoje Vcc2 właśnie tyle wyniesie.

Link do komentarza
Share on other sites

Dlatego własnie chciałem zapytać o opinie forumowiczów.

Zatem sprawa ma się następująco: układ docelowo będzie pobierał prąd rzędu 2A, dlatego chce zrobić monitor baterii taki, aby wyłączył całe zasilanie układu przy samej baterii, w momencie pojawienia się na którejś z cel napięcia mniejszego niż 3.2V. Mimo że próg bezpieczny to 3V, założyłem pewną tolerancję samego dzielnika i rozdzielczości pomiaru, dlatego ta wartość będzie optymalna.

A poradziłem sobie z tym w ten sposób:

Kiedy układ jest wyłączony, tranzystory nie są sterowane, przez dzielniki prąd nie płynie. Włączamy i pojawia nam się napięcie na tranzystorach i docelowe na poszczególnych wyjściach.

Myślę, że takie rozwiązanie mi wystarczy, choć jest trochę przekombinowane.

Link do komentarza
Share on other sites

Rany 😥 I Ty mówisz że co? Że studiujesz elektronikę? Za takie rzeczy to w technikum elektronicznym banowali (przynajmniej za moich czasów). Popatrz: zrobiłeś trzy wtórniki emiterowe. Każdy z nich odda na wyjściu (na emiterze) dokładnie tyle ile mu zapodasz na bazę minus 0.6V. Taki układ pracy tranzystora ma głęboko gdzieś napięcie zapodane na kolektor. Jeśli będziesz sterował bazy z procesora 5V, na emiterach dostaniesz zawsze 4.3-4.4V.. Na dodatek T3 będzie ładował z tego sygnału "swoją" celę przez opornik bazowy i złącze B-C, a emiter ma nieobciążony. Weź się w garść i narysuj trzy PMOSy sterowane jak napisałem.

Link do komentarza
Share on other sites

Ja jeszcze przyczepię się braku kondensatora przy ADC - dając całkiem spore rezystory przy dzielniku 330k/680k może być za mało prądu do naładowania układu pamiętającego przetwornika w czasie otwarcia klucza, efekem są paskudne odczyty. Poza tym nie łatwiej dać tylko te rezystory?

Link do komentarza
Share on other sites

Nie sprecyzowałem, sterowanie tranzystorów idzie z zasilania, czyli 12V, po spadku około 11.4 + dzielnik da mi to czego chce, co do kondensatorów przy ADC racja, powinienem je dodać.

A cały układ kombinuje w ten sposób, ponieważ bateria ma być zainstalowana w urządzeniu i ma być wyprowadzone jedynie złącze do ładowania tej baterii. Dlatego wolę to zrobić w ten sposób, bo jak będzie zasilanie wyłączone to bez tego pobierany byłby prąd przez dzielniki napięcia. Dodatkowy włącznik przy dzielnikach odpada, dlatego zrobiłem to na tranzystorach.

Dziękuję za pomoc i udzielone odpowiedzi i podpowiedzi, temat uważam za zamknięty.

Link do komentarza
Share on other sites

Skoro uważasz, że już wszystko zrobione to ok - tylko napisz, czy nie pojawiły się jakieś niespodzianki.

Przykładowo jeśli podasz 12V na bazy tranzystorów, to nawet bez akumulatora uzyskasz wynik 11.4V na ścieżce prowadzącej do ADC2 - w pozostałych po prostu usmażysz procesor. Pamiętaj, że złącze baza emiter zachowuje się jak zwykła dioda, więc o co narysowałeś raczej nie zadziała. Ale to zawsze ciekawe sprawdzić i opsiać jak wyszło w realnym układzie 🙂

Link do komentarza
Share on other sites

Zawsze mnie zadziwiają tacy ludzie. Skąd oni się biorą? Jakieś prania mózgu im na tych studiach robią (bo to nie pierwszy tu przypadek) czy jak? Przecież to jak grochem o ścianę.

mati, wszystko jedno czy sprecyzowałeś czy nie, przyjrzyj się, to niewiele zmienia. Twój nowy układ jest tak samo chałowy jak te poprzednie. Co jest gorsze, przyznać się do błędu, czy brnąć dalej i udawać że wszystko jest OK? Jeśli nie wierzysz w to co napisałem a nie masz jak widać intuicji i wiedzy, to może przepuść to przez jakiś symulator czy coś? Takie narzędzia są dziś darmowe a nawet online'owe.

Przecież sterowanie z 12V jest jeszcze gorsze, bo musisz zrobić na dodatek driver (musisz się postarać by sam nie ciągnął prądu przy wyłączonych tranzystorach T1-T3, masz jakiś pomysł?) a prąd z bazy przepływa już w dwóch tranzystorach (T2 i T3) przez ich załącza B-C ładując bez sensu w trakcie pomiaru akumulator. A jak chcesz zmierzyć tą metodą najwyższe ogniwo (T1)? Przecież nie wysterujesz bazy powyżej najwyższego zasilania jakim dysponujesz? Skoro wejście procesora ma 100MΩ to gdzie popłynie prąd emitera T3? To tranzystor bipolarny, działa na prądach, jak chcesz go włączyć gdy przez złącze B-E nic nie popłynie. Procesora nie spalisz, ale.. włącz myślenie.

Jeśli boisz się MOSFETów (lub boisz się przyznać, że sobie z nimi nie radzisz), zrób to na pnp. To słabe, bo przy pomiarach nie powinieneś bazować na napięciach złącz, ale lepsze to niż ten Twój wygłup z wtórnikami. Tylko spróbuj narysować i pomyśleć jedną minutę, nie każę Ci tego robić:

- weź pnp i podłącz: emiter do któregoś odczepu akumulatora, kolektor do dzielnika stojącego na masie a bazę do opornika

- drugi koniec opornika do kolektora npn, jego emiter na masę a do bazy przez opornik sygnał z procesora.

Dzięki temu masz oba tranzystory pracujące w układzie OE. Pnp załączany jest prądem bazy wypływającym do kolektora npn. Na włączonym pnp masz w trakcie pomiaru zawsze napięcie nasycenia, które przy małym prądzie dzielnika można uznać za pomijalne albo zawsze je dodawać do wyniku. To działa tak samo dla każdego odczepu akumulatora i nie robi tej bzdury z zapętlaniem 12V do aktualnie mierzonego ogniwa przez opornik bazowy i złącze B-C.

Rozumiemy po co to wszystko robisz, tylko że akurat ten pomysł będzie działać źle. Nie chowaj głowy w piasek tylko pokaż, że umiesz myśleć i analizować układy na papierze a nie kombinować i przebudowywać po zmontowaniu jak domorosły hobbysta. Albo.. nie, może jednak to zrób, po tym co napisałeś nie chce mi się gadać i szczerze mówiąc nie spodziewam się odpowiedzi z sensowną, przekonującą analizą tego układu.

  • Lubię! 1
Link do komentarza
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.