OXSENS OpenXSensor - Strom und Spannungssensor-neu aufgelegt

Miss-Lynn

Erfahrener Benutzer
#1
Hi zusammen
Da der alte Thread zu diesem Thema geschlossen ist muss ich hier halt das thema noch mal neu aufrollen.
Mich würde mal interessieren ob und wie ihr einen Stromsensor aufgebaut habt. Und ob ihr den zusätzlich zu, sagen wir, einem GPS mit Baro wie schon öfters beschrieben im Modell habt. Die wenigen Bilder aus dem alten Thread kenn ich. Ich wollte mir den Stromsensor zusätzlich mit ins E-Modell bauen um mir den Stromverbrauch auf dem Sender in Prozent ansagen zu lassen. Wie sich aber zeigt hat das (Lantian oder ähnliches) Modul ne richtig besch....ne Form so dass man da gar keine ausreichend dicken Kabel anlöten kann um bis 100 A messen zu können. (Die beiden Lötäugelchen sind schon niedlich für einen 100 A Sensor.) Entweder steht das Modul quer in der Leitung oder ich muss dünnere Kabel nehmen um den längs zu löten. Möchte aber nicht riskieren daß mir mein Modell abbrennt weil die Kabel zu dünn sind. Dann braucht man auch noch minimum XT60 besser XT90 Stecker für Ströme über 50 A oder andere entsprechende "Klopper" von Steckern. Das ganze soll dann zwischen Akku und Regler noch irgendwie reingefriemelt werden.
Das ganze Gerödel trägt ziemlich auf und past eigentlich gar nicht mehr zusätzlich in den Rumpf. Deshalb interessiert mich wie ihr das gelöst habt, falls ihr so einen Sensor betreibt.

Gruss erstmal Stefan
 
#2
Moin,
nimm eine Feile und plätte die Unterseite des Lantan. Dann ist nix im Weg und man kann die Kabel z.B. in T-Form führen und mit einem Kabelbinder zugentlasten. Die Größe kann so auch gleich reduzieren.
Abbrennen wird so schnell nichts bei halbwegs soliden Kabeln. Der Durchmesser des Akkukabels ist ein guter Anhaltspunkt für die Auswahl. Und es gibt Online-Rechner für den Kabelwiderstand.
Aber jedes Einschleifen bringt zusätzliche Fehlerquellen mit sich. Deswegen messe ich bei LOS nur einmal, dann konnt der Stromsensor wieder raus und ich messe nur noch Spannung.
 

Anhänge

Miss-Lynn

Erfahrener Benutzer
#3
Ahjoo die Pälzer wieder! :LOL:

Das alles hab ich mir auch schon überlegt aber wirklichen Platzgewinn bringt das auch nicht. Bei ner 3 Meter Elektro Extra gibts natürlich kein Platzproblem aber bei den Besenstielen schon. Und nur einmal messen und dann wieder raus damit ist nicht das was ich mir vorgestellt habe. Was meinst du übrigens mit "LOS" (Line of sight?)? Wofür braucht man eine Spannungsmessung im Flug? RXBat angesagt reicht mir.....
Meine Akkukabel sind AWG10 also knapp 6mm² und haben außen schon 5,5mm Durchmesser. Das ist schon happig.
Wo ist denn das zweite Kabel auf deinem Bild?
 
#4
Da hat jeder so seine Vorlieben. Wenn ich einmal den Strom gemessen habe, dann weiß ich, dass der Motor nicht überlastet wird. Der Strom ändert sich nur, wenn man die Hardware ändert. Die Spannung des Antriebsakkus sagt mir dann genügend über die Restkapazität des Akkus aus - bei LOS (Line of sight, genau). Wenn ich FPV mit 2A mit dem Wing cruise, dann ist die Strom-/Kapazitätsmessung sicherer.

Aber zurück zum Thema: Ich habe in schwierigen Fällen auch schon den Spannungsabfall über die Stromkabel gemessen, das braucht kaum Platz und ist ausreichend genau. Mit dem oXs und dem ADS1115 lässt sich das ganz gut machen. Dazu greift man am Minuskabel am Akkuanschluss und am Regleranschluss die Spannung ab. Es reichen winzige Kabel, es fließt ja "kein" Strom.
An 10 cm von deinem 6mm² fallen bei 100A 30mV ab, wenn ich richtig gerechnet habe.
Der ADS1115 löst im 256mV Bereich theoretisch 0,004mV auf, wenn ich richtig gerechnet habe.
Das sollte für eine ausreichende Auflösung der Strommessung dicke reichen, wenn ich richtig gerechnet habe.

Aber das ist Neuland und nix für Nasenbohrer, do missen eschte Pälzer dra - wannd Luschd hoscht, degliniere mers zamme dursch.
Wo ist denn das zweite Kabel auf deinem Bild?
Die Idee war ja, dass Du die dicken Kabel auf der "Rückseite" anlötest. Mein Sensor (100A mit 10mA auflösend mit ADS1115) sah fertig so aus:
1650024073042.png
 

Miss-Lynn

Erfahrener Benutzer
#5
Hi Carbo
Ja klar, kenne mer gern mache, aber am beschde erscht noch de Oschdere. Weil mer kriegen Besuch... die bucklich Verwandschaft........:wow:

Gruss erstmal und Frohe Ostern Stefan
 

Miss-Lynn

Erfahrener Benutzer
#6
Tja so wie es aussieht hat wohl nur Carbo so einen sensor im Einsatz. Da sich sonst keiner zu wort gemeldet hat gehe ich davon aus, dass diese Art von Sensor für die meisten eher uninteressant ist.
Also hak ich das mal ab unter "Funktioniert zwar, braucht aber niemand.

Carbo, lass uns mal die zweite Möglichkeit zumindest "durschdegliniere" damit ich wenigstens weiß wie es geht.

Gruss ertmal.
 

Bussard

Erfahrener Benutzer
#7
... Da sich sonst keiner zu wort gemeldet hat gehe ich davon aus, dass diese Art von Sensor für die meisten eher uninteressant ist.
Zumindest bei mir ist es derzeit so.
Da sich auch in einem engen Motorsegler kleine, wirkungsgradeffektive Motorregler mit allerlei s.Port-Sensorik unterbringen lassen, ohne groß Wärme zu erzeugen (BLHELI aus dem Kopterbereich), ist das Thema bis ~30/ 40A für mich erschlagen.
 

kalle123

Jugend forscht ....
#8
Mir reicht so was hier. oXs mit Vario (MS5611), Strom (hier 20A) und 3S Lipo Spannung.

20220426_074739.jpg

Und so sieht der Stromsensor aus (ACS712/20 modifiziert)

oXs _ACS 712 Sensor_Anschluss.jpg

ACS758/50A hab ich auch gebaut, dann halt mit XT60.

Gruß KH
 
#9
Carbo, lass uns mal die zweite Möglichkeit zumindest "durschdegliniere" damit ich wenigstens weiß wie es geht.
Moin,
auf die Idee bin ich erst durch deinen Post gekommen. Ich bin sehr sicher, dass es funktioniert. Einen proof of conzept (fungdsionierts wirglich) gibt es noch nicht. Das Prinzip ist eigentlich supersimpel. Man nimmt an einem stromführenden Kabel an zwei Stellen die Spannung ab. Jedes Kabel hat einen kleinen Innenwiderstand, das heißt an jedem Teilstück im Stromkreis fällt auch eine kleine Spannung ab, die proportional zum Strom ist.

Diese Differenzspannung wird an einem Differenzeingang des ADS1115 (16-bit A/D Wandler) mit hoher Empfindlichkeit gemessen und passend skaliert direkt als Amperewert übermittelt.

Das ist besonders interessant bei Hochstromanwendungen, wo man ungern Sensoren in den Stromkreis einschleift und bei Wettbewerbsmodellen, wo wenig Platz vorhanden ist. Die Lösung hat den Charme, dass die Sensorkabel superdünn sein dürfen und selbst bei Beschädigung/Kurzschluss der Kabel nix passiert.

Im Prinzip sieht das so aus (das Ausgangsbild habe ich hier abgegegriffen, den Unilog-Kram bitte wegdenken):
1650956068748.png

Man kann natürlich auch an das Akku-Kabel gehen und misst dann den Verbrauch der Empfangsanlage mit. Wichtig ist, dass niemals die Steckverbindung mitgemessen wird. Den Abgleich kann man mit einem Zangenamperemeter machen, die grobe Voreinstellung bekommt man aus der Berechnung des Innenwiderstandes des Kabelstückes bei bekanntem Kabelquerschnitt.
 
#11
Interessanter Hinweis!
Wenn ich richtig rechne, kommt der Ardu auf eine Auflösung von ~1mV bei 1100mV Messbereich bzw. Referenzspannung.
Aber selbst wenn man wirklich einen ADS1015 untergejubelt bekäme, dann hätte der bei 256mV Messbereich noch eine Auflösung von theoetisch 256/4096 = 0,0625mV. Wenn meine Tabelle stimmt, dann könnte der bei 10mm² und 10cm Leitungslänge immerhin noch 1/3A auflösen. Bei einem theoretischen Maximalstrom von ~1400A :) (die sollte man aber mit 10mm² nicht wirklich in Betracht ziehen ;))
Aber ich gebe natürlich zu, das ist alles noch Theorie und muss erst in der Praxis bestätigt werden.
1650968010390.png
 
#12
Der AD1115/AD1015 wird zwar als 16Bit/12Bit Wandler beworben, das gilt aber nur für den Betrieb mit Differenzeingang (+/- Spannung). Da wir normalerweise nur positive Spannungen gegen Masse messen hat man dann nur 15Bit bzw. 11Bit Auflösung. Der AD1015 hat also die doppelte Auflösung des Arduino 10 Bit Wandlers.

Die zu messende Spannung kann man mit einem einfachen Operationsverstärker leicht an die Referenzspannung anpassen.

Hier noch ein Auszug aus dem Datenblatt des AD1115

1650971640305.png
 
#13
Ah OK, dann ist ein bit sozusagen das Vorzeichen. Das nützt hier natürlich nichts. Dann kann man den ADS1015 vergessen und muss darauf achten, den ADS1115 zu bekommen. Die OP-Lösung ist zwar technisch problemlos möglich, aber die Komplexität des Aufbaus nimmt zu und die Nachbausicherheit ab.
Der ADS1115 bekommt nur Power, SDA, SCL und die beiden Sensorleitungen - fertig. Mit der Unterseite pappt man ihn gegen den Arduino. Das bekommen auch Elektroniklaien hin.
 
#14
Ja, der Aufbau mit ADS1115 ist sicher einfacher. Es ist nur nicht so einfach, wirklich die echten Teile zu bekommen. Die 6 Boards, die ich letztes Jahr bei verschiedenen ebay Händlern bestellt habe (u.a. auch so pink farbene wie in deinem Aufbau, Carbo), waren alle Fakes.
Echte Boards gibt's bei Reichelt, aber die kosten dann mindestens 10,- € und sind etwas größer.
 
#15
Hmm, das hat mir jetzt doch keine Ruhe gelassen. Ich hab mal einen Testaufbau gemacht und mit folgenden Einstellungen die Spannung einer gering belasteten Lipozelle gemessen.
Code:
#define ADS_MEASURE A0_TO_A1
#define ADS_FULL_SCALE_VOLT  MV6144
#define ADS_OFFSET 0
#define ADS_SCALE 100
#define ADS_RATE  MS137
#define ADS_AVERAGING_ON 1
Dabei sank die angezeigte Spannung (380,14V) in 20mV Schritten. Durch den 100er Scale sind das tatsächlich 0,2mV. Die 6144mV/0,2mV ergibt rund 30000 Schritte, also 15bit. Demnach habe ich einen ADS1115 - korrekt?
 
#16
Mit OpenXsensor habe ich den ADS1115 noch nicht eingesetzt. Ich hatte damals ein eigenes Programm dafür geschrieben.
Die #define Anweisungen sagen mir im Augenblick nichts, da muss ich mir erst nochmal den openXsensor Code anschauen ...
 
#17
So, ich hab mir den Code mal angesehen und nochmal in's Datenblatt des ADS1115 geschaut.
Ich sehe erstmal 2 Probleme in deiner Konfiguration:
1.) Mit A0_TO_A1 definierst du einen Differenzeingang, wo die Spannung zwischen A0 und A1 gemessen wird. Soll das wirklich so sein? Ich würde eher A0_TO_GND definieren. Das ist dann ein 'normaler' Eingang, der pos. Spannungen gegen Masse misst.
2.) Mit MV6144 definierst du die Spannung für Vollausschlag (0x7FFF) zu 6,144V.
Ich vermute, du versorgst den ADS1115 mit 5V. Der Wandler kann keine höhere Spannung als die Versorgungsspannung messen. Du schöpfst den Messbereich also nicht aus und der max Wert wird 5/6.144*32767=26665 bzw. 0x6829 sein.

Die Formel zur Spannungsberechnung in oXs lautet etwa
U = adcToMvoltScaling * ADCwert * ScaleFaktor
adcToMvoltScaling ist die Referenzspannung/32768, also 6144mv/32768=0,188mV in deinem Fall.

Die von dir beobachtete Abstufung von 20mV spricht also wirklich für einen 15Bit Wandler!
Jetzt musst du noch verraten, wo du den her hast :)
 
#18
Moin, danke für's Mitdenken.

zu 1.) den Test zur Besimmung der Auflösung hätte ich auch mit einem "normalen" Eingang machen können, aber ich habe gleich die Strommessung vorbereitet. Die funktioniert nur mit Differenzmessung, da man ja in dem Fall immer "dazwischen" misst und nicht gegen den absoluten GND.
zu 2.) hier konnte ich den 256mV Messbereich von der Strommessung nicht nehmen, denn die einfachste Lösung für eine ganz langsame Spannungsänderung, die mir einfiel, war eine Lipo-Zelle über 1k zu entladen. Für die Strommessung wird natürlich wieder der 256mV Bereich konfiguriert.

Als oXs um den ADS erweitert wurde, hatte ich mir gleich einen Zehnerblock bestellt. Dieser war vermutlich aus der ersten Lieferung (er ist blau). Das war Mitte 2017 ....
 
#19
Ja, 2017 war die Welt noch in Ordnung ...

Das ist eine gute Idee, mit dem Entladen einer Lipo Zelle über einen 1k Widerstand!
Bei einem Fake ADS1115 bekäme man dann Spannungssprünge von 100*6114mV/2048= 300mV
mit ADS_SCALE 100.
 
#20
Die Art der Strommessung gefällt mir gut. Habe selber noch einige "blaue" ADS1115, aus der der Zeit vor 2018 rumliegen.

Vielleicht wage ich mich da ran und experimentiere etwas damit. Der Aufwand ist auf jeden Fall überschaubar.
 
FPV1

Banggood

Oben Unten