Hallöchen,

Ich hab seite heute folgenden US-Sensor:
http://www.watterott.com/de/Parallax...fernungsmesser
Hier das Datenblatt: http://www.pololu.com/file/0J214/PING_documentation.pdf

Hört sich alles nich so schwer an, es gibt auch einen ähnlichen Sensor, den Srf05 über den es einen Artikel im RN-Wissen zur Auswertung gibt:
http://www.rn-wissen.de/index.php/Ul...RN-MiniControl

Hab den Code teilweise übernommen, so sieht er aus:

Code:
$regfile = "m8def.dat"
$crystal = 4000000
$hwstack = 100
$swstack = 100
$framesize = 100
$baud = 19200





Declare Sub Serial0charmatch()

Config Serialin = Buffered , Size = 30 , Bytematch = 13
Enable Interrupts

Const Cmconstant = 2260
Dim Cmdistance As Word
Dim Zeitmessung As Word

Config Portd.2 = Output


Print "Startup"

'Hauptschleife
Do

   Portd.2 = 0                                              'Port Low
   Pulseout Portd , 2 , 20                                  'Min. 10uS Impuls senden
   Pulsein Zeitmessung , Pind , 2 , 1
   'Zeitmessung = Zeitmessung * 10                           'mal 10 da Pulsein in 10uS Einheiten Ergebnis ermittelt
   Cmdistance = Zeitmessung * Cmconstant                    'Umrechnen in Zentimeter
   Print "Zeit: " ; Zeitmessung ; " Entfernung: " ; Cmdistance ; " cm"
   Portd.2 = 0
   Wait 1

Loop
End


Sub Serial0charmatch()
   Local Incoming_data As String * 30

   'Daten vom Buffer auslesen
   Input Incoming_data
   'Ausgelesene Daten zurück schicken
   Print Incoming_data
End Sub
Sollte nach meinem Verständnis eigentlich funktionieren, nur was mir nicht klar ist, in was für einer Einheit Pulsin das Ergebnis liefert.

Aber das ist auchmal egal, hauptsache es sollte überhaupt was gemessen werden.

Allerdings funktioniert die Messung ein einziges mal, und danach kommt auf der RS232 Schnittstelle immer nurnoch 0 an.

Hat jemand ne Idee warum das nur einmal geht, und die Zeit ändert sich auch und wird kleiner je näher ich was an den Sensor ranstell.

Und vor allem wie muss ich vom Pulsin Ergebnis in CM umrechnen würde mich interresieren.

Gruß