PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : srf04 modul



pebisoft
26.11.2004, 07:25
hallo, ich möchte das modul srf04 programmieren in bascom. wer kann hier weiterhelfen. ich bekomme das mit der zeitmessung am avr16 nicht hin.
ps: das modul srf08 läuft schon auf meinem küchenbrettroboter mit einem servo um sich ein bisschen zu drehen.
mfg pebisoft

Joerg
26.11.2004, 08:02
Hi pebisoft,

hast du die schonmal probiert (auch von Gerrys Seite):


' ulrasonic functions SRF04
' adapted from Koen Van den Heuvel, http://users.pandora.be/vandenheuvel/robot.html
' Declare Sub Initialize_ultrasonic()
' Declare Function Ultrasonic() As Integer

Function Ultrasonic() As Integer
Portc.6 = 0 ' Set initial state of trigger pin
Pulseout Portc , 6 , 10 ' generate a 5us pulse @ 8 mhz
Pulsein Ultrasonic , Pinc , 7 , 1 ' measure the return pulse
End Function

Sub Initialize_ultrasonic
Config Pinc.6 = Output
Config Pinc.7 = Input
End Sub

HTH und Viele Grüße
Jörg

pebisoft
30.11.2004, 17:00
ganz habe ich das programm für den srf04 nicht geschnallt mit dem bascom. kann einer bitte mal die sache für dieses modul näher erklären. ich habe gelesen mit puls und trigger usw. wie verwirkliche ich das mit einem avr in bascom mit der umrechnung in cm z.b.
mfg pebisoft

Joerg
30.11.2004, 20:46
Hi pebisoft,

ich habe mir gerade mal die Hilfe von Bascom angesehen, pulsin liefert das Ergebnis in 10us Schritten. Das heißt, das Ergebnis der Funktion Ultrasonic() muss noch durch 6,2 geteilt werden, um die Entfernung in cm rauszukriegen. Dazu am besten mit 10 multiplizieren und durch 62 teilen (Vermeidung von Floating-Point Geschichten).

BTW, im obigen Code ist noch ein Fehler dringewesen, Ultrasonic_left muss natürlich Ultrasonic heißen. Ich ändere das nochmal schnell.

HTH und Viele Grüße
Jörg

pebisoft
02.12.2004, 12:41
vielen dank. das srf04-modul läuft dank deiner hilfe hervorragend.
mfg pebisoft

Joerg
03.12.2004, 06:51
Freut mich, dass es funktioniert.

Viele Grüße
Jörg