INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Problem mit Kompassmodul HMC5883
05.01.2016, 21:29
Beitrag #1
Problem mit Kompassmodul HMC5883
Hallo zusammen,

ich habe ein Problem mit meinem Kompassmodul (GY-271). Ich habe zu Testzwecken die Libraries von Adafruit genutzt. Soweit funktioniert der Scetch auch. Im SM werden mir nun die Werte für X,Y und Grad angezeigt. Im Scetch habe ich die Declination auskommentiert (wie dort zu lesen ist).
Doch leider stimmen die Grad-Werte irgendwie nichtDodgy Ich bekomme folgende Werte gezeigt:
N -> 320°
O -> 95°
S -> 220°
W -> 270°
Demnach müsste da noch eine Korrektur bei Nord (+40) und Süd (-40) zugerechnet werden. Aber warum?

Und hier der Code:
Code:
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_HMC5883_U.h>

/* Assign a unique ID to this sensor at the same time */
Adafruit_HMC5883_Unified mag = Adafruit_HMC5883_Unified(12345);


void setup(void)
{
  Serial.begin(9600);
  Serial.println("HMC5883 Magnetometer Test"); Serial.println("");
  
  /* Initialise the sensor */
  if(!mag.begin())
  {
    /* There was a problem detecting the HMC5883 ... check your connections */
    Serial.println("Ooops, no HMC5883 detected ... Check your wiring!");
    while(1);
  }
  
}

void loop(void)
{
  /* Get a new sensor event */
  sensors_event_t event;
  mag.getEvent(&event);

  /* Display the results (magnetic vector values are in micro-Tesla (uT)) */
  Serial.print("X: "); Serial.print(event.magnetic.x); Serial.print("  ");
  Serial.print("Y: "); Serial.print(event.magnetic.y); Serial.print("  ");
  //Serial.print("Z: "); Serial.print(event.magnetic.z); Serial.print("  ");Serial.println("uT");

  // Hold the module so that Z is pointing 'up' and you can measure the heading with x&y
  // Calculate heading when the magnetometer is level, then correct for signs of axis.
  float heading = atan2(event.magnetic.y, event.magnetic.x);
  
  // Once you have your heading, you must then add your 'Declination Angle', which is the 'Error' of the magnetic field in your location.
  // Find yours here: http://www.magnetic-declination.com/
  // Mine is: -13* 2' W, which is ~13 Degrees, or (which we need) 0.22 radians
  // If you cannot find your Declination, comment out these two lines, your compass will be slightly off.
  //float declinationAngle = 0.22;
  //heading += declinationAngle;
  
  // Correct for when signs are reversed.
  if(heading < 0)
    heading += 2*PI;
    
  // Check for wrap due to addition of declination.
  if(heading > 2*PI)
    heading -= 2*PI;
  
  // Convert radians to degrees for readability.
  float headingDegrees = heading * 180/M_PI;
  
  Serial.print("Heading: "); Serial.println(headingDegrees);
  
  delay(1000);
}

Wo liegt der Fehler? Warum stimmen die Werte für Nord und Süd nicht?

Gruß
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.01.2016, 22:37
Beitrag #2
RE: Problem mit Kompassmodul HMC5883
Hallo Torsten,

gleich vorweg, ich kenne mich mit dem Kompassmodul (GY-271) nicht aus. Undecided
Dieser Seite nach ist das ein Magnetometer. Ich würde das so deuten dass das Teil auf den Erdmagnetismus reagiert und somit dem magnetischen Nordpol folgt. Jetzt ist es aber leider so, dass der magnetische Nordpol nicht am geografischen Nordpol liegt. Außerdem ist der magnetische Nordpol ein unruhiger Geselle der ständig auf Wanderschaft ist. 2013 fand man ihn bei 85,75° N, 144,46° W.

Frage: Wie hast du herausgefunden dass das Kompassmodul 40° daneben liegt?
Dazu brauchst du doch in irgend einer Form eine Referenzgröße. Was hast du da genommen?

Hast du an einer Stelle gemessen an der mit Sicherheit keine magnetischen Störsignale vorhanden sind?
Kein PC, kein Handy, kein Lautsprecher, Mikrofon, Fernseher, Kühlschrank, Netzteil, Trafo ect. in der Nähe?

Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.01.2016, 22:50 (Dieser Beitrag wurde zuletzt bearbeitet: 05.01.2016 22:53 von arduinofan.)
Beitrag #3
RE: Problem mit Kompassmodul HMC5883
Habe mir mal 1 Ding bestellt und werde es mal testen.

Melde mich dann wieder.

Vielleicht ist es etwas für mein Robokit :
http://www.arduinoforum.de/arduino-Threa...t-Sensoren

Gruss
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.01.2016, 09:59
Beitrag #4
RE: Problem mit Kompassmodul HMC5883
Hallo zusammen,

@Arne: Du hast genau das Teil angegeben dass ich einsetze. Mir ist bewusst, dass es über das Magnetfeld der Erde arbeitet. Ich bin der Meinung, dass dieses kleine Ding für meine Zwecke ausreichen sollte Wink

Zitat:Frage: Wie hast du herausgefunden dass das Kompassmodul 40° daneben liegt?
Dazu brauchst du doch in irgend einer Form eine Referenzgröße. Was hast du da genommen?

Ich habe da mein iPh... genutztBig Grin Somit konnte ich zumindest die Richtung Nord finden. Diesen habe ich auf ein Blatt Papier gezeichnet und dann die restlichen Himmelsrichtungen eingetragen. Auf dieses Blatt Papier habe ich dann mein Kompassmodul gelegt und nach N ausgerichtet. Dabei konnte ich dann im SM den Wert 320° ablesen.
Für O,S und W bin ich auch so vorgegangen. Komisch ist ja, dass die Werte für Ost und West recht gut passen. Nur die Werte für Nord und Süd weichen um +40° bzw. -40° ab.

Zitat:Hast du an einer Stelle gemessen an der mit Sicherheit keine magnetischen Störsignale vorhanden sind?

Ich habe in meinem Wohnzimmer gemessen. Der nächste Lautsprecher ist da so ca. 2m entfernt. Sollte m.E. keinen großen Einfluss auf die Messung haben.

Ich wollte jetzt mal versuchen die Angabe für Ost und West mittels Korrekturrberechnung anzupassen. Sollte somit doch dann einen annähernden Wert ergeben. Mal abwarten... Cool

Gruß
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.01.2016, 18:48 (Dieser Beitrag wurde zuletzt bearbeitet: 06.01.2016 19:17 von ardu_arne.)
Beitrag #5
RE: Problem mit Kompassmodul HMC5883
Hallo Torsten,

es ist schwierig Tipps zu geben wenn man das Kompassmodul selbst nicht hat und nicht kennt. Bist du denn sicher dass die Anzeige vom iPh... stimmt? Wo bei dir wirklich Norden ist müsstest du doch wissen und 40° daneben auch abschätzen können. Ein Lautsprecher in 2m Abstand sagt erst mal nichts aus. Das hängt auch von der Größe des Lautsprecher ab und ob er magnetisch geschirmt ist.
Vergleiche doch die relevanten Stellen von deinem Code mal mit diesem hier.
Den Vergleich an einem anderen Ort durchführen bringt evtl. auch neue Erkenntnisse.
Wenn die Sonne mal scheint, kannst du auf dieser Seite für deinen Standort ermitteln um wie viel Uhr die Sonne genau im Süden steht und das mit dem Kompassmodul und dem Ei-Dingsbums vergleichen.

Gruß
Arne

Sei beruhigt, du bist mir dem Problem nicht alleine. In diesem Beitrag ist vielleicht genügend Input für die Lösung enthalten

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.01.2016, 21:20
Beitrag #6
RE: Problem mit Kompassmodul HMC5883
Also ich bin ja auch ein (meist erfreuter) Nutzer vom "Knabberobst".
Aber aus eigener Erfahrung kann ich sagen, das dessen "Kompass" alles andere als genau ist.
DEN also jetzt hier als Referenz anzunehmen, macht nun wirklich keinen Sinn.
Ein Blick in die Landkarte bringt da viel mehr!

Der Arduino-Kompass-Sensor (hab mir auch mal einen gegönnt vor Monaten) muss kompensiert werden.
Ich hab das aber seinerzeit nicht weiter verfolgt.
Das Erdmagnetfeld ist leider auch nicht perfekt. (Die Links wurden glaub ich schon genannt)
Neigungswinkel von dem Teil führt zu weiteren Problemen.
Soweit ich mich erinnere gibt es Module, die die Neigung mit erfassen und in die Berechnung mit reinnehmen.
Oder aber man muss die Neigungswinkel auch abfragen und im Arduino berechnen.
Wie gesagt, ich habs nicht weiter verfolgt, das Thema war nicht ohne...

Die Sensoren sollen in der Lage sein, technische Magnetfelder zu erkennen und bei der Messung zu ignorieren (Spulen, Motoren etc.)
Bei Dauermagnetfeldern wie Lautsprecher wäre ich mir nicht so sicher.

Wichtig ist auch, das die Dinger beim Start erstmal im Kreis geführt werden (wie auch das Ding im Apfel)

Wenn die 40 Grad Abweichung statisch sind, also im Freifeld nach Initialisierung, kannst Du entweder den Sensor entsprechend verdreht montieren oder aber per Software den Wert passend schieben.

Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.01.2016, 12:48 (Dieser Beitrag wurde zuletzt bearbeitet: 08.01.2016 12:52 von arduinofan.)
Beitrag #7
RE: Problem mit Kompassmodul HMC5883
Hallo, guten Tag.
Meine Compassmodule sind gekommen:
COM-FOUR® GY-271 HMC5883L Kompassmodul 3-Achsen Kompass Magnet-Sensor 3,3-5V für Arduino (2 Stück).

Funktionieren einwandfrei 0-360 Grad. Habe sie bei mir auf den Tisch in der Wohnung , daneben Netzteil für Arduino, mein Notebook und andere kleine elektrische Verbraucher.

Angeklemmt habe ich VCC 3,3 V, GND, SCL und SDA.
Dieses DR0Y habe ich nicht angeklemmt.

Habe eine kleinen Schwenk gemacht von 350 - 360 und wieder etwas zurück.

Gruss


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.01.2016, 13:01
Beitrag #8
RE: Problem mit Kompassmodul HMC5883
Hallo,
genau dort habe ich meine beiden auch bestellt. Demnach sollte die HW ja identisch sein. Ich kann auch einen Schwenk um die 360°-Grenze machen. Funktionieren tut das auch. Aber die 360° sind bei mir nicht Norden! Versuche doch mal einen Schwenk um die ganze Achse. Ich bin mal gespannt, ob die vier HR auch korrekt als Gradzahl angeben werden...

Kannst du denn auch mal deinen Scetch posten? Dann kann ich den auch gleich vergleichen.

Danke
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Problem mit SD Card Library BennIY 4 186 06.10.2016 18:38
Letzter Beitrag: Bitklopfer
  Problem mit SD.remove Eichner 6 210 22.08.2016 19:42
Letzter Beitrag: Eichner
  4x16 Tastermatrix Problem Michel 16 830 14.07.2016 10:02
Letzter Beitrag: StephanBuerger
  Problem mit Delay und Millis funnyzocker 1 450 26.06.2016 09:54
Letzter Beitrag: hotsystems
  Problem mit ESP8266 und EMail senden torsten_156 1 593 13.06.2016 21:14
Letzter Beitrag: torsten_156
  ESP8266_01 flashen - Problem torsten_156 12 1.040 30.05.2016 20:12
Letzter Beitrag: torsten_156
  Hardwareserial/Softserial: Problem mit Superklasse tuxedo0801 10 474 19.05.2016 12:25
Letzter Beitrag: amithlon
  ESP8266 HTML Problem arduino_weatherstation 1 491 25.04.2016 21:52
Letzter Beitrag: rkuehle
  Problem mit OLED 0.96" Display torsten_156 3 534 03.04.2016 15:10
Letzter Beitrag: hotsystems
  Problem: SDFat - Das Ende einer Datei finden und Schleife beenden MartinK 4 486 01.04.2016 05:49
Letzter Beitrag: MartinK

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste