PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SRF02 gibt 0 zurück



substrateffekt
28.08.2012, 06:51
Hallo zusammen,

ich habe beim Abholen der Messwerte vom SRF02 Probleme.
Der Sensor liefert in High und Low Byte jeweils 0.
Bei Start einer Messung blinkt die LED auf, daher gehe ich davon aus, dass tatsächlich gemessen wird.
Nur das Abrufen der Messwerte scheint nicht zu funktionieren.

Das Auslesen der Firmware funktioniert einwandfrei.
Er gibt mir Firmwareversion 5 zurück.

Ich habe es schon per I2C und seriell ausprobiert, in beiden Fällen tritt dasselbe Problem auf.
Habt ihr eine Idee, was ich falsch gemacht habe?

Vielen Dank schonmal

Hier ist der Code:


CON

SRF_RX = 14
SRF_TX = 25

VAR

long firmware
byte lsb, msb

PUB Main | status, i, success

PauseMSec(3000)

i := 0

success := SRF.Start(SRF_RX, SRF_TX, 0, 9_600)

repeat

SRF.tx(0) 'Adresse des Sensors senden
PauseMSec(100) '100ms warten
SRF.tx(93) 'FW-Version anfordern
firmware := SRF.Rx

SRF.Tx(0) 'Adresse des Sensors senden
PauseMSec(100)
SRF.Tx(82) 'Messvorgang starten

PauseMSec(5000) '5 Sekunden warten

SRF.Tx(0)
PauseMSec(100)
SRF.Tx(94) 'Messergebnis anfordern

msb := SRF.Rx
lsb := SRF.Rx

Dirk
28.08.2012, 08:08
@substrateffekt:
Willkommen im Forum!
Ich kenne deine Programmierumgebung nicht, so dass ich nicht weiß, ob die Kommunikation (seriell?) mit dem Sensor stimmt.

Was zum SRF02 auffällt:
1. Eine Wartezeit von 5s zwischen Messvorgang starten und Ergebnis anfordern ist viel zu lang: Hier reicht PauseMSec(65)!
2. Nach der Pause von 65ms kann man das Ergebnis einfach aus den Registern 2,3 des Sensors lesen. Ich weiss nicht, was dein Befehl SRF.Tx(94) genau macht. Eigentlich muss man nur lesen und nichts mehr senden.