Problem mit 12x HC-SR04 Ultraschallsensoren - Werte teilweise nicht verwertbar

Hallo Leute,

für ein Hochschulprojekt möchten wir an einem ferngesteuerten Fahrzeug 12 Ultraschallsensoren anbringen und die Fahrzeugumgebung auf +-1cm Genauigkeit messen.
Wie auf den Bildern zu sehen ist, sind die Ultraschallsensoren per Heißkleber an einem Blechrahmen befestigt uns sitzen fest.
Die Spannungsquelle für den Arduino Mega 2560, welcher die 12 Sensoren versorgt und betreibt, ist ein 7.2V 2400mAh Akku. Dabei ist der Pluspol des Akkus mit dem VIN Pin, und den Minuspol mit dem GND Pin verbunden.

5V+ und GND laufen vom Arduino Mega 2560 auf das Steckbrett, und von dort aus wird es auf jeden einzelnen Sensor verteilt.

Zum Messen der Abstandswerte verwende ich die ping-library mit einem ping Intervall von 33 ms.
Vor dem Einbau habe ich alle 12 Sensoren am Steckbrett gleichzeitig getestet und alles funktionierte. Seit dem Einbau und der Verkabelung der Sensoren springen die Abstandswerte wie verrückt hin und her und sind unbrauchbar.

Ich weiß auch nicht mehr weiter. Ich persönlich glaube dass was mit der Spannungsversorgung der Sensoren nicht stimmt, da ich jeden einzelnen verbauten Sensor mit Steckbrücken getestet habe.

Mein Multimeter bestätigt mir jedoch eine Spannung von 4,98 V am Sensorstecker, was laut der Spezifikation der Sensoren vollkommen ausreicht.

Hier ein Ausschnitt aus dem Monitor der Abstandswerte bei gleich bleibenden Abständen:

0=9cm 1=10cm 2=0cm 3=3cm 4=3cm 5=14cm 6=3cm 7=8cm 8=1cm 9=6cm 10=0cm 11=72cm
0=12cm 1=9cm 2=0cm 3=6cm 4=3cm 5=20cm 6=3cm 7=10cm 8=1cm 9=7cm 10=0cm 11=33cm
0=98cm 1=11cm 2=0cm 3=5cm 4=3cm 5=3cm 6=15cm 7=11cm 8=3cm 9=6cm 10=0cm 11=1cm
0=14cm 1=22cm 2=0cm 3=6cm 4=3cm 5=4cm 6=7cm 7=46cm 8=1cm 9=7cm 10=0cm 11=3cm
0=16cm 1=13cm 2=0cm 3=6cm 4=2cm 5=5cm 6=9cm 7=15cm 8=4cm 9=7cm 10=0cm 11=3cm
0=4cm 1=1cm 2=0cm 3=6cm 4=1cm 5=5cm 6=10cm 7=1cm 8=4cm 9=7cm 10=0cm 11=5cm
0=7cm 1=2cm 2=0cm 3=6cm 4=3cm 5=6cm 6=11cm 7=17cm 8=5cm 9=8cm 10=0cm 11=7cm
0=6cm 1=1cm 2=0cm 3=6cm 4=2cm 5=20cm 6=13cm 7=2cm 8=5cm 9=8cm 10=0cm 11=43cm
0=108cm 1=2cm 2=0cm 3=5cm 4=3cm 5=9cm 6=15cm 7=3cm 8=3cm 9=8cm 10=0cm 11=12cm
0=8cm 1=22cm 2=0cm 3=5cm 4=3cm 5=11cm 6=2cm 7=46cm 8=4cm 9=2cm 10=0cm 11=11cm
0=7cm 1=22cm 2=0cm 3=2cm 4=3cm 5=13cm 6=3cm 7=6cm 8=4cm 9=3cm 10=0cm 11=13cm
0=9cm 1=7cm 2=0cm 3=6cm 4=3cm 5=13cm 6=5cm 7=11cm 8=3cm 9=7cm 10=0cm 11=14cm
0=11cm 1=9cm 2=0cm 3=5cm 4=3cm 5=15cm 6=3cm 7=9cm 8=4cm 9=4cm 10=0cm 11=72cm

Kann mir einer sagen was ich falsch mache?

Grüße
Michael

PS: Auf dem Mega 2560 (unten auf dem Bild) ist ein CAN-Shield aufgesteckt, also bitte nicht irritieren lassen.

Ich vermute, du holst dir über die langen Kabel zu den Sensoren Störungen rein.
Du solltest mal die einzelnen Signale an den Eingängen mit einem Osziloskop messen.

Also ein Oszilliskop habe ich leider nicht da, auch leider nicht in der Hochschule. ;(
Meinst du jetzt die Kabel zu den Echo und Pulse Pins? Die Kabellängen sind verschieden. Bis zu den vorderen Sensoren ca. 60cm lang und zu den hinteren nicht mal 20cm.
Aber ich habe es gerade mit Steckbrücken probiert. Es scheint wohl wirklich ein Problem mit dem Echo und Pulse Kabeln zu geben. Kann es sein dass die zu dick sind oder könnte ich das Problem anders beheben? (Widerstand etc.) Sorry mit keine Elektrotechniker. ;(

Das wird ein Übersprechen der Impulse von einem Kabel zum anderen sein.
Um es sicher zu entstören, musst du die Datenleitungen (Echo und Pulse) einzeln abschirmen.
Evtl. reicht ein Flachbandkabel wo du im Wechsel Echo, GND, Pulse, GND usw. verlegst.
Zu dick sind die Kabel nicht.

Eine andere Lösung sehe ich nicht.

Hallo,

könnten es nicht auch Echos und übersprechen der Nachbarsensoren sein? Der Schall der Nachbarsensoren könnte auch den Weg über das Fahrzeugchassis oder Reflexionen an der Umgebung zum Sensor finden. Da der Schall zu einer anderen Zeit ausgestrahlt wurde, ergeben sich seltsame Entfernungen.

Theseus:
Hallo,

könnten es nicht auch Echos und übersprechen der Nachbarsensoren sein? Der Schall der Nachbarsensoren könnte auch den Weg über das Fahrzeugchassis oder Reflexionen an der Umgebung zum Sensor finden. Da der Schall zu einer anderen Zeit ausgestrahlt wurde, ergeben sich seltsame Entfernungen.

Das kann natürlich auch mit reinspielen, wenn die Impulsfolge zu schnell aufeinander folgt.
Sollte man aber durch entsprechende Änderung der Ansprechreihenfolge prüfen können.

Was passiert denn, wenn du nur einen Sensor von den 12 benutzt? Oder lass mal eine Sekunde bis zur Abfrage des nächsten, so dass du in 12 Sekunden alle einmal abgefragt hast

Also hab da gestern rumprobiert mit Brückenkabeln und auch mit abgeschirmten Kabeln. Es scheint nicht an den Kabeln zu liegen da keine Verbesserung der Werte erkennbar war. Habe es natürlich auch mit nur einem Sensor probiert mit einem 200ms delay. Kein Unterschied bei Änderung des Intervalls.
Bei Abständen von ca. 70cm+ der Sensor nur noch Mist meldet. Bis 70 cm sind die Werte so ein bisschen brauchbar.

Was ich außerdem beobachten konnte:

  • Bei Abständen von ca. 70cm+ gibt der Sensor nur noch Mist aus. Bis 70 cm sind die Werte noch "brauchbar".
  • Wenn ich den Akku entferne und die Stromversorgung über den USB Port erfolgt, sind die Messergebnisse noch ungenauer. (auch bei einem Sensor)
  • Nach 7-8 guten Messungen springt das nächste Messergebnis immer auf 5 cm und danach wieder auf den richtigen Wert. ???

Weitere Annahme:

Danke euch für die Hilfe und euer zahlreiches Feedback.

Ich sehe 3 Probleme:

  • Stromversorgung: der Spannungsstabilisator auf dem Arduino verträgt keien größeren Ströme. Nehmt einen DC/DC step dowm wandler um 5V zu erzeugen.
  • Montage der Sensoren. Durch das Ankleben der Sensoren am Alurahmen wird der Ultraschall vom Sender zum Empfänger bzw zum nächsten Sensor geleitet. Die Sende/Empfangskapseln dürfen nicht am Rahmen angeklebt werden oder diesen berühren sondern der Sensor muß an der Platine befestigt werden.
  • Interferenz eines Sensors mit dem nächsten. Eine Messung muß zeitlich so lange von der nächsten entfernt sein daß das Echo abgeklungen ist. Es braucht längere Pausen.

Grüße Uwe

uwefed:
Ich sehe 3 Probleme:

  • Stromversorgung: der Spannungsstabilisator auf dem Arduino verträgt keien größeren Ströme. Nehmt einen DC/DC step dowm wandler um 5V zu erzeugen.
    ...
    Grüße Uwe

Ok ich setze mal bei der Spannungsversorgung an. Sind die verlinkten DC DC step-down converter in Ordnung oder kannst einen anderen empfehlen?

http://www.ebay.de/itm/mini-AMS1117-5-5V-DC-DC-Step-Down-Voltage-Regulator-Convertor-CP07016-D96-/271513587425?hash=item3f37788ee1:g:DgYAAOSwstxVN0dh

http://www.amazon.de/gp/product/B00CWQFYVU/ref=pd_luc_rh_bxgy_01_04_t_img_lh?ie=UTF8&psc=1

Galoshi:
Ok ich setze mal bei der Spannungsversorgung an. Sind die verlinkten DC DC step-down converter in Ordnung oder kannst einen anderen empfehlen?

http://www.ebay.de/itm/mini-AMS1117-5-5V-DC-DC-Step-Down-Voltage-Regulator-Convertor-CP07016-D96-/271513587425?hash=item3f37788ee1:g:DgYAAOSwstxVN0dh

http://www.amazon.de/gp/product/B00CWQFYVU/ref=pd_luc_rh_bxgy_01_04_t_img_lh?ie=UTF8&psc=1

http://www.amazon.de/DROK-Aufwärtswandler-Einstellbare-Spannungskonstant-Spannungsregler/dp/B00IID9ROQ/ref=sr_1_11?ie=UTF8&qid=1460009775&sr=8-11&keywords=step+down+dc+dc#Ask

Der erste ist kein Stepdown-Regler, nur ein Längs-Regler der auch Leistung verheizt.
Die beiden anderen sind geeignet, aber normal brauchst du da doch keine Anzeige drauf.

Dies hier verwende ich und sind auch gut und günstig. :wink:

StepDown-Regler

oder:

StepDown-Regler

Ok super vielen Dank! Ich werde euch spätestens am Montag Feedback geben über die Fortschritte...
Have a nice Weekend!

uwefed:

  • Montage der Sensoren. Durch das Ankleben der Sensoren am Alurahmen wird der Ultraschall vom Sender zum Empfänger bzw zum nächsten Sensor geleitet. Die Sende/Empfangskapseln dürfen nicht am Rahmen angeklebt werden oder diesen berühren sondern der Sensor muß an der Platine befestigt werden.

Das würde ich auch unbedingt prüfen. Löse mal 2 Sensoren aus der Verklebung und teste sie lose. Ich erinnere mich an einen Thread (finde ihn aber nicht mehr), wo jemand verzweifelte, weil die Sensoren verbaut Mist maßen, im losen Tastaufbau aber funktionierten.

Ich glaube es sind die ganz billigen Sensoren.
Meine vier Stück schaffen ungefähr 1.20m obwohl ich

-eine eigene Stromversorgung hab
-die Sensoren lediglich mit kleinen Platinen am Monster verschraubt habe

  • auch zu Testzwecken nur nen einzigen in Betrieb genommen hatte

Leider bin ich noch nicht dazu gekommen, die Sache weiter zu verfolgen, aber wenn es ne Lösung gibt wäre ich höchst interessiert.
Man kann die Kapseln im übrigen durchaus am Gehäuse montieren, wo anders hat das bei mir (und anderen, wie ich irgendwo las) mit Heisskleber einwandfrei funktioniert.
Selbst nen Gitter kann man noch davor machen (grobmaschiges, hab ich selbst verszucht, Streckmetall ausm Baumarkt).
Wichtig aber ist ne ordentliche Stromversorgung: bei einbrechender Spannung geht die Reichweite tatsächlich spürbar runter.

Galoshi:
Zum Messen der Abstandswerte verwende ich die ping-library mit einem ping Intervall von 33 ms.
...
Kann mir einer sagen was ich falsch mache?

Nein, dazu reichen Deine Angaben bei weitem nicht aus. Aber ich habe die Vermutung, dass Du Deine Sensoren viel zu kurz nacheinander triggerst, und Du die die elf Fremdechos komplett außen vorläßt.

Meine Einschätzung ist, dass bei Dir sehr oft Fremdechos von einem früher getriggerten Sensor empfangen werden und nicht das Echo des Sensors, der das Ping tatsächlich gesendet hat.

D.h.:

Sensor 1 fängt das Echo entweder vom Sensor-1-Ping oder vom Sensor--12-Ping
Sensor 2 fängt das Echo entweder vom Sensor-2-Ping oder vom Sensor--1-Ping
Sensor 3 fängt das Echo entweder vom Sensor-3-Ping oder vom Sensor--2-Ping
Sensor 4 fängt das Echo entweder vom Sensor-4-Ping oder vom Sensor--3-Ping
Sensor 5 fängt das Echo entweder vom Sensor-5-Ping oder vom Sensor--4-Ping
und so weiter und so fort, alles schön durcheinander

Teste versuchsweise mal mit längeren Zeitabständen, also z.B. mindestens 100ms zeitlicher Abstand, bis der nächste Ping getriggert wird!

Damit zur selben Zeit immer nur Echos von einem einzigen Ping im Raum unterwegs sind, und nicht noch gleichzeitig diverse Fremdechos von anderen, früher gesendeten Pings.

Und zeige mal eine Detailaufnahme, wie Du die Sensoren befestigt hast! Sowohl der Ultraschallsender als auch der Ultraschallempfänger bei diesen Modulen muß "frei" abstrahlen bzw. empfangen können, die runden Kapseln dürfen nirgendwo an festmontierten Bauteilen anliegen.

Guten Abend alle zusammen,

sorry für das verspätete Feedback, aber ich habe das Problem nun gelöst.
Besser gesagt gab es nicht nur ein, sondern mehrere Probleme:

1.: Es lag zum Teil an den günstigen China-Sensoren. Ich habe mir 12 HC-SR04 Sensoren des Herstellers Aukru bei Amazon bestellt. (Aukru HC-SR04 - Amazon.de)
Der Vorteil dieser Sensoren ist, dass sie sehr genau mit einer Toleranz von +-2cm messen und bei bei fehlerhaften Messungen einen Wert von ca. 2450 rausgeben. Dies kann man schön rausfiltern. Auch haben die Sensoren keinen "internen" delay von 1Sekunde wie die China Sensoren, sondern nur ca. 200ms.

  1. Ich habe die Sensoren vom Gehäuse entkoppelt. D.h.: Die Körper des Transmitters und des Receivers am Sensor schweben in der Luft und berühren keine Fremdkörper.

  2. Ich habe die Außenhaut der Chassis, an welchem die Sensoren verbaut sind, mit einem Baumwoll-Tape beklebt. Dieses Tape dient als schallabsorbierende Oberfläche und verhindert Rückstrahlungen an das Objekt.

  3. Ich trigger die Sensoren nicht nacheinander, sondern in verschiedenen Reihenfolgen. (z.B. 0, 3, 5, 1, ...) Dies bewirkt dass die Strahlungskeulen weit weh voneinander sind und sich nicht gegenseitig bestrahlen.

  4. Nach Empfang meines Sensorwertes hau ich ein delay von 20ms rein, sodass keine "Reststrahlung" mehr vorhanden ist.

Hier noch ein Bild meines fertigen Aufbaus:

Hi Galoshi, hab dir ne PM geschickt, würde mich freuen von dir zu hören. Grüße