Skocz do zawartości

Pomocna odpowiedź

Napisano

Hej.

W swoim projekcie już dwa razy głęboko rozładowałem akumulator i chciałem się upewnić że więcej się to nie wydarzy. Pracuję nad układem monitorującym napięcia akumulatora, żebym mógł podczas pracy maszyny je obserwować i przerwać pracę w razie konieczności. Okazało się to jednak zadaniem trudniejszym niż się spodziewałem. Najpierw chciałem mierzyć to za pomocą esp32 c3 super mini i dzielnika napięcia, jednak dokładność tego rozwiązania była nieakceptowalna. Poczytałem, że ADC w esp nie jest szczególnie dobre, ale też nie wiem czy mój dzielnik nie wprowadzał dodatkowych zakłóceń. Interesuje mnie dokładność do 0,1V. Dlatego zakupiłem moduł INA226. Podłączyłem do esp, komunikacja przez i2c działała, ale nie chciało mierzyć i ciągle pokazywało zera. Testowałem różne konfiguracje podłączeń do akumulatora, i kiedy wypróbowałem podłączenie +akumulatora do IN+ i -akumulatora do IN- i GND modułu z elementu R100 poszedł dym. Zanim zamówię kolejny moduł, chcę wiedzieć co robię źle, i czy może jest jakaś prostsza metoda rozwiązania tego problemu, bo jestem pewien że ktoś już tego przede mną próbował, tylko nie umiem do tej informacji dotrzeć.

Wszystkie wskazówki mile widziane,

pozdrawiam.

(edytowany)
18 godzin temu, AntekBezak napisał:

Poczytałem, że ADC w esp nie jest szczególnie dobre, ale też nie wiem czy mój dzielnik nie wprowadzał dodatkowych zakłóceń. Interesuje mnie dokładność do 0,1V.

100mV Vpp? Zależy od rozmiaru akumulatora, przy 12.6V daje to jakieś 32j przy przetworniku 12b i 8j przy przetworniku 10b. Mało realne, by Ci się to udało sensownie zrobić (chyba, że używasz mniejszego napięcia).

Musisz też pamiętać, że napięcie akumulatora nie spada liniowo z jego stopniem rozładowania.

18 godzin temu, AntekBezak napisał:

Testowałem różne konfiguracje podłączeń do akumulatora, i kiedy wypróbowałem podłączenie +akumulatora do IN+ i -akumulatora do IN- i GND modułu z elementu R100 poszedł dym.

Nawet jak tam dałeś akumulator 3.6V to przy 0.1R jest to 36A... P = I^2*R = 36*36*0.1 = 130W, co raczej przekracza możliwości rezystora, który jest tam zamocowany.

18 godzin temu, AntekBezak napisał:

Zanim zamówię kolejny moduł, chcę wiedzieć co robię źle, i czy może jest jakaś prostsza metoda rozwiązania tego problemu, bo jestem pewien że ktoś już tego przede mną próbował, tylko nie umiem do tej informacji dotrzeć.

Czarodziej ethanak gdzieś to opisywał w jednym ze swoich postów i kilka razy linkował przy pytaniach na forum. Poszukaj to może trafisz.

Edytowano przez H1M4W4R1
  • Lubię! 1
12 minut temu, H1M4W4R1 napisał:

100mV Vpp? Zależy od rozmiaru akumulatora, przy 12.6V daje to jakieś 32j przy przetworniku 12b i 8j przy przetworniku 10b. Mało realne, by Ci się to udało sensownie zrobić (chyba, że używasz mniejszego napięcia).

Mówiąc "dokładność do 0,1V" miałem na myśli że nie potrzebuję więcej miejsc po przecinku w wyniku. Zakres to będzie mniej więcej od 11V do 13V, akumulator mam 12V. Chcę widzieć kiedy zejdzie poniżej 11,8V żeby wiedzieć że czas już kończyć, nieliniowość w rozładowywaniu akumulatora mi na razie nie przeszkadza.

16 minut temu, H1M4W4R1 napisał:

Czarodziej ethanak gdzieś to opisywał w jednym ze swoich postów i kilka razy linkował przy pytaniach na forum. Poszukaj to może trafisz.

Dzięki, poszukam.

Nie szukaj - mam nową wersję, jeszcze ne publikowałem, rano wrzucę.

BTW do tego celu przetwornik w ESP32 wystarczy, tylko trzeba to zrobić zgodnie z dokumentacją.

1 godzinę temu, ethanak napisał:

Oczywiście funkcja jest dla akumulatorów LiPo

A ja mam akumulator AGM. Rozumiem, że żeby ją do tego dostosować muszę swoją tabelkę zrobić? I wtedy przez dzielnik napięcia odczytywać mv, wrzucać do tej funkcji i dostanę procenty. Dobrze zrozumiałem?

I czy nie lepiej użyć arduino pro micro?

Po pierwsze źle podłączyłeś INA, u mnie spokojnie mierzy napięcie z akumulatora Parkside. Jeśli nie mierzysz prądu to po prostu in+ i in- razem do plusa aku (bedziesz miał 0 A), a jeśli chcesz mierzyć większe prądy to kup rezystor bocznikowy (np. 75mV/10A) i przelicz sobie w programie. Na 100% zadziała lepiej niż wszelkie Arduina i inne C3. 

Co do tabelki - jeśli znajdziesz wzór dla agm to możesz go użyć, jeśli nie - znajdź najdokładniejszą tabelkę (np. co 5%) i uprościj sprawę zakładając, że w obrębie tych 5% zależność jest liniowa.

Bym zapomniał - program który tworzy tabelkę według wzoru:

#!/usr/bin/env python3

#tu wzór
def pc(v):
    return int(100/99.0 * (123 - 123 / ((1 + (v/3.7)**80)**0.165)))

      lt = 0
als = []
for i in range(3000,4201):
    a=pc(i/1000.0)
    if a > lt:
        lt=a
        #print (a,i)
        als.append(i)
s=[]
for i,n in enumerate(als):
    a=str(n)
    if i % 10 == 0:
        a='\n    '+a
    s.append(a)
print ('{'+(','.join(s))+'};')

Pisany "na kolanie", ale w sumie ma przejść raz, wygenerować tabelkę i tyle jego.

  • Lubię! 1
3 godziny temu, ethanak napisał:

Po pierwsze źle podłączyłeś INA, u mnie spokojnie mierzy napięcie z akumulatora Parkside. Jeśli nie mierzysz prądu to po prostu in+ i in- razem do plusa aku (bedziesz miał 0 A), a jeśli chcesz mierzyć większe prądy to kup rezystor bocznikowy (np. 75mV/10A) i przelicz sobie w programie. Na 100% zadziała lepiej niż wszelkie Arduina i inne C3. 

Czyli IN+ i IN- do +akumulatora i GND do -akumulatora? Bo w sumie najbardziej mi pasuje kupić drugi INA, tylko obawiam się że nie będę umiał znowu podłączyć i znowu go ubiję.

@AntekBezak dokładnie tak - in+ i in- są do pomiaru prądu. A następnym razem nie baw się w bohatera wierszyka Brzechwy* tylko zajrzyj do dokumentacji modułu zanim go popsujesz.

---

*) Mucha

 

  • Lubię! 1
  • 2 tygodnie później...

Zrobiłem układ z drugim INA226 i ostatecznie działa, aczkolwiek zadziałało dopiero podłączenie VBS na module do +akumulatora i GND na module do -akumulatora. W moim przypadku rozwiązanie proponowane przez ethanaka nie działało. Dodatkowo, jeśli kod pokazuje 0V to należy się upewnić że piny SCL i SDA są poprawnie zdefiniowane w kodzie, ja miałem z tym problem. To tak dla potomnych.

Dziękuję kolegom @ethanak i @H1M4W4R1 za zaangażowanie w rozwiązywanie problemu.

Pozdrawiam

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...