Ik ben bezig met het maken van een RC controller en heb via een coulomb counter een lipo SOC "gemaakt". Nu klopt dit niet altijd helemaal (batterij kan leeglopen met esp32 uit etc) dus ik wil graag als extra controle meten of het voltage overeen kan komen met de SOC die ik zelf bereken. Dit wil ik doen met alleen de accu spanning en niet het voltage inclusief de lader die misschien is aangesloten. Ik wil dus een mosfet gebruiken die standaard (als de esp32 uit staat) de accu laat opladen maar dat de esp32 tijdelijk de lader kan overbruggen, "meten" en de lader weer opnieuw kan aanzetten. Volgens mij heb ik daar een PNP mosfet voor nodig. Weet iemand of mijn idee zo kan en of er een bordje op alie ofzo is wat ik direct kan gebruiken? Ik heb wel een aantal bordjes met een LR7843 liggen maar die schakelt standaard dus "uit" ipv dat hij standaard stroom doorlaat.

Dat kan inderdaad met een P-Channel Mosfet. S aan de + van de battery, D naar de te voeden schakeling. De mosfet schakelt 'aan' als de de Gate naar massa trekt, (dus negatief tov S). Ofwel EPS uit is mosfet aan.

Voor kleine toepassingen zou ik dan een AO3401 gebruiken, maar er zijn veel andere. Wel eentje kiezen met een lage gate-thresshold want veel mosfets hebben niet genoeg aan 3V3.

Aanvulling:
Misschien wil de batterij niet meewerken. De batterij-spanning is doorgaans een slechte indicator voor de ladings-toestand van de batterij.

[Bericht gewijzigd door deKees op (17%)]

Ik weet dat voltage niet de beste manier is maar, of ik snap de coulomb counter niet helemaal, of ik doe iets anders fout. De coulomb counter telt op bij laden en af bij verbruik, maar dat gaat van 65535 tot 0. Daarna begint hij weer op 65535 (bij ontladen). Ook ligt het aan de prescaler hoever hij aftelt dus soms komen de getallen niet meer overeen met de telling. En ik heb een 6000ma accu maar als ik op 65535 begin en hem leeg laat lopen, kom ik kwa soc niet overeen met wat hij daadwerkelijk gebruikt heeft. Ohja, ik wil hem ook graag uitschakelen bij 6.6v uit veiligheid. Daar houdt de ltc2944 ook geen rekening mee

Volgens mij, ik weet het niet zeker, telt de coulomb counter in 'mijn' 'officiële' BMS-chipjes niet tot 0 of maximum waarde, maar baseert dat op basis van gegevens van maximum capaciteit en dergelijke. Dit ook zodat er 'onder 0' en 'over maximum' geteld kan worden zodat het ding weet hoe het ervoor staat.

Ik ben digitaal niet zo'n geweldenaar, maar 0 en 65535 aanhouden als uitersten klinkt als een heel slecht plan.

Let op dat je dit soort zaken heel goed moet kalibreren. Wat weerstand tussen cellen en buitenwereld kan je meting al in de war schoppen en ook een FET tussen cellen en buitenwereld kan met z'n Rdson al afwijkingen veroorzaken. Mede daarom mag (nou ja, het wordt afgeraden) ik de BQ-chipjes niet kalibreren met de FET in serie, dat moet buiten de FETs om gebeuren, zolang de meetweerstand maar mee doet is het goed.

Een meetweerstand die 2 of zelfs 5 procent afwijkt of een sterk verloop kent met oplopen van de temperatuur schopt ook van alles in de war.

Ik kan via de chip de ruwe acr ophalen. Die waarde is vanuit de chip gegeven en loopt af bij ontladen. Als de waarde 0 is krijg ik erna weer 65535 terug. Andersom ook. Als de waarde in de chip (ltc2944) 65535 is en de accu hangt aan de lader dan krijg ik erna weer 0 terug, 1, 2… etc.

Ik ben in code nu met allemaal eigen logica de state of charge aan het bepalen maar ik weet niet of ik de juiste structuur pak. Daarbij kan ik het volgens mij ook niet bij een nieuwe lipo bepalen aangezien de chip dan helemaal niet weet hoe leeg of vol de accu is. Of ik die iets totaal fout

Als de waarde 0 is krijg ik erna weer 65535 terug. Andersom ook. Als de waarde in de chip (ltc2944) 65535 is en de accu hangt aan de lader dan krijg ik erna weer 0 terug, 1, 2… etc.

Dat kan op zich wel kloppen. Dat heet 2's complement. 65535 in een 16-bit teller is hetzelfde als -1.

Wat ik nu doe is laden en zodra de accu opgeladen is de waarde geforceerd op 65535 zetten. Dat is 100%. Dan tijdens ontladen markeren wanneer de cellen op 6.6v zijn. Stel hij is tot 45838 acr teruggelopen, dan markeer ik dat als “lowAcr”. Dat is dus 0% en 65535 is 100%. Alles ertussenin is linear n%. Klopt dit?

Enige wat ik niet kan weten is de initiele soc. Vandaar dat ik dat via voltage wil proberen te achterhalen. Dat moet dan zonder lader omdat dat het voltage beinvloed

Waarom een nieuw topic ? In dit topic staat al heel veel info.

https://www.circuitsonline.net/forum/view/170935

Omdat dit topic eigenlijk over een andere vraag ging (npn mosfet) maar door de extra uitleg en vragen komt het idd overeen met het andere topic

Kan ik deze ook gebruiken? Die is wat groter en makkelijker aan te sluiten om mee te testen

IRF4905PBF

IRF4905PBF? Niet erg geschikt. Wel sterk genoeg, maar de gate thresshold is 2 .. 4V. Dus als je pech hebt dan heb je een exemplaar die pas bij 4V begint te geleiden.

Op dinsdag 24 februari 2026 21:46:23 schreef bbuster:
Wat ik nu doe is laden en zodra de accu opgeladen is de waarde geforceerd op 65535 zetten. Dat is 100%. Dan tijdens ontladen markeren wanneer de cellen op 6.6v zijn. Stel hij is tot 45838 acr teruggelopen, dan markeer ik dat als “lowAcr”. Dat is dus 0% en 65535 is 100%. Alles ertussenin is linear n%. Klopt dit?

Nee. Voor jezelf mag je het wel lineair noemen als je dat wil, maar in de praktijk zal het allesbehalve lineair zijn omdat de ontlaadcurve van elke celchemie ook sterk verschilt. Sommige duiken sterk naar beneden bij eerste ontlaadstroom, om dan lang redelijk vlak te blijven en ineens weer sterk te zakken tot het punt waarop de cel leeg is.

Andere chemische samenstellingen hebben een meer lineair verloop, maar omdat je bij ontladen normaliter met een constante stroom werkt om de juiste capaciteit te bepalen, zal de spanning steeds rapper dalen. De BQ-chips die ik gebruik moeten met 2000 mA ontladen worden tot het punt waarbij het fully-discharged (FD) bit geset wordt. In de praktijk is er dan 2% of minder van de totale capaciteit over.

Daarna moet er weer geladen worden tot het Fully Charged bit (FC) geset wordt, in de praktijk 98% en hoger van totale capaciteit geladen.

Hou ook rekening met chemische rust! Na laden of ontladen is het raadzaam om te wachten met ontladen respectievelijk laden. Dit omdat de cellen chemisch nog niet tot rust gekomen zijn. Hoewel er hier geen berekening en capaciteits-update plaatsvind (waarbij de chemische rust echt noodzakelijk is) kan het je eigen metingen wel beïnvloeden.

Maar eerlijk gezegd snap ik, na nog eens lezen van de openingspost, niet geheel wat je probeert te bereiken: als de accu leegloopt door je esp, zou je coulomb counter dat moeten merken, die weet immers niet beter dan de spanningsval over de meetweerstand in de gaten te houden.
Je krijgt daarnaast alle info die je wil weten per SMbus aangeboden: ook de state of charge dus...

Op dinsdag 24 februari 2026 21:46:23 schreef bbuster:
Enige wat ik niet kan weten is de initiele soc. Vandaar dat ik dat via voltage wil proberen te achterhalen. Dat moet dan zonder lader omdat dat het voltage beinvloed

Een begintoestand achterhalen aan de hand van de klemspanning is notoir onbetrouwbaar. De interne weerstand van de cel(len) speelt mee, net zoals de toestand: direct na ontladen is de toestand geheel anders dan direct na laden. In het eerste geval zal de spanning mogelijk hogere zijn dan als je een uurtje wacht, in het tweede geval waarschijnlijk lager dan na een uur.

Dat is dus ook exact mijn "probleem".
Het hoeft niet 100% nauwkeurig te zijn maar ik zou het wel fijn vinden als ik een relatief betrouwbare accu soc kan bepalen.

Het is namelijk als accu in een RC zender. De accu is uit een oude DJI remote die al een jaar of 5 op zolder lag. Op de accu staat 6000mA maar ik verwacht dat er minder is overgebleven door het lange liggen.

Ik heb met een load van ongeveer 350mA a 400mA (wat het ook uiteindelijk blijft) getest en de zender blijft nu ongeveer 12 a 14 uur aan. Meer dan voldoende voor wat ik nodig heb dus de accu is voor mij nog prima te gebruiken.

Aangezien ik wil laten zien wanneer de zender (accu) opgeladen moet worden ben ik aangeraden de coulomb counter (LTC2944) te gebruiken. Ik kan hier bij mijn weten geen actuele SOC achterhalen, alleen de ACR die omlaag of omhoog loopt (tijdens ontladen omlaag, bij laden omhoog). Maar... die waarde is relatief t.o.v. de initiele waarde die ik geef. Zet ik bij het opstarten de waarde op "full", dan heeft hij op dat punt 65535. Ga ik doorladen, dan gaat hij weer vanaf 0 beginnen en optellen. Dat idee is uiteraard prima aangezien ik de accu kan laden tot de lader stopt met laden, dan zet ik de acr op 65535 en zou het moeten kloppen. Echter is deze waarde niet altijd 100% identiek. Laat ik de accu leeglopen (en ik wil de zender bij 6.6v uitzetten ipv wachten tot de bms uitvalt), dan geeft hij nog aan dat er 1450mA in de accu zit en ik nog 24% overheb bijvoorbeeld. Pas ik de volledige capaciteit aan naar 4200mA ipv 6000mA bv werkt het hele soc weer anders. Ik kom niet goed weg met het uitlezen van een redelijk nauwkeurige SOC. Mocht de BMS de accu ooit loskoppelen dan heb ik het volgende probleem, de LTC2944 gaat dan naar de middenwaarde (65535 / 2). Dat klopt dus nooit in mijn geval en ik kan dan op geen enkele manier bepalen wat de SOC van de accu zou moeten zijn, behalve te "gokken" op voltage. Dat kan ik weer niet doen als de lader eraan hangt aangezien het voltage dan weer hoger is dan dat van de accu zelf, vandaar dat ik in dat geval de lader wil overbruggen, dan het geschatte SOC wil bepalen aan de hand van het voltage, daar de ACR op instellen en dan de lader weer wil inschakelen. Het zijn veel omwegen maar ik snap niet hoe ik anders een goede SOC kan bepalen

PS, sorry voor mijn lange verhaal, ik hoop dat het nog enigszins duidelijk is.

Ik weet niet of het kan maar het topic mag ook samengevoegd worden met "1S Battery fuel gauge op 2S lipo", het gaat nu veel over hetzelfde