Evtl. wird der offset falsch berechnet. Versuch mal folgendes:
Im Code der defaults.h Datei die Zeile:const uint16_t ACS_U_offset = V_REF/8.33;
durch die ersetzten:const uint16_t ACS_U_offset = float(V_REF)/8.33;
oder:const uint16_t ACS_U_offset = 396;
Das ist leider nicht das Problem. Ich habe es ausprobiert und es ist alles so geblieben.
Dann habe ich mir mal die vom Arduino selbst an A0 gemessene Spannung anzeigen lassen. Der misst 387 mV. (Das Multimeter hat diesmal 3,301 V als Vcc und 0,3941 V als Ausgangsspannung des Stromsensors angezeigt.)
Wenn ich die als Offset eingebe, erhalte ich auch einen Strom von 0,0 A angezeigt und die verbrauchte Kapazität bleibt bei 0.
Prozentual ist die Abweichung ja gar nicht so schlecht (ca. 1,8%), was bei Hobbymessgeräten ja alles klar innerhalb der zu erwartenden Toleranzen liegt.
Zumal mir im Datenblatt noch aufgefallen ist, dass Allegro die Sensoren ja für 5V abstimmt, und zur Genauigkeit bei 3,3V keine Angaben macht, sondern nur dass man diebezüglich seinen "local Sales Representive" kontaktieren solle. Vermutlich ist die Genauigkeit hier also nicht so gut.
Eigentlich ist für 3,3V ja auch die ACS759 Reihe vorgesehen. Nur die sind leider nicht so breit verfügbar. (Bei Aliexpress gibt es nur ein Angebot für 10 Stück ACS759-100B für 28,05 Euro, aber so viele brauche ich nicht. Und bei Digikey kostet einer 6,75, aber da lohnt sich das Bestellen auch erst ab 50 Euro).
Dazu kommt ja noch, dass die 100A Version natürlich einen relativ großen Faktor hat, um aus der Spannung, die der Sensor ausgibt, den Strom zu berechnen. Kleine Fehler in der Spannung führen also absolut zu recht großen Fehlern beim Strom.
Mit kleinen Fehlern kann ich ja generell leben, aber wenn die Kapazität merkbar in negative Richtung geht (der Akku also scheinbar wieder voller wird), dann negiert das jeglichen Sicherheitsgewinn durch die Telemetrie.
Auch wenn ich natürlich lieber einen Sensor hätte, den ich einfach nur zusammenlöten und programmieren muss, fürchte ich, dass man um die Kalibrierung jeden einzelnen Sensors doch nicht drum rum kommt. Und das geht nun mal über die Jetibox komfortabler, als über den Quelltext.
Eine Sache ist mir noch aufgefallen: Ich habe den Sensor mal direkt an eine Jetibox profi drangehängt. Da bietet er mir aber nur die (vermutlich) ersten 6 der 22 Messwerte an: die ersten 3 heißen einfach nur "parameter" und liefern auch keinen Wert (an dem Sensor habe ich auch kein GPS, entsprechend ist es deaktiviert), dann kommen "Rel. Altit", "Altitude" und "Vario", die auch ordentliche Werte liefern, und danach ist der Screen voll und weitere Parameter habe ich nicht mehr zur Auswahl.
Kommt die Jetibox profi generell nicht mit mehr als 6 Werten pro Sensor klar?
Es wäre halt zum Testen schon praktisch, wenn man den Sensor mit allen Werten über die Jetibox profi auslesen könnte, und nicht jedes Mal eine Funkstrecke aufbauen muss.
Beste Grüße,
Lutz