-
SRF02 gibt 0 zurück
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:
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
-
@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.