Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Miernik pojemności akumulatorów żelowych 12V na Arduino NANO

Darek0026 25 Dec 2020 18:06 4107 9
Altium Designer Computer Controls
  • Cześć, jestem w trakcie budowy prostego miernika jak w temacie.
    Miał być to projekt na jeden wieczór, na potrzeby sprawdzenia paru akumulatorów które mam w "szufladzie". W zasadzie mógłbym powiedzieć że jest zakończony gdyż spełnia swoją funkcję.

    Przyszło mi jednak na myśl, by rozbudować to do czegoś zdatnego do użytku również dla innych. Szukałem na forum i jest dosyć niewiele na temat pomiaru pojemność.
    A to co jest wydaje się skomplikowane lub zbyt prowizoryczne.
    Chciałbym więc dołożyć coś, swoją cegiełkę.

    Zasada działania opiera się na pomiarze czasu rozładowania akumulatora stałym prądem, nie zależnym od napięcia na jego zaciskach. W moim przypadku rozładowuje akumulatory prądem 500mA. Stały prąd uzyskałem przez zastosowanie balastu w postaci stabilizatora liniowego 5V którego obciążyłem rezystancją 10R.

    Skoro wiadomo że jeżeli w pełni naładowany akumulator obciążymy prądem 0.5A i wytrzyma to obciążenie przez np 10h to wiadomo że jego pojemność równa jest 5Ah.

    Oczywiście koniec pomiaru jest wtedy gdy napięcie na zaciskach akumulatora spadnie do 10.5V. Musi być on wykonany w stałej temperaturze, u mnie było to 21 stopni.

    Do wykonania pomiaru konieczne jest wcześniejsze naładowanie akumulatora do pełna.

    Co mam zrobione teraz:

    Miernik pojemności akumulatorów żelowych 12V na Arduino NANO

    Tak wygląda złożona płytka działającego prototypu, proszę się nie czepiać rezystorów oraz użytych elementów. Wlutowałem rezystory 2W bo akurat innych nie miałem a pozostałe elementy zostały użyte gdyż takie miałem pod ręką. W kolejnej wersji do której już zamówię elementy użyje tranzystora MOS Logic Level, więc dodatkowe tranzystory będą zbędne.

    Jak układ działa po uruchomieniu:

    W pierwszej kolejności po uruchomieniu wyświetlana jest wersja softu oraz wynik ostatniego pomiaru, który również jest wysyłany przez UART do komputera.

    Miernik pojemności akumulatorów żelowych 12V na Arduino NANO

    Następnie oczywiście przy wyłączonym balaście jest sprawdzane napięcie akumulatora, jeśli jest powyżej 15V układ wyświetla błąd "Battery voltage error!". Ten sam komunikat wysyłany jest do komputera oraz miga czerwona dioda podłączona do D13 w Arduino NANO.

    Jest to ważne gdyż załączenie obciążenia przy omyłkowo podłączonym np 24V spowodowało by spalenie elementów balastu.

    Z1 zabezpiecza port uC przed zbyt wysokim napięciem.

    Jeżeli wszystko jest ok, załączane jest obciążenie a na ekranie pojawia się aktualna wartość napięcia, czas w sekundach oraz na bieżąco obliczana pojemność cząstkowa.

    Dodatkowo w tym samym czasie wysyłane jest do PC wartość napięcia akumulatora oraz czas, by można było sobie zrobić w exelu ładny wykres rozładowania. ;)

    Foto poniżej:

    Miernik pojemności akumulatorów żelowych 12V na Arduino NANO

    Miernik pojemności akumulatorów żelowych 12V na Arduino NANO

    Miernik pojemności akumulatorów żelowych 12V na Arduino NANO

    Jeżeli napięcie na akumulatorze spadnie do 10.5V pomiar zostaje zakończony a obciążenie odłączone za pomocą IRF540 i towarzyszących mu elementów.
    Zaczyna migać w/w czerwona LED sygnalizując koniec pomiaru, którego wynik jest widoczny na ekranie, zostaje on zapisany również do EEPROM by odczytywać po uruchomieniu.

    Pomiar napięcia odbywa się za pomocą dzielnika rezystancyjnego którego elementy powinny być o tolerancji max 1% zresztą tak samo jak rezystory 5W w obciążeniu:
    Miernik pojemności akumulatorów żelowych 12V na Arduino NANO

    Także urządzenie działa ale jest to wersja beta/początkowy prototyp bardziej rozbudowanego sprzętu który jest w budowie.

    Finalnie ma to być pełen automat ze zintegrowaną ładowarką oraz różnymi trybami pracy np:

    1) rozładowanie, naładowanie do pełna, ponowne rozładowanie z pomiarem pojemności, naładowanie ponowne do poziomu 13.8V,

    2) tylko ładowanie,

    3) tylko rozładowanie

    4) 3 razy rozładuj i naładuj + pomiar pojemności każdorazowo.

    Dodatkowo regulacja prądu ładowania oraz napięcia zakończenia ładowania i
    rozładowania, sygnalizacja dźwiękiem itd.

    No wiecie taki mini kombajn do pomiaru akumulatorów głównie 7Ah 12V




    Pozostałe zdjęcia oraz film z działania układu:

    Miernik pojemności akumulatorów żelowych 12V na Arduino NANO


    Miernik pojemności akumulatorów żelowych 12V na Arduino NANO Miernik pojemności akumulatorów żelowych 12V na Arduino NANO Miernik pojemności akumulatorów żelowych 12V na Arduino NANO Miernik pojemności akumulatorów żelowych 12V na Arduino NANO Miernik pojemności akumulatorów żelowych 12V na Arduino NANO

    Coś nie działa dodawanie filmów więc filmów nie będzie ;)

    W załączniku wszystko co do tej pory zrobiłem tzn pliki KiCad z gotowym projektem PCB oraz soft.

    Ustawiam prowizję na pliki bo chcę widzieć licznik pobrań.

    Udostępniam projekt gdyż chętnie poczytam co na ten temat myślicie i jakie macie sugestię.
    Nie wiem czy ten beta projekt nadaje się wgl na ten dział ale jak coś to proszę o przeniesienie w dobre miejsce.
    Proszę pamiętać że nie zajmuje się tym profesjonalnie a projektowanie to moje hobby.

    Cool? Ranking DIY
    Do you have a problem with Arduino? Ask question. Visit our forum Arduino.
    About Author
    Darek0026
    Level 28  
    Offline 
    Has specialization in: Automatyka do bram i szlabanów, serwis drukarek/ks
    Darek0026 wrote 744 posts with rating 193, helped 139 times. Live in city Warszawa. Been with us since 2016 year.
  • Altium Designer Computer Controls
  • Helpful post
    #2
    khoam
    Level 42  
    Darek0026 wrote:
    Pomiar napięcia odbywa się za pomocą dzielnika rezystancyjnego którego elementy powinny być o tolerancji max 1%

    Sądzę, że spokojnie mógłbyś dać rezystory o 10 razy większej wartości rezystancji w tym dzielniku (mniejsze obciążenie akumulatora). Impedancja wejściowa ADC w atmega328 to ok. 100 MΩ, a mierzysz w miarę stałe napięcie, a nie szybko zmieniające się.
  • Altium Designer Computer Controls
  • Helpful post
    #3
    TechEkspert
    Editor
    Ciekawy pomysł na urządzenie do badania akumulatorów.
    Dodałbym regulowane skokowo obciążenie prądowe (można wykorzystać typowy układ sztucznego obciążenia rezystor pomiarowy + wzmacniacz operacyjny + napięcie odniesienia).

    Można dodać osobne przewody prądowe i osobne do pomiaru napięcia, wtedy można zrobić funkcję pomiaru rezystancji wewnętrznej akumulatora.
  • #4
    zgierzman
    Level 31  
    Darek0026 wrote:
    Stały prąd uzyskałem przez zastosowanie balastu w postaci stabilizatora liniowego 5V którego obciążyłem rezystancją 10R.


    1)
    Dla LM7805 warto uwzględnić moc jaka się na nim wydziela.
    Dla 10,5 V na akumulatorze (koniec testu) na stabilizatorze odkłada się 5,5 V. Daje to 2,75 W wydzielanej mocy w postaci ciepła.
    Dla 13 V na akumulatorze, na stabilizatorze odkłada się 8 V, daje to 4 W wydzielanego ciepła.

    Ja przerzuciłbym więcej mocy do rezystorów, a mniej grzał stabilizator. Gdyby zastosować LM7809 i inne rezystory, to byłoby odpowiednio 0,75 W i 2 W na stabilizatorze.

    Niestety, grzanie rezystorów też ma swoje wady, o czym będzie w punkcie 2).
    Oczywiście można zrobić odwrotnie, i większość ciepła wydzielać na stabilizatorze liniowym, np 3,3 V, ale one nie do tego zostały zaprojektowane.

    Z losowo wybranego datasheeta dla LM7805 w obudowie TO-220 można wyczytać: "Continuous Total Dissipation at Ta=25ºC free air Temperature = 2 W" i bardzo rozsądnie zastosowałeś radiator.
    Oczywiście przy zastosowaniu radiatora dopuszczalna moc strat rośnie, ale trzeba uważać jaki radiator się zamontuje, i uwzględnić też wpływ przyszłej obudowy. Rezystancja cieplna takiego układu nie może być zbyt duża, bo niektóre (wszystkie?) te stabilizatory mają zabezpieczenie termiczne, i odcinają obciążenie do czasu ostygnięcia wewnętrznej struktury. Więc jeśli nie mierzysz spadku napięcia na tych rezystorach 10Ω, albo w inny sposób nie mierzysz tego prądu, to nie wiesz, czy Twoje pół ampera rzeczywiście płynie. A to może grubo zafałszować wynik pomiaru. Będziesz cieszył się, że pokazało 7 Ah, a w rzeczywistości może to być 5,5 Ah. :-(

    2)
    Inna historia to taka, że rezystory mają swoją rezystancję nominalną przy nominalnej temperaturze. Wraz z ich rozgrzewaniem rezystancja ta się zmienia, więc prąd rozładowania także będzie się zmieniał. Warto byłoby zastosować aktywny układ obciążenia, o czym wspominał @TechEkspert, albo mierzyć prąd i uwzględniać te wahania. Inaczej wskazania obarczone będą błędem. I tu także dojdzie do zawyżania wskazań, bo zakładasz że prąd jest stały, ale prąd maleje. I to maleje wyraźnie.
    Rezystory 10Ω 5W 1% to mrzonka. W tej klasie można dostać tylko do wartości 250 mΩ
    https://www.tme.eu/pl/katalog/rezystory-5w_10...329%2C138%2C328&mapped_params=39%3A1819327%3B
    a jeśli gdzieś je znajdziesz, to będą kosztowały krocie. I to jest kolejny argument za zastosowaniem aktywnego obciążenia.

    3)
    Nie rozumiem sygnałów opisanych jako PWR_FLAG. Występują w kilku miejscach schematu, a opisane są tak samo. Możesz wyjaśnić o co chodzi?

    Miernik pojemności akumulatorów żelowych 12V na Arduino NANO
  • #5
    varaktor
    Level 18  
    Jaką to ma precyzję pomiaru? Uwzględniając referencje ADC, układ pomiarowy itp. w całym zakresie temperator.
    Wejście ADC jest niepoprawnie zabezpieczone diodą Zenera - tak się nie robi. Daj diodę Schottky do +5V i drugą do masy.
  • #6
    Darek0026
    Level 28  
    varaktor wrote:

    Wejście ADC jest niepoprawnie zabezpieczone diodą Zenera - tak się nie robi. Daj diodę Schottky do +5V i drugą do masy.


    Cześć,

    Dlaczego tak się nie robi? Nie ma ona żadnego znaczenia do chwili gdy napięcie podłączone do wejścia przeznaczonego na akumulator nie przekroczy około 15,3V.

    varaktor wrote:

    Daj diodę Schottky do +5V i drugą do masy.


    Czy mógłbyś podesłać jakiś schemat swojej propozycji?

    Pozdrawiam
  • #7
    khoam
    Level 42  
    Darek0026 wrote:
    Dlaczego tak się nie robi? Nie ma ona żadnego znaczenia do chwili gdy napięcie podłączone do wejścia przeznaczonego na akumulator nie przekroczy około 15,3V.

    W układach, gdzie na wejście MCU przychodziłby sygnał o większej częstotliwości, stosowanie diody Zenera byłoby niewłaściwe ze względu na jej stosunkowo dużą pojemność. W Twoim układzie nie ma to znaczenia,
  • Helpful post
    #8
    varaktor
    Level 18  
    [quote="Darek0026"]
    varaktor wrote:


    Czy mógłbyś podesłać jakiś schemat swojej propozycji?

    Pozdrawiam


    Tutaj obrazek numer pięć: https://www.digikey.com/en/articles/protecting-inputs-in-digital-electronics
    Diody Zenera mają duży rozrzur produkcyjny napięcia Zenera i może się zdarzyć że uszkodzisz wewnętrzną diodę zabezpieczającą. Zobacz jak wygląda wewnetrzna struktura pinu ATMEGA (bo chyba taki tam jest użyty):

    http://ww1.microchip.com/downloads/en/DeviceDoc/doc2503.pdf

    Strona 49, Figure 22. I/O Pin Equivalent Schematic. Tam już są diody tylko one mogą przewodzić mały prąd i łatwo je uszkodzić, dlatego daje się większe diody na zewnątrz układu. Gdzies pewno w datasheet jest napisany maksymalny prad jaki moze wplywac/wyplywac z pinu i to jest wlasnie limit ktory musi byc utrzymywany. U Ciebie pewno bedzie on ograniczony rezystorami w dzielniku, ale warto to sprawdzic.
    Do tego napięcie Zenera rośnie z temperaturą nawet 20mV/*C więc 20*C roznicy (o co latem latwo) daje 0.4V w gore.
  • #10
    Darek0026
    Level 28  
    zgierzman wrote:
    Nie rozumiem sygnałów opisanych jako PWR_FLAG. Występują w kilku miejscach schematu, a opisane są tak samo. Możesz wyjaśnić o co chodzi?


    Cześć,

    Ten znacznik PWR_FLAG to jakaś informacja dla kontroli ERC by nie wywalało błędu, elektrycznie to chyba nie ma znaczenia. Znacznik ten nie oznacza że te piny są połączone oczywiście. Jeśli przykładowo odłączę go od +BATT to wywala taki komunikat błędu:

    Miernik pojemności akumulatorów żelowych 12V na Arduino NANO

    Może jest tu jakiś znawca KiCad-a co zna inne rozwiązanie tego problemu, chętnie się dowiem.

    ================================================================

    Miernik pojemności akumulatorów żelowych 12V na Arduino NANO

    Miernik pojemności akumulatorów żelowych 12V na Arduino NANO

    Dziękuje wszystkim za odpowiedzi, w załączniku dokończony soft oraz nieco poprawiona PCB.
    Nie przewiduje już żadnych poprawek w temacie.
    Attachments: