Forum: Analoge Elektronik und Schaltungstechnik Erfahrung mit Ultraschall-Sensor


von Rene (Gast)


Lesenswert?

Hallo,

ich möchte im Rahmen einer Projektarbeit, die ich mir selbst definiere, 
zunächst einen Roboter, der sich NUR in einer Richtung (z.B. X-Richtung) 
bewegt regeln.

Dazu will ich die Position mit einem UltraschallSensor messen.

Z.b. ist der hier interessant:

http://www.baumer.com/de-de/produkte/produktfinder/?tx_baumerproductfinder_pf%5Burl%5D=%2Fpfinder_sensor%2Fscripts%2Fproduct.php%3Fcat%3DCONFMyAppli%26psg%3DmadynPGGrundfunktion|Ultraschall%2CmadynGrundfunktion2|1993482997%26pid%3DUNDK_09U6914_D1%26language%3Dde%26country%3D%26header%3D%26ptk%3D

Dieser Verspricht eine Auflösung von <0.3 mm (!!).

Ein messbereich bis 150 mm ist absolut ausreichend, da der Roboter sich 
nicht weit vor und zurück bewegen soll, hier kommts mehr auf die 
Präzision an.

Jmd Erfahrungen mit solchen Ultraschallsensoren in der Auflösungsklasse 
?

Meine andere Frage noch:
Der Sensor gibt dann 0-10 Volt aus, 10 Volt entspricht wahrscheinlich 
max. Distanz, 0 Volt minimale Distanz.

Wie verarbeite ich nun das Signal als Wegsignal in meinem Arduino-Board?

Dort darf ich ja mit max. 5 Volt einspeisen, brauch ich dann ein 
Pegelwandler oder öhnliches?

Danke

von Jojo S. (Gast)


Lesenswert?

die sind sehr gut, ist eben Industriequalität. Die kosten allerdings 
auch ein vielfaches von deinem Arduino, >200€ netto, ist eine andere 
Liga als die HC0x aus China.
Die Auflösung ist gut, nur der Absolutwert ist Temperatur und 
Feuchteabhängig, liegt am Ultraschall. Über einen Teach in Eingang kann 
man min- und max Wert festlegen, aber zur Sicherheit sollte ein 
einfacher Spannungsteiler vor den AD Eingang um den bei Fehlbedienung 
nicht zu killen.

von Rene (Gast)


Lesenswert?

Jojo S. schrieb:
> die sind sehr gut, ist eben Industriequalität. Die kosten allerdings
> auch ein vielfaches von deinem Arduino, >200€ netto, ist eine andere
> Liga als die HC0x aus China.

Ich bekomme den schon für 80 Euro. Doch bevor ich die Summe investieren 
wollte, wollte ich nach Erfahrungen fragen.

Jojo S. schrieb:
> Über einen Teach in Eingang kann
> man min- und max Wert festlegen

Geschieht das mittels Software oder wie ? D.h. ich kann dem 
Ultraschallsensor sagen, messe statt den ganzen Messbereich zw. 0 - 150 
mm nur im Bereich 30 und 80 mm ?

Jojo S. schrieb:
> aber zur Sicherheit sollte ein
> einfacher Spannungsteiler vor den AD Eingang um den bei Fehlbedienung
> nicht zu killen.

Spannungsteiler vor dem Arduino und nach dem Sensor meinst du oder ? 
Gibt es auch alternativ andere möglichkeiten ?

von Rene (Gast)


Lesenswert?

Sonst noch jmd. Erfahrungen oder ähnliches ?

von Ernst O. (ernstj)


Lesenswert?

Rene schrieb:
> Dazu will ich die Position mit einem UltraschallSensor messen.

Rene schrieb:
> Dieser Verspricht eine Auflösung von <0.3 mm (!!).

Bedenke, dass Auflösung und Genauigkeit zwei verschiedene Dinge sind.

Genau genommen messen Ultraschallsensoren nicht die Entfernung, sondern 
die Laufzeit eines Signals vom Aussenden bis zum Empfang des Echos. Da 
die Laufzeit von der Schallgeschwindigkeit abhängt, diese wiederum von 
Temperatur, Luftdruck und Luftfeuchte, ist der Absolutwert der 
gemessenen Entfernung wetterabhängig.

Um diesen Einfluss auszuchliessen, können die relevanten Paraameter 
gemessen werden und bei der Umrechnung von Laufzeit in Entfernung mit 
verrechnet werden.

Oder man bestimmt den Umrechnungsfaktor durch Messung der Laufzeit von 
einer bekannten Position aus.

Um den Signalpegel an die Erfordernisse des Microcontrollers anzupassen, 
brauchst du einen Pegelwandler. In Deinem Fall ist das eini einfacher 
Spannungsteiler (Google hat da garantiert eine Empfehlung).

von Jojo S. (Gast)


Lesenswert?

Rene schrieb:
> Geschieht das mittels Software oder wie ? D.h. ich kann dem
> Ultraschallsensor sagen, messe statt den ganzen Messbereich zw. 0 - 150
> mm nur im Bereich 30 und 80 mm ?

Über SW geht das nicht, nur bei den Sensoren mit IO-Link Schnittstelle. 
Diese kenne ich nicht näher, die wirst du aber nicht einfach an den 
Arduino dranbekommen, also bleibe bei analog.
Den Analogen Ausgang kannst du setzen wie beschrieben, eben über den 
'Teach in'. Das ist ein Taster am Sensor oder ein ext. Signal, die 
Prozdeur ist in der Montageanleitung in deinem Link beschrieben: Taster 
gedrückt halten um den Modus zu starten, Objekt in nahe Position 
bringen, Taster drücken, Objekt in ferne Position bringen, Taster 
drücken, fertig.

Rene schrieb:
> Spannungsteiler vor dem Arduino und nach dem Sensor meinst du oder ?
> Gibt es auch alternativ andere möglichkeiten ?

genauso. Wieso Alternative, was ist an zwei Widerständen zu aufwändig?

von Rene (Gast)


Lesenswert?

Ernst Oellers schrieb:
> Bedenke, dass Auflösung und Genauigkeit zwei verschiedene Dinge sind.

Richtig, nur beides ist doch sehr gut und kleiner 1 mm, was meiner 
Anwendung total reicht. Wobei das nur die Wiederholgenauigkeit ist.
Die Genauigkeit ist gar nicht angegeben ?

Ernst Oellers schrieb:
> Genau genommen messen Ultraschallsensoren nicht die Entfernung, sondern
> die Laufzeit eines Signals vom Aussenden bis zum Empfang des Echos. Da
> die Laufzeit von der Schallgeschwindigkeit abhängt, diese wiederum von
> Temperatur, Luftdruck und Luftfeuchte, ist der Absolutwert der
> gemessenen Entfernung wetterabhängig.
>
> Um diesen Einfluss auszuchliessen, können die relevanten Paraameter
> gemessen werden und bei der Umrechnung von Laufzeit in Entfernung mit
> verrechnet werden.

Richtig, das ganze ist aber für zu Hause, von daher ist die lUFT bzw. 
das Wetter uninteresant.

Jojo S. schrieb:
> Rene schrieb:
>> Spannungsteiler vor dem Arduino und nach dem Sensor meinst du oder ?
>> Gibt es auch alternativ andere möglichkeiten ?
>
> genauso. Wieso Alternative, was ist an zwei Widerständen zu aufwändig?

Weiß nicht. Nehme ich da am besten was ganz hochohmiges, also z.B. 100k 
und 300kOhm oder nehme ich kleine Widerstände ?

von Rene (Gast)


Lesenswert?

Ernst Oellers schrieb:
> Bedenke, dass Auflösung und Genauigkeit zwei verschiedene Dinge sind.

Wieso ist da eig. nichts zur Genauigkeit angegeben oder übersehe ich das 
nur ?

von Rene (Gast)


Lesenswert?

SOnst noch jmd. fragen oder ideen ?

von Rene (Gast)


Lesenswert?

kann mir einer noch meine fragen beantworten`??

von npn (Gast)


Lesenswert?

Rene schrieb:
> Weiß nicht. Nehme ich da am besten was ganz hochohmiges, also z.B. 100k
> und 300kOhm oder nehme ich kleine Widerstände ?

Wenn du 5V mit dem Arduino einlesen kannst, dann nimm 2x 10k als 
Spannungsteiler. Damit werden die 10V vom Sensor halbiert. Der Sensor 
kann einen max. Ausgangsstrom von 15mA. Der Spannungsteiler sollte also 
nicht mehr Last erzeugen. Und zu hochohmig sollte er auch nicht sein, 
damit holst du dir nur Störungen aus der Umgebung auf das Meßsignal. 
Aber 2x 10k sollte ein guter Kompromiss sein.

von Rene (Gast)


Lesenswert?

npn schrieb:
> Und zu hochohmig sollte er auch nicht sein,
> damit holst du dir nur Störungen aus der Umgebung auf das Meßsignal.
> Aber 2x 10k sollte ein guter Kompromiss sein.

Danke für die Antwort. Woher kommen die Störungen ?

von npn (Gast)


Lesenswert?

Rene schrieb:
> npn schrieb:
>> Und zu hochohmig sollte er auch nicht sein,
>> damit holst du dir nur Störungen aus der Umgebung auf das Meßsignal.
>> Aber 2x 10k sollte ein guter Kompromiss sein.
>
> Danke für die Antwort. Woher kommen die Störungen ?

Überall her :-)
Zum Beispiel von deinem Handy, von PowerLAN-Steckdosen, 
Schaltnetzteilen, Frequenzumrichtern und vielem mehr. Alles, was 
elektromagnetische Wellen erzeugt, kann da stören. Denn jedes Stück 
Draht wirkt auch als Antenne. Sowohl sende- als auch empfangsmäßig. Und 
wenn dein Sensorsignal hochohmig genug ist, kann es auch alle möglichen 
Störungen aufnehmen, die dann deine Meßwerte beeinflussen.

von Rene (Gast)


Lesenswert?

Danke für eure Antworten.

Weiß jmd. warum keine Genauigkeit im Datenblatt des Sensors angegeben 
ist?

von Pandur S. (jetztnicht)


Lesenswert?

Weil die uebrigen Benutzer das nicht benoetigen ? Was soll denn dabei 
rauskommen ? Was sagt das dir wenn die Zahl 0.5mm ist ? Oder wenn die 
Zahl von anderen Groessen abhaengig ist ?

von Rene (Gast)


Lesenswert?

Jetzt Nicht schrieb:
> Weil die uebrigen Benutzer das nicht benoetigen ? Was soll denn
> dabei
> rauskommen ? Was sagt das dir wenn die Zahl 0.5mm ist ? Oder wenn die
> Zahl von anderen Groessen abhaengig ist ?

Eine Wiederholgenauigkeit entspricht nicht der absoluten Genauigkeit !

Der kann eine Wiederholgenauigkeit von 0 mm haben, jedoch heißt dass 
nicht, dass die absolute Genauigkeit 0 mm ist!

von Georg (Gast)


Lesenswert?

Rene schrieb:
> Dieser Verspricht eine Auflösung von <0.3 mm (!!).

Nur bei konstanten Bedingungen. Die Schallgeschwindigkeit in Luft ändert 
sich aber je 10 Grad um rund 2 %, das sind dann zwischen 10 und 30 Grad 
nicht 0,3 sondern 6 mm. Wenn du es also wirklich so genau brauchst, 
musst du die Temperatur zwischen Sensor und Objekt miterfassen und 
möglicherweise auch Feuchte und Luftdruck, das kannst du mit Werten aus 
Wikipedia oder Tabellen nachrechnen.

Die Auflösung bleibt schon bei 0,3 mm, nur die Position liegt je nach 
Umgebungsbedingungen wo ganz anders. Aber bitte nicht die tausendste 
Diskussion um Auflösung und Genauigkeit anfangen. Der Sensor kann da 
garnichts dafür, ein noch teurerer könnte auch nichts anderes messen.

Georg

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.