OpenXsensor - Erste Schritte und Problem

  • Themenstarter Deleted member 51580
  • Beginndatum

quax2011

Erfahrener Benutzer
Wenn man eh einen Arduino für eine andere Anwendung nutzt - Strom, Vario - kostet die EZ-Messung nur den Preis für die Widerstände des Spannungsteiler. Also so gut wie nix.
 
OpenXsensor und ein Problem.
Habe schon mehrere Sensoren gebaut und Vario und Höhenansage haben immer prima funktioniert. Nun habe ich heute einen Segler geflogen, den ich sehr selten zum Einsatz bringe. Überrascht war ich, als ich den Varioton einschaltete und irgendwann merkte, dass der Ton beim Sinken hoch und beim Steigen runter ging. Da ich nicht mehr so gut höre, habe ich es mit der Höhenansage versucht. Auch hier Erstaunen, da ich in einer Höhe von Minus 150m flog und trotzdem noch am Himmel war.

Nun meine Frage: Habe ich das Ding falsch zusammen gelötet oder muss ich es nur herum drehen? Alle anderen habe ich bisher immer in der gleichen Weise in Modellen eingebaut und zwar mit der Varioplatine (GY 63, GY 86) auf dem Arduino nach oben.

Gruß Udo
 

Norbert

Erfahrener Benutzer
Die Einbaulage ist völlig egal, da das Ding Luftdruck misst. Hast du eventuell in der Umrechnung einen negativen Faktor drin ( weiss nicht ob das geht). Das einfachste wird sein, baue ein anderes Vario ein und schau was das macht. Dann weißt du schon mal, ob das Vario oder der Sender das Problem ist.
 

Bussard

Erfahrener Benutzer
.. Überrascht war ich, als ich den Varioton einschaltete und irgendwann merkte, dass der Ton beim Sinken hoch und beim Steigen runter ging. Da ich nicht mehr so gut höre, habe ich es mit der Höhenansage versucht. Auch hier Erstaunen, da ich in einer Höhe von Minus 150m flog und trotzdem noch am Himmel war.
Checke mal Dein GPS, Du bist ziemlich sicher in Australien (ganz runter scrollen) ;):D:giggle:
 
Die Zuordnung zu den Funktionen erfolgt nach dem Platz in der Sensorliste. Wenn man die Sensoren löscht und neu sucht ändert sich die Sensorreihenfolge. In der Regel passt dann nichts mehr. Welcher Sensor ist dem Vario zugeordnet?
 
Ich habe gerade meinen ersten OTX zusammengenagelt. Ich benötige zunächst nur die Strommessung.Sind für einen ACS758KCB-150U diese Werte richtig:

// ***** 6.5 - Current parameters *****
#define PIN_CURRENTSENSOR 6 // Arduino pin used to measure the voltage provided by a current sensor
#define MVOLT_AT_ZERO_AMP 600 // in millivolt
#define MVOLT_PER_AMP 26,7 // in milliVolt per Amp
//#define RESISTOR_TO_GROUND_FOR_CURRENT 0 // put as comment or set to 0 if no divider is used (e.g. 19.8 for 1.1 internal ref)
//#define RESISTOR_TO_CURRENT_SENSOR 0 // put as comment or set to 0 if no divider is used (e.g 39 for 1.1 internal ref)


#define MVOLT_AT_ZERO_AMP 600 // in millivolt

nicht sicher

2019-04-15 19_50_59-ACS758-Datasheet - PDF-XChange Editor.jpg
2019-04-15 20_02_45-ACS758-Datasheet - PDF-XChange Editor.jpg
 
MVOLT_PER_AMP 26,7 sollte passen. Mit dem Offset muss man etwas spielen. Oder tricksen ;). Gib mal 300mV ein und schau nach dem angezeigten Stromwert, wenn kein Strom fließt. Diesen Stromwert mit 26,7 multiplizieren und 300 addieren, ergibt den exakten Offset.

Wichtig ist noch, bei der Referenzspannung alles kommentiert zu lassen, also keine Referenzspannung oder genau 5000mV angeben, die Erklärung ist eine lange Geschichte, aber für die Strommessung ist das so am Besten. Das hatten wir iwo im Detail mal durchdekliniert.

Code:
// ***** 6.1 - Voltage Reference to measure voltages and current *****
//#define USE_INTERNAL_REFERENCE  // uncomment this line if you use 1.1 volt internal reference instead of Vcc (voltage divider mst be used to reduce voltages to 1.1 volt max)
//#define USE_EXTERNAL_REFERENCE  // uncomment this line if you use an external reference instead of Vcc
//#define REFERENCE_VOLTAGE 4970    // set value in milliVolt; if commented, oXs will use or 1100 (if internal ref is used) or 5000 (if internal ref is not used)
 
Erhaltene "Gefällt mir": ralfwo

fsjunk

Neuer Benutzer
Hallo,

ich habe meinen ersten openXsensor für OpenTX gebastelt: GPS, GY86 und Spannungsmessung für 3s.
Als Basis habe ich den Sketch aus dem Thread "Besenstil openXsensor Vario GPS Spannung" verwendet.

Alles klappt – nur VSpeed fehlt in der Telemetrie.

In den Configs habe ich folgende Änderungen gemacht:
C++:
#define FIRST_BARO_SENSOR_USE   GY86
#define VSPEED_SOURCE  PPM_SELECTION
#define A_MPU6050_IS_CONNECTED      YES

// ***** 4.6 - Vertical speeds calculations based on PPM *****
#define VARIO_PRIMARY       BARO_AND_IMU
#define VARIO_SECONDARY     FIRST_BARO

#define USE_INTERNAL_REFERENCE
Ich wollte den Unterschied zwischen dem reinen Baro und der Variante mit dem Accelerometer testen; deshalb die Umschaltung per PPM. Könnte das der Fehler sein?
 
Hi, ein VSpd sollte eigentlich immer kommen. Ich bin nicht mehr 100% sicher, aber ich glaube, dass du bei PWM Umschaltung als FIRST_BARO den MS5611 definieren musst, obwohl es ein GY-86 ist. Hier:
Code:
// ***** 10.1 - IMU 6050 *****
#define A_MPU6050_IS_CONNECTED      YES
aktivierst du ja die IMU Routinen.
PRIMARY und SECONDARY würde ich umdrehen, ist aber vermutlich egal.

Ich würde aber erstmal den Originalsketch nehmen, um sicherzustellen, dass die Hardware OK ist (ohne IMU Routinen, den INT aber ruhig verdrahtet lassen). Dann den Sketch auf IMU Vario umbauen und diese Funktion testen. Dann erst die Umschaltung realisieren. Wenn du sicher bist, dass alles korrekt verdrahtet ist und funktioniert, die Umschaltung dazubauen. Das ist schon ziemlich komplex, was du da treibst ;)

Und sicherheitshalber PWM in einem T-Feld zur Kontrolle zurückschicken.
Code:
#define T1_SOURCE       PPM
#define T2_SOURCE       SENSITIVITY
 

fsjunk

Neuer Benutzer
vielen Dank für die Tipps.
Der Original-Sketch läuft. Nach einigen erfolglosen Versuchen habe ich bemerkt, dass ich den INT auf den A2 gelötet habe. Kaum macht man's richtig ... jetzt geht's:).

Die Konfiguration ist gleich wie meine erste; nur PRIMARY und SECONDARY habe ich getauscht.

VSPEED_AND_ALT_FROM_SECOND_VARIO in die TEST1 und TEST2 zu laden und in ACCX_SOURCE bzw. ACCY_SOURCE anzuzeigen hat nicht geklappt. Ist aber nicht wichtig.
 
cksen ;). Gib mal 300mV ein und schau nach dem angezeigten Stromwert, wenn kein Strom fließt. Diesen Stromwert mit 26,7 multiplizieren und 300 addieren, ergibt den exakten Offset.
Habe ich gemacht. Die 0-Amp stehen wie festgenagelt.
Trotzdem noch ne Frage: Wie genau ist denn die Strommessung, Mein Heli zappelt zwischen 40A und 170A, je nach Flugstil. Wenn ich im TX den Verbrauch berechnen lasse was kann ich denn da erwarten an Genauigkeit.
 
Da ist etwas faul. Wenn der Sensor bei 0A 600mV liefern würde, müsste oXs 300/26,7=11,2A anzeigen
Nein, ich habe schon berechnet und als Ergebnis mit anschließendem Feintuning folgende Werte

#define MVOLT_AT_ZERO_AMP 589 // in millivolt
#define MVOLT_PER_AMP 26.6 // in milliVolt per Amp

Ich habe gerade noch einen Test gemacht und laut oXs/openTX 1540 mah, allerdings mit Konstanstrom von "nur" 4,4A, entladen. Geladen habe ich lt. Ladegerät 1467mah. Geht das noch irgenwie genauer zu kalibrieren oder ist das ein "gutes" Ergebnis. Wie gesagt ich kenne die Toleranzen und Ungenauigkeiten nicht
 
#define MVOLT_AT_ZERO_AMP 589 // in millivolt
Ich muss jetzt noch mal nachfragen, du hast
#define MVOLT_AT_ZERO_AMP 300 // in millivolt
#define MVOLT_PER_AMP 26,7 // in milliVolt per Amp
konfiguriert und bekommst eine 0A Anzeige? Probier bitte nochmal.

Du musst definitiv ein paar Prozent mehr einladen, als ausgeladen wurden. Der oXs kann in dieser Konstellation etwa 5mV auflösen, das entspricht etwa 0,2A.
 
bei
#define MVOLT_AT_ZERO_AMP 300 // in millivolt
bekomme ich 10,9A
dann nach deiner Formel
300+10,9*26,6 (!!!!Punkt vor Strich) = 589,94mV
damit hat die Anzeige dann noch ein wenig gezuckt (0,1-0,2)
Dann noch bisschen mit dem Wert gespielt und mit 589mV war es dann bei 0A ruhig
 
RCLogger

FPV1

Banggood

Banggood

Oben