PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : US srf05 und das rn control 2560



Daddydoof
07.02.2009, 17:57
Hi leute wie ich schon beschrieben habe, nutze ich das Rn Control 2560. Ich versuche nun den srf05 anzuschließen. Meine erste frage wäre kann ich dies direkt tun oder müssen da noch Widerstände vor? Ich habe das Beispiel Programm so umgeschrieben das es eigentlich passen müsste, ich versuche den neuen Modus zu nutzen also einen Pin für signal ein und aus..


$prog , 255 , &B11011001 , 'Quarz an / Teiler aus / Jtag aus
$regfile = "m2560def.dat"
$hwstack = 82
$framesize = 68
$swstack = 68
$crystal = 16000000 'Quarzfrequenz
Config Com4 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Open "com4:" For Binary As #4
Disable Interrupts


Dim Zeitmessung As Word
Dim Entfernung As Word

Print #4 , "**** SRF05 mit RN-MINICONTROL *****"
Print #4 , "Entfernung in cm anzeigen"

' Der Ultraschallsensor wird am Port A Pin 7 angeschlossen
Config Pinj.4 = Output ' Bestimme den Anschluss des Sensors und setze ihn auf Output

Do
Portj.4 = 0 'Port Low
Pulseout Portj , 4 , 40 '10uS Impuls bei 4 MHz senden (10*4=40)
Pulsein Zeitmessung , Pinj , 4 , 1 ' Den Puls wieder empfangen
Zeitmessung = Zeitmessung * 10 'mal 10 da Pulsein in 10uS Einheiten Ergebnis ermittelt
Entfernung = Zeitmessung / 58 'Umrechnen in Zentimeter
Print #4 , "Entfernung: " ; Entfernung ; " cm"
Wait 1
Loop

Ich hoffe ihr könnt mir helfen...

Jon
07.02.2009, 18:10
Widerstände brauchst du keine.
Aber ich verstehe dein Problem nicht ganz. Stimmt etwas mit dem Programm nicht? Gibt es Fehlermeldungen oder Fehlmessnungen?

jon

Daddydoof
07.02.2009, 22:43
Hey Danke erstma das is schonmal gut zu wissen das ich da nichts falsch gemacht habe... . Das problem das ich im moment habe is das mir das Programm als Ausgabewert immer 0 angibt egal wie weit man den US vom nächsten Hinderniss wegnimmt.. Ich wollte aber ganz gern wissen welche entfernung dazwischen liegt ;)
Euer Daddyd.

Jon
07.02.2009, 22:52
Lass dir doch mal die Variable "Zeitmessung" per Print ausgeben.
Bei mir ist es so, dass die Werte, mit denen ich Multiplizieren und Dividiere anders sind als im Programm aus der Wiki.

Du bist dir sicher, dass der Pinj.4 der richtige ist?
Kannst du das mal mit nem Multimeter "durchpiepen"?

jon

Daddydoof
07.02.2009, 23:12
Hab ich leider beides shcon probiert Zeitmessung hat auch den Wert 0 :( und der Pin ist auch der richtige... deswegen bin ich auch leicht Ratlos
Schonmal danke für die Hilfsbereitschafft

Jon
07.02.2009, 23:19
Ich sehe gerade in meinen Programmen, dass ich die Zeile "Config Pinj.4 = Output" nicht habe. Und die Programme funktionieren einwandfrei. Des Weiteren habe ich beim "Pulseout Portj , 4 , 40" nicht 40, sondern 20.
Versuch mal das.
Wenn das nichts hilft, bin ich auch etwas ratlos.

jon

Daddydoof
07.02.2009, 23:26
Ok werde das Morgen mal Testen hab den Robo nich hier :) aber schonmal danke im vorraus werd mich melden falls es nicht klappt..
Daddyd.

Daddydoof
08.02.2009, 17:19
Hey vielen dank es funktioniert wunderbar. Nur weiter so warst ne echte hilfe ;)
Und immer schön weiter basteln euer Daddyd.