INA Spannung/Leistungsmessung korrekt einstellen

eRacoon

Active member
Moin Zusammen,
mich begleitet schon seit Beginn an, dass bei meinem Mäher die angezeigte Spannung und Leistung ziemlich nach dem Mond geht.
Hab mir das Thema eben nochmal angeschaut weil ich mal testen wollte ob es was bringt die IOREF Spannung in der Config.h anzupassen wie in einem anderen Thread vorgeschlagen, aber auch da komme ich nicht auf passende Ergebnisse.

Als Referenz gilt mein Labornetzteil und Multimeter die sich beide ziemlich einig sind, erst ab der zweiten Nachkommastelle kann es da mal leicht schwanken.
Getestet wurde das mit verschiedenen Spannungen, aber Ergebnisse sind grob immer gleich.

Das Labornetzteil steckt mit einem 2,5mm² direkt auf dem PCB, also da kann kein Spannungsabfall in der Höhe stattfinden.

Angegeben daher der ausgelesene Messunterschied am Roboter/Sunray, genutzt wurden die Serial Monitor Werte da hier 2 Nachkommastellen angezeigt werden.
Getestet hab ich IOREF 3.31 bis 3.35, bei 3.35 bekomme ich zwar Spannung und Leistung unter Last halbwegs angepasst aber im IDLE geht dann die Leistung komplett nach dem Mond. Last bedeutet ~1A mit laufendem Messer.

IOREF 3.3 (default)
IDLE Spannung: -0,5V
Last Spannung: -0,6V

IDLE Leistung: -0,2A
Last Leistung: -0,5A (MINUS)

IOREF 3.35
IDLE Spannung: -0,1V
Last Spannung: ~0V

IDLE Leistung: +0,6A (PLUS)
Last Leistung: ~0A

Gibt es noch irgendeine andere Stelle wo ich den INA kalibrieren bzw. das Offset anpassen kann?
Die diversen Overload Werte für den Mower als Beispiel sind ja komplett nutzlos wenn er bei "nur" 1A Leistungsaufnahme schon -0,6A daneben liegt, das dürfte bei höherer Leistung vermutlich immer schlimmer werden.

Sprich wenn ich als Overload 2A eintrage dann schaltet er vermutlich erst ab 3A+ irgendwo ab, das hat eventuell auch dazu beigetragen dass sich mein Mowmotor vor paar Wochen quasi aus dem Gehäuse geschmolzen hat.

Wobei ein simples Spannungsoffset hier keine Lösung ist, weil die Leistung unter Last deutlich stärker abweicht, wir reden hier ja mal eben von 0,5A bei 29V... also fast 15W, das kommt ja nicht von einem Voltage Offset von 0,5V.

Vermutlich würde ich mit IOREF auf 3.35V aber aktuell besser fahren weil dann wenigstens die Last Werte halbwegs passen könnten, im IDLE ist dann halt Mondleistungsaufnahme.
Weiß aber nicht ob IOREF nicht noch auf andere Sachen schlechten Einfluss hat.
Beim Laden hab ich ähnliches Voltage Offset Verhalten, die angezeigte Spannung passt nicht und den Battery Full Wert kann ich daher eher nur so grob schätzen.


Irgendeine weitere Idee?
Habt ihr das bei euch mal nachgemessen bei einem PCB1.4?
Mein INA ist gebrückt und daher in der Config.h auf 2.941 gestellt, kann man eventuell da auch etwas rum drehen?
 
Zuletzt bearbeitet:
Did you try this?

You might want to measure your average adc offset for your specific motor board and IOREF.

I get relatively reasonable result at idle, betwen 0.1 and 0.2 amps, sometimes I get 0 though... 0.2 being the real value.
 
So wie ich das sehe, kommen die Ströme im IDLE und unter Last von den Motortreibern und nicht vom INA169.
Der Strom vom INA169 wird wohl nur für das Laden verwendet und meiner Ansicht nach ist das Brücken beim PCB 1.4 nicht mehr notwendig und bringt durch den größeren Faktor von 2.941 einen größeren Fehler mit rein. Hab ich auch nicht mehr gebrückt.
 
Thanks!

I played a bit around with the adcVoltToAmpOfs parameter, first trying your suggested 1.675 and the result was -0.4A @idle... so completely of the limits. 😬
But whatever I tried out with this value the range between idle and load was nearly always the same with ~0.35A... far away from the real difference which should be ~0.75A. So I stayed with the default of 1.65 for the next test.

Next I tried to change the value of the parameter adcVoltToAmpScale which is next in the config and the range was getting better and better.
When I change that value which is default at 7.57 to a (crazy) amount of 14.4 I get really good readings.
Now the difference between idle and load is matching perfect, tried this with different mow motor speeds and I always get a value which is only -/+ 0.05A off.

Could this be possible, that the JYQD maybe need a value which is nearly as double as the default value or is there something else off?
I think the nearly double value is directly connected to the readings at default, because there I only get around 1/2 of the correct current reading.

My voltage is still around -0,5V away, not sure what I should change to get an accurate value here.


meiner Ansicht nach ist das Brücken beim PCB 1.4 nicht mehr notwendig
Ich lade mit einem 4A Netzteil, daher ist der gebrückt.
 
Zuletzt bearbeitet:
For the voltage you need to change IOREF, nothing will break with that, its just a multiplier for the ADC readings.
You could measure the voltage at some pin and compare it with what sunray spits out and change IOREF accordingly, otherwise 3.35 seems close enough.
Once you have your IOREF then you mess with current readings since those depend on IOREF.

My understanding is that you get accurate readings at load with 3.35 IOREF because you no longer get negative values so it averages correcly, at idle this is not so.
 
Zuletzt bearbeitet:
IOREF 3.353
JYQD.adcVoltToAmpOfs = -1.677;
JYQD.adcVoltToAmpScale = 14.4;

With this values I get a nearly perfect measurementat at higher voltages like >28V, only get some small diffs with +/- 0.01 at both voltage and current.
At lower voltages like >23V, the measurement drifts a bit more and is -0,05 to -0,08 below the real values, but still perfectly fine.

Started mowing right now and the first values in the app seems way more realistic.
In the past I mostly had ~1A to 1,3A while mowing... which should be unrealistic when already the mower in my garage with only the mow motor enabled without grass needs already 1.05A.

Now I'm seeing values more in the 1.5 to 2.5A area.

Thanks for your help!
Will take an eye on those values in the future but so far it seems way better than before.
 
Zuletzt bearbeitet:
Charging stops now @ 28.3V as full.
The target charging voltage in config.h is configured with 28.8V.
So the higher IOREF seems to cause some charging diff too.
I will just try to raise the target voltage a bit.
 
Oben