LIDAR-Lite 3 Laser-Entfernungsmesser

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Leider bekommen ich keine Antwortet von der Adresse.

      Das ist meine Code

      Declare Function Srf02_firmware(byval Slaveid As Byte) As Byte

      Declare Function Srf02_entfernung(byval Slaveid As Byte) As Integer





      $regfile = "m32def.dat"

      $framesize = 42

      $swstack = 42

      $hwstack = 42



      $crystal = 16000000'Quarzfrequenz

      $baud = 9600



      Config Scl = Portc.0'Ports fuer IIC-Bus

      Config Sda = Portc.1





      Const Lidar_lite_slaveid = &H62 'Standard I2C Adresse von Lidar_lite





      Dim Entfernung As Integer

      Dim V As Byte









      Wait 3'Warte 3 Sekunden

      I2cinit

      Print "Lidar Testprogramm"

      Print "Lidar Firmware Version:" ;Lidar_lite_firmware(Lidar_lite_slaveid)





      V = 1

      Do

      Entfernung = Lidar_lite_entfernung(Lidar_lite_srf02_slaveid)

      Print "Entfernung:" ; Entfernung ; "cm"

      Wait 1

      Loop







      End

      '------------- Hilfsfunktionen für Lidar_lite ----------

      Function Lidar_lite_firmware(byval Slaveid As Byte) As Byte

      Local Firmware As Byte

      Local Slaveid_read As Byte

      slaveid_read = Slaveid + 1

      I2cstart

      I2cwbyte Slaveid

      I2cwbyte 0 'Leseregister festlegen

      I2cstop

      I2cstart

      I2cwbyte Slaveid_read

      I2crbyte Firmware , Nack

      I2cstop

      Lidar_lite _firmware = Firmware

      End Function



      Function Lidar_lite_entfernung(byval Slaveid As Byte) As Integer

      Local Lob As Byte

      Local Hib As Byte

      Local Firmware As Byte

      Local Temp As Byte

      Local Slaveid_read As Byte



      slaveid_read = Slaveid + 1



      'Messvorgang in starten

      I2cstart

      I2cwbyte Slaveid

      I2cwbyte 0

      I2cwbyte 4

      I2cstop



      Warteaufmessung:

      Waitms 1

      Firmware = Lidar_lite_firmware(slaveid)

      If Firmware = 0 Then Goto Weiter

      Goto Warteaufmessung



      Weiter:

      I2cstart

      I2cwbyte Slaveid

      I2cwbyte 2 'Leseregister festlegen

      I2cstop

      I2cstart

      I2cwbyte &H8f

      I2crbyte Hib, Ack

      I2crbyte low, Nack

      I2cstop

      Lidar_lite_entfernung = Makeint(lob, Hib)

      End Function

      End
    • Versuch mal alle Adressen, ob er irgendwo antwortet. Etwa so

      Quellcode

      1. for a = 0 to 254 step 2
      2. I2cstart
      3. I2cwbyte A
      4. waitms 50 'falls er beim Aufruf geweckt wird antwortet er erst beim 2.Aufruf
      5. i2cwbyte a
      6. If Err = 0 Then Print "Adresse ist "; a
      7. I2cstop
      8. next
      da sollte sich was zeigen? Wenn ich das Datenblatt richtig verstanden habe antwortet er auf 0 und kan/muß? dann eine Adresse zugewiesen bekommen?
      Ich bekomme zwei Fehler beim Versuch :
      Error : 42 Line : 57 Numeric parameter expected
      Error : 93 Line : 67 Variable not dimensioned

      PS Es vereinfacht es Code im Codefenster (im Editor oben </> )zu kopieren. Dann bleiben Zeilennummern und Einrückung erhalten.