- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 4 von 4

Thema: Kalibrierung CMPS03 via I2C

  1. #1
    Gast

    Kalibrierung CMPS03 via I2C

    Anzeige

    Praxistest und DIY Projekte
    Hat schon einmal jemand das Kompassmodul CMPS03 über I²C kalibriert? Ich habe es getan weil es mir zu ungenau war. Das Resultat war das ich nur noch Werte im Bereich 1700 bis 2300 habe. Ich habe es über das Register 15 mit dem Wert 255 kalibriert in N-O-S-W und dann in Register 15 den Wert 0 geschrieben. Wo ist mein Denkfehler? Ich habe es mehrmals kalibriert über meine Routine mit einem Kompass und es gieng immer daneben. Nun ist mein Wertebereich nicht mehr im Bereich von 0 bis 3599 sondern nur noch im oben genannten Bereich.Ich habe es über I²C und über den Pin versucht. Aber die Ergebnisse sind nicht allzusehr überzeugend.

    Grüsse Wolfgang

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    hallo, ich habe auch dieses kompasmodul seit kurzem. da ich es noch nicht ganz auslesen kann, wie hat du es programmiert. ich brauche etwas bascom-code für I2C damit ich die daten auslesen kann. kalibriert habe ich es noch nicht, weil ich gelesen hatte, das so auch genau ist.
    mfg pebisoft

  3. #3
    Gast
    @pebisoft:
    schau dir doch das Datenblatt an, da steht alles drin. Wenn du schon Bascom-Erfahrungen hast sollte doch das kein Problem sein.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941

    es läuft

    hallo, das kompassmodul läuft jetzt zu 99% genauigkeit.
    am besten ist wenn man den vorgeschlagenen druckschalter zwischen anschluss 6 und masse 9
    legt. ich habe den druckschalter zwischen gelassen, wenn mal wieder kalibriert werden
    muss. diese kalibrierung ist einfacher als über i2c, kann während der laufenden abfrage
    des moduls gemacht werden. ich gebe jetzt über das easy-radiomodul vom arbeitsplatz
    eine gradzahl vor und der robby hält gemäss programm die richtung innerhalb der vorgabe
    (+-5, ist ca +- 0.5 grad). macht richtig spass. unter "album" roboterbilder" ist ein bild
    vom küchenbrettroboter. wer fragen hat, soll fragen.


    Declare Sub K_werte(byval Ee_adresse As Byte)

    $regfile = "m16def.dat"
    $crystal = 8000000
    $baud = 19200

    Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , Rs = Portc.5 , E = Portc.4
    Config Lcd = 16 * 2

    Config Scl = Portb.3
    Config Sda = Portb.4

    Dim Daten As Byte , Temp As Byte
    Dim Ausgabe As Word
    Dim Adresse As Byte
    Adresse = 2

    Do

    Call K_werte(adresse)
    Print Ausgabe
    Waitms 500

    Loop

    End

    Function K_werte(byval Ee_adresse As Byte)
    Disable Interrupts
    I2cstart
    I2cwbyte &B11000000 , Ack
    I2cwbyte Ee_adresse
    Waitms 10
    I2cstart
    I2cwbyte &B11000001 , Ack
    I2crbyte Daten , Ack
    I2crbyte Temp , Nack
    Ausgabe = Daten * 256
    Ausgabe = Ausgabe + Temp
    I2cstop
    Waitms 10
    Enable Interrupts
    End Function

    mfg pebisoft

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad