Elektroda.pl
Elektroda.pl
X
BotlandBotland
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Arduino - pomiar napięcia na każdej celi lipo 16s

11 Mar 2015 21:38 1779 6
  • Poziom 10  
    Witam

    Snuję plany budowy komputerka do ebike opartego o arduino.
    Jedną z funkcji ma być odczyt napięcia na każdym ogniwie akumulatora lipo 16s.
    Napięcia są rzędu 48v - rozładowany , 67,2v - naładowany.
    Chciałem aby komputerek wraz z lcd 128x64 ze względu umieszczenia na kierownicy był możliwie najmniejszy i połączony minimalną ilością przewodów stąd pomysł zawarcia całości elektroniki pomiarowej bezpośrednio przy ogniwie i połączenia i2c.

    Podstawowe założenia elektroniki pomiarowej:
    -dokładność pomiaru - max błąd 0,02v
    -koszt - max 50zł (bez arduino, lcd i reszty niezwiązanej z pomiarem)
    -niewielki rozmiar

    Myślę nad tym już od miesiąca i nic sensownego mi do głowy nie przychodzi.

    Jednym z pomysłów - najprostszym - wydawało się zastosowanie 4x przetwornik a/d PCF8591 (cena ok 1usd szt.) przy baterii i komunikacja i2c. Jednak po głębszej analizie minimalna rozdzielczość przetwornika musi wynosić 12bit, a takie nie mieszczą się w budżecie (ok. 7usd szt.). Przy zastosowaniu PCF8591 błąd pomiaru wyniesie min. 0,32v ze względu na rozdzielczość 8bit i konieczny dzielnik napięcia 1/16)

    Bardzo proszę o sugestie i pomysły jak rozwiązać ten problem.

    Pozdrawiam
  • BotlandBotland
  • BotlandBotland
  • Poziom 10  
    dondu napisał:

    W jakim celu aż taka dokładność pomiaru?


    Głównie ze względu na wrażliwość ogniw lipo na przeładowanie jak i nadmierne rozładowanie. Przyjmuję dodatkowo, biorąc pod uwagę wpływ temperatur (-20 ~ +50) i tolerancję elementów, że przy teoretycznej dokładności 0,02v uzyskam 0,05v rzeczywistej.
    Przeładowanie lipo już o 0,1v drastycznie skraca żywotność, natomiast o 0,3v-0,4v zamienia całą baterię w tykającą bombę.

    Zapomniałem dodać, że układ będzie rozwojowy - na chwilę obecną ma monitorować parametry baterii i dbać o jej kondycję, w przyszłości będzie również odpowiedzialny za sterowanie ładowarką automatyczną i balansowanie ogniw.
  • Moderator Mikrokontrolery Projektowanie
    Z AVR 12-bitowe ADC mają np. XMEGA. AVR ATMega z Arduino mają max 10-bitowe ADC. Stosując oversampling zapewne uzyskasz potrzebną rozdzielczość pomiaru. Pamiętaj tylko, aby użyć zewnętrznego źródła referencyjnego, gdyż potrzebujesz nie tylko dużej rozdzielczości ale także dokładności pomiaru. Swoją drogą, do kontroli ładowania lipo produkowane są dedykowane układy, biorąc pod uwagę ryzyko i cenę akumulatorów nie wiem czy ma sens ryzykowanie budowy w oparciu o MCU oprogramowany przy pomocy Arduino.
  • Poziom 10  
    Faktycznie, nie pomyślałem o oversamplingu - kwestia do przeanalizowania w wolnym czasie.
    Źródło ref to oczywiście podstawa - będzie zewnętrzne.
    Co do innych AVR niestety pomysł odpada gdyż arduino jest jedynym językiem jaki znam, elektronika to tylko hobby - z zawodu jestem budowlańcem.
  • Moderator Mikrokontrolery Projektowanie
    Arduino to nie język, jeśli ogarniasz C++, którego używa Arduino to ogarniesz programoweanie i bez tego frameworku. To co chcesz zrobić jest naprawdę proste, bez Arduino zrobisz to nawet szybciej, a z pewnością lepiej - przejrzyj blog mikrokontrolery.blogspot.com i zawarte tam przykłady obsługi ADC. Powodzenia.
  • Poziom 10  
    Czy temat udało się jakoś rozwiązać z pomocą Adruino? Lub nie Arduino?