PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ultraschall Sensor SRF05 will nicht. Hilfe



ernterobo
16.04.2013, 23:24
Hallo
Ich hab meinen Ultraschall Sensor SRF05 Angeschlossen aber es Passiert nicht das was ich erwartet habe.
Also C.Controler Mini Station von Conrad , Anschluss des SRF05 : 5V auf den 5V Ausgang des C. ,GND an den GND des C., Trigger Input an Output 1 des C. und Echo Output an Input 1 des Conrolers

Kleines Programm gibt kurzes Signal auf Output 1: LED vom Sensor leuchtet kurz ,

Programm Liest Input 1: Spannung liegt an über die ganze Messdauer

Soweit scheint es gut , aber ich hab immer Spannung auf Input 1, unabhängig vom Eingangssignal, nur wenn ich den Sensor mit Stoff zu hänge ist das Signal weg .

Das ist das erste Mal das ich solche Elektronikteile nutze, wahrscheinlich mach ich etwas falsch fragt sich nur wo mein Fehler liegt. :(

shedepe
17.04.2013, 18:48
Was für einen SRF 05 hast du denn genau ?
Es gibt nämlich auch welche die verkappte SRF04 sind und die eine andere Pin belegung haben.

ernterobo
17.04.2013, 23:06
Hallo Shedepe
Ich dachte die währen immer bau gleich.

Meiner ist ein ein SRF 05 Devantech PWM-interface

shedepe
18.04.2013, 13:39
Ok,
also noch mal zu deiner Situation (nur dass man sie richtig versteht)
Du gibst also richtig auf den Input Pin vom Sensor einen etwa 10 bis 20 ms Sekunden langen Puls ?
An Ausgang vom Sensor liest du allerdings nur eine konstante Spannung anstelle, eines Signals das in Abhängigkeit von der gemessenen Entfernung länger oder kürzer High ist ?

ernterobo
18.04.2013, 23:49
Hallo Shedepe
Ich hab eben noch mal das Inputsignal verlängert aber es ändert sich nichts nur ein Signal, außer ich decke die Sensoren direkt mit Stoff ab dann ist das Signal komplett weg.

Das Dauerausgangssignal startet nach dem anschalten erst nach dem ersten Triggerimpuls.
Dann habe ich immer eine 1 am Eingand des Controlers auch wenn kein Signal mehr gesendet wird.

die beschreibund mit bild sieht eigenlich idioten sicher aus ich hab es jetzt x mal geprüft und ich bin sicher das der Sensor richtig angeschlossen ist.
kann mein Controller das signal vom sensor überhabt richtig erfassen, er unterscheidet nur zwischen an und aus, sollte das signal eine ansteigende und abfallende Spannung sein könnte er es nicht unterscheiden (denke Ich)

Frage kann das teil fehlerhaft sein?

Sollte ich den zweiten Sensor ( der liegt noch in der original Verpackung ) genauso anschließen um ihn zu testen ?

shedepe
19.04.2013, 08:43
Zeig doch einfach mal deinen Auswerte Quellcode.

ernterobo
21.04.2013, 23:01
Hier mein kleines Programm
Sub main()

'Initialisierung der Mini-Station
MINI_INIT()

'Endlosschleife
Do While True
OUTPUT1_ON() 'Ausgang aktiv
AbsDelay (50) 'kurze Pause
OUTPUT1_OFF() 'Ausgang inaktiv



'lesen
For X = 1 To 1000 Step 1

If INPUT_1(0) = 1 Then A=A+1 Hier Ist mein Denkfehler, wenn ich den sensor aktiviere den geht das signal auf 1 und nur für maximal 30 ms auf 0 ich hab diese zeile auf "If INPUT_1(0) = 0 Then A=A+1" geändert und jetzt geht es
End If

Next


If A > 9 Then OUTPUT7_ON() : End If
If A > 7 Then OUTPUT6_ON() : End If
If A > 5 Then OUTPUT5_ON() : End If
If A > 3 Then OUTPUT4_ON() : End If
If A > 2 Then OUTPUT3_ON() : End If
If A > 1 Then OUTPUT2_ON() : End If
AbsDelay (500) 'kurze Pause


OUTPUT2_OFF()
OUTPUT3_OFF()
OUTPUT4_OFF()
OUTPUT5_OFF()
OUTPUT6_OFF()
OUTPUT7_OFF()

A=1
End While



Vielen dank führ die Mühe und für den Hinweis auf das Program, ich war fest überzeugt das kein Signal 0 ist und ein signal 1, es ist aber andersrum und da das Signal sehr kurz ist hab ich es nicht gemerkt.
Ich nehmer gern noch Tips an wie ich das Signal besser auslesen kann.

shedepe
22.04.2013, 17:50
Wenn das Board bzw. der Controller den du verwendest, Interrupts unterstützt wäre das damit wesentlich effizienter auszuwerten.

ernterobo
25.04.2013, 23:04
danke für den Tip, ich lese mich gerade etwas ein, seit 64 zeiten hab ich nicht mehr wirklich Programme geschrieben.Aber die Messergebnisse der sensoren sind nicht so wie ich es gern hätte und das lieg sicher am Programm

zum einen gib es diese Funktion

"Es stehen zwei (Mega32) bzw. drei (Mega128) unabhängige Timer zur Verfügung. Timer_0 mit 8 Bit,
Timer_1 und Timer_3 mit 16 Bit (nur Mega128). Die Timer verfügen über einen programmierbaren
Vorteiler. Mit dem Timer läßt sich eine Zeit festlegen, nach der ein Interrupt ausgelöst wird. In der
Interruptroutine lassen sich dann bestimmte Verarbeitungsschritte ausführen"

oder diese funktion

"Diese Funktion nutzt den Capture-Interrupt ( INT_TIM1CAPT). Der Puls
wird zwischen einer steigenden und der nächsten fallenden Signalflanke gemessen. Die Periode wird
zwischen zwei steigenden Signalflanken gemessen. Durch die Input Capture Funktion gehen
Programmlaufzeiten nicht als Ungenauigkeit in das Meßergebnis ein"

leider fehlt mir etwas die zeit die ich gern hätte um hier voran zu kommen