Zeitdauer eines HIGH-Signals ermitteln

Julian248:
Im gesamten ist der Sketch somit aber übersichtlicher. Teilaufgaben lassen sich leichter unterscheiden und mit Kommentaren versehen.

Lösung:
Copy&Paste in z.B. ein WordPad oder in den Arduino Editor

Nein.

Wenn man Hilfe möchte, macht man es den Helfenden so komfortabel wie möglich. Dazu gehört z. B., Code so aufzubereiten, dass er hier gepostet werden kann. Wenn Du mehr Übersichtlichkeit brauchst, benutze andere Mittel.

Gruß

Gregor

Hallo Julian.

Sehe ich das richtig? Du sendest erst von beiden "Türmen" den Trigger. Dann machst du die High -> Low Messung für den ersten und dann die High -> Low Messung für den zweiten. Dazu sollte man erstens wissen, dass der Hall nach dem aussenden wie eine Biliardkugel im Raum von Wand zu Wand geworfen wird. Du bekommst also eines der beiden gesenden Trigger-Signale zu jeden Turm zurück.

Du musst erst den Trigger von Turm eins senden und die Messung am Turm eins ausführen, dann warten bis diese "Billiardkugel" (Signal von Turm eins) sich ausgetobt hat, und dann den Trigger von Turm zwei auslösen und diesen Messen. Dann wieder die wartezeit bis dieses Signal verhallt ist, dann wieder Turm eins Triggern. Ich müßte jetzt nachsehen, aber ich glaube bei den Demos für den HC04 sind das etwa 700ms.

Franz

Franz54:
Du sendest erst von beiden "Türmen" den Trigger. Dann machst du die High -> Low Messung für den ersten und dann die High -> Messung für den zweiten.

Aktuell habe ich 3 dieser Ultraschallsensoren.

An einem Arduino (das Messobjekt) läuft ein Impulsgeber (Rechtecksignal) zum Triggern, welches über ein 433MHz Funkmodul an alle Ultraschallsensoren gleichzeitig gesendet wird.

An dem anderen Arduino sind alle Türme angeschlossen.
Bei den Türmen habe ich jeweils den Ultraschall-Sender abgeklebt, somit können diese nur empfangen.

Das heißt, mein Messobjekt schickt einen Ultraschall in den Raum, welcher von allen Türmen aufgefasst werden soll. Direkte Bestrahlung (ohne Echo)
Die Entfernung wird von der an den Türmen gemessenen Zeitdauer berechnet.

Ja o.k., deine Turm 2 Messung ist mehr als doppelt so lang wie die Turm 1 Messung. Wenn der Turm in der Mitte steht, ist aber klar dass das nicht sein kann. Also bekommst du nach dem Turm 1 das Signal bekommen hat und du das ausgewertet hast, am Turm 2 das Signal nicht mehr mit. Da bekommst du dann erst das Signal mit, nachdem es irgenwo von einer Wand im Raum zurück geworfen wurde. Dann hat es mehr als den doppelten Weg zurück gelegt. Irgend sowas muss es doch sein, wenn die Zeit zum Turm 2 mehr als doppelt so lang ist? Deshalb würde ich die Messungen auf drei Einzelmessungen aufbauen. Und jeder Echosensor gibt sein Signal selber aus, in entsprechenden Abständen.

Oder man nimmt einen Arduino Due. Da kann man bis zu drei Task´s nebeneinander laufen lassen. Dann bekommt man drei Ergebnisse, die auch in der absolut selben Zeit ablaufen können. Das Thema hatten wir gerade erst in einem anderen Arduino Forum. Ich denke der Due würde dein Problem lösen. Ist natürlich für mich nur Theorie, weil ich noch keinen Due habe. Aber wenn der so funktioniert wie wird dort besprochen haben, dann sollte es damit gehen. Sieht aus wie ein Mega, läuft nicht mit 16, sondern mit 80MHz, und ist kein 8 Bit, sondern ein 32Bit System. Also um Klassen besser. Ich werde mir so bald ich kann, 1-2 solche Dinger zum Testen anlachen.

Franz