-         

Ergebnis 1 bis 3 von 3

Thema: Problem bei Auswertung eines Ping))) Ultraschall Sensors

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    18.04.2010
    Beiträge
    53

    Problem bei Auswertung eines Ping))) Ultraschall Sensors

    Anzeige

    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ß

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556

    Re: Problem bei Auswertung eines Ping))) Ultraschall Sensors

    Zitat Zitat von daviid

    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

    [/code]
    vor pulsein musst Du mit "pordd.2 = 1" auch auf Eingang schalten.
    Ich (vermute) Das Ergebnis wird in µs angezeigt. Solche sender/Empfänger
    brauchen Zeit! das Wait sollte (?) größer sein.

    Gruß Richard



    [/quote]

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    18.04.2010
    Beiträge
    53
    Ok danke für die Antwort, hat geholfen.

    Nene das mit dem Wait geht in Ordnung, als maximaler Zeitraum zwischen zwei Messungen sind 200ms angegeben.

Berechtigungen

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