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:
Sollte nach meinem Verständnis eigentlich funktionieren, nur was mir nicht klar ist, in was für einer Einheit Pulsin das Ergebnis liefert.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
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ß







Zitieren

Lesezeichen