-
        

Ergebnis 1 bis 5 von 5

Thema: Probleme mit Kompassmodul CMPS03

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.09.2004
    Beiträge
    119

    Probleme mit Kompassmodul CMPS03

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo,

    ich hab mal wieder ein Problem

    Also ich habe einen CMPS03 an meinem RN-Control und dieser liefert mir in meinem Testprogramm immer die selben Werte (ohne Schwankung) 65535.
    Ich hab leider noch keine erfahrungen mit diesem Sensor hat jemand eine Idee woran es liegen könnte ? Danke


    Code:
    Declare Sub Kompass()
    
    $regfile = "m32def.dat"
    
    $crystal = 16000000                                         'Quarzfrequenz
    $baud = 9600                                                'Baudrate für RS232
    
    Dim Richtungint As Word                                     'Zwischenvariable für Kompassmessung cmps03
    Dim Richtung As Single                                      'Richtung für Kompassmessung cmp03
    Dim Lsb As Byte
    Dim Msb As Byte
    
    
    Config Scl = Portc.0                                        'Ports fuer IIC-Bus
    Config Sda = Portc.1
    
    I2cinit                                                     'I2C Initialisieren
    
    'On Timer2 Interrupthandler                                  'Alle Interrups werden in dieser Routine behandelt
    
    Do                                                          'Endlosschleife
       Call Kompass()
       Waitms 200
    Loop
    End
    
    Sub Kompass()
      I2cstart
      I2cwbyte 192                                              'I2C Adresse C0
      I2cwbyte 2
      I2cstop                                                   'Register 2 + 3
      I2cstart
      I2cwbyte 193                                              'Leseadresse (C1)
      I2crbyte Msb , Ack
      I2crbyte Lsb , Nack
      I2cstop
      Richtungint = Makeint(lsb , Msb)                          'Word aus 2 Byte machen
    ' Richtung = Richtungint                                    'In Single zum Rechnen umwandeln
    ' Richtung = Richtung / 10                                  'Wert ist inkl. einer Nachkommastelle
      Print "Richtung: " ; Richtungint
    End Sub

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    65535 = 0xFFFF heißt, daß vom Kompaß nix kommt.
    Du mußt mal NACH dem I2C-Addresse senden "IF ERR = 1" abfragen. wahrscheinlich reagiert er gar nicht.

    Im Prgramm seh ich direkt keinen Fehler, die I2C Routinen vom Bascom sind Büffel, gehen immer. Also ist es irgendwas Hardwarmäßiges.

    Einziger versuch "CONFIG I2CDELAY = 10", also etwas langsamer
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.09.2004
    Beiträge
    119
    Ich hab den Kompass mal an den Analog Port (Port A) angeschlossen und den PWM - Wert ausgeben lassen und dieser ändert sich auch nur sehr sehr gering, egal wie ich den Kompass dreh!
    Was mach ich falsch ?

    Ist eine Kalibrierung zwingend notwendig (bei jedem Neustart oder allgemein ) ????

  4. #4
    Zitat Zitat von alecs
    Ist eine Kalibrierung zwingend notwendig (bei jedem Neustart oder allgemein ) ????
    Aus einer Doku im Internet :

    Calibration only needs to be done once - the calibration data is stored in EEPROM on the PIC16F872 chip. You do not need to re-calibrate every time the module is powered up. The module has already been calibrated in our workshop for our inclination, which is 67 degrees. If your location is close to this, you may like to try the compass without re-calibrating at all.

    Gruss
    Frank

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    "Ist eine Kalibrierung zwingend notwendig (bei jedem Neustart oder allgemein ) ????"
    nein, ist nicht notwendig. im auslieferungszustand muss das kompassmodul bei richtigen anschluss und programmcode den wert liefern von 0-3600 im i2c-betrieb.
    wenn eine supergenaue messung in bestimmten räumen erforderlich wird, muss in diesem bestimmten raum eine kalibrierung durchgeführt werden.
    (metallleitungen und andere metallgegenstände können die messergebnisse ein wenig ändern.)
    mfg pebisoft

Berechtigungen

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