Hi, versuche jetzt seit einer Woche mit dem UST-40R ein von mir ausgegebenes Signal mit einem Atmega8 auszuwerten. LEIDER ERFOLGLOS! Daher bin ich sehr an einer mit nem AVR harmonierenden Empfängerschaltung interessiert! Hoffe auf Rückmeldung. Anders
Anders Radek schrieb: > LEIDER ERFOLGLOS! Und woran liegt das? Wenn deine Bandpässe funktionieren, dein Gleichrichter arbeitet wie er soll und deine Endstufe bei genügend großer Amplitude schaltet, steht doch der Funktion nichts mehr entgegen. Probleme können entstehen, wenn deine Sendefrequenz nicht zum Frequenzgang der/des US-Wandlers oder zur Filterfrequenz der Empfängerschaltung paßt.
Hallo Wolfgang, danke dir. Habe die Schaltung mit einem Oszilloskop untersucht. Die Schaltung tut soweit dass, was sie soll. Habe jedoch nur in einem sehr geringem Winkelbereich eine Reflexion feststellen können. Mit dem AVR ist es mir leider nicht gelungen die Flanke der Reflexion detektieren zu können. Das vorrangige Problem ist also der schmale Winkelbereich, in dem ich überhaupt eine Reflexion des aufgetroffenen Pulses (mit dem Oszi) feststellen kann. Der Winkelbereich wird außerdem mit zunehmenden Abstand kleiner. Vielleicht kann man Empfindlichkeit weiter verbessern? Oder die Filterschaltung optimieren um Rauschen zu entfernen? Weiß nicht wo ich ansetzen soll?? Anders
Nachtrag: Ich sende einen Rechteckpuls mit 40 KHz und Tastverhältnis 1/2. zwischen den Beinen des Empfängers habe ich einen 100 K Ohm Enlade -Widerstand. Der Sender und der Empfänger sind nach Datenblatt auf 40 KHz +- 1 KHz abgestimmt - siehe Datenblatt. Wie finde ich die tatsächliche Resonanzfrequenz raus? Gruß Anders
Anders Radek schrieb: > Vielleicht kann man Empfindlichkeit weiter verbessern? Oder die > Filterschaltung optimieren um Rauschen zu entfernen? Mit deinem Verstärker belastest du die Kapsel ziemlich niederohmig. Prüfe doch mal mit dem Oszi, ob die Größe des Signal der Empfängerkapsel sich wesentlich ändert, wenn du deinen Verstärker an die Kapsel anschließt. Ob die Frequenz gut zur Kapseleigenfrequenz liegt, stellst du am einfachsten fest, indem du mit dem Oszi die Empfangsamplitude vor dem Filter anguckst und die Sendefrequenz zwischen z.B. 35 und 45 kHz durchfährst. Genauso kannst du den Frequenzgang mit den Filtern prüfen, indem du vor dem Gleichrichter die Amplitude anguckst. Mit einem Sender/Empfänger-Modul HC-SR04, wie es bei Ebay für ein paar Euro angeboten werden, kommt man mit einem harten Reflektor Format DIN A3 auf Reichweiten von gut 5m. Die Richtwirkung vergleichst du am besten mal mit dem angegebenen Richtdiagramm (die Zahlenangaben zu Empfindlichkeit sind wohl dB, bezogen auf die Vorwärtsrichtung)
Kann erst am Montag wieder ins Labor der Hochschule, werde mich dann gleich mal ans Oszi setzen und die beiden Sachen ausprobieren. Ein Modul wie das HC-SR04 habe ich in einem vorherigen Projekt verwendet. Hatte den PING von parallax.com eingesetzt. Der schafft drei Meter. Das jetzige Projektziel ist die messbare Entfernung zu vergrößern. Ich will mit 16 V senden und eine Reichweite größer als 6 m erreichen, denn 6 m schafft bereits das SRF-08 oder SRF-10 Modul. Ist der Entladewiderstand von 100 K nicht etwa eine hochohmige Belastung?
Ich hab schonmal mit Ultraschall gebastelt. Herausgekommen ist folgendes: http://files.brauchmer.net/imghost/up/2ad8a3b1a9b228f780f67557c9d7b83e.jpg Gesendet UND empfangen habe ich mit dem MUS-40s von Reichelt. Kurze Funktionserklärung: an Pin9 von SV2 kommt das 40kHz-Rechtecksignal vom µC, am sinnvollsten macht man das mit dem PWM-Modul. Während man sendet und kurz danach legt man High auf Pin10, das legt den Empfänger tot und lädt C10. Sobald man empfangen will, legt man Pin10 auf low, und mit den beiden Potis Slope und Th stellt man die RC-Kurve an IC2B so ein, dass sich möglichst eine gleichbleibende Empfindlichkeit ergibt. Statt den 4 Komparatoren könnte man auch einen LM3914 oder einen ADC der mit beliebigen Referenzspannungen klarkommt nehmen (gibts nen speziellen Namen für, fällt mir aber nicht ein) Betriebsspannung war +-12V, Reichweite war etwa 6m, allerdings mit nem Parabolreflektor aus Pappe. Mit mehr Sendeleistung und einer aufwändigeren Eingangsschaltung als einem MC33078 mit ner Verstärkung von 44 sollte auch mehr drin sein. Schau übrigens auch mal hier http://www.radartutorial.eu/index.html vorbei, viele Verfahren die für Radar verwendet werden, lassen sich auch auf Ultraschall übertragen, grade im Bereich Signalaufbereitung.
Im Buch "Powerprojekte mit Arduino und C" (ISBN-10: 3645651314)ist ein Ultraschall Entfernungssensor mit Schaltplan und AVR-Software beschrieben. Dieser Sensor kann sogar eine Fliege detektieren. Eine derart empfindliche Empfängerschaltung wirst Du benötigen, da Du sonst eine Hausmauer als Echo benötigst. Die Schwäche der obigen Schaltung dürfte in der Schwelle bei der Gleichrichtung zu finden sein.
Anders Radek schrieb: > Das jetzige Projektziel ist die messbare Entfernung zu vergrößern. Ich > will mit 16 V senden und eine Reichweite größer als 6 m erreichen, denn > 6 m schafft bereits das SRF-08 oder SRF-10 Modul. Wie soll den die Empfindlichkeit als Funktion der Richtung aussehen. Für eine Spot-Messung gibt es diverse Möglichkeiten von Gruppen-"Antenne" bis Schüsselreflektor.
An Sascha: Erst mal danke dir. Wofür setzt du denn die vier Komparatoren ein? Verstehe ich das richtig, dass du auf Pin 5 von SV2 alle Ausgänge der Komparatoren zusammenführst und somit eine höhere Verstärkung erreichst?? Da ich keine negative Versorgungsspannung habe, kann ich die Eingangsschaltung wohl so nicht umsetzen. Warum setzt du überhaupt zwei Transistoren am Eingang ein?? Ist ein Transistor am Eingang besser als ein OP? Würde mich über Antworten freuen. Anders
> Da ich keine negative Versorgungsspannung habe, kann ich die > Eingangsschaltung wohl so nicht umsetzen. Oje, das Leben ist so hart.
An Heli: Danke für den Tipp. Wäre es dir möglich die Schaltung aus dem Buch zur Ansicht verfügbar zu machen?? heli schrieb: > Die Schwäche der obigen Schaltung > dürfte in der Schwelle bei der Gleichrichtung zu finden sein. Welche Schwelle ist gemeint? Was fehlt? Was ist falsch?? Anders
MaWin schrieb: > Oje, das Leben ist so hart. Klar. MaWin kannst du mir erklären, wozu Sascha am Eingang zwei Transistoren einsetzt? Geht so was auch ohne negative Versorgungsspannung??
Anders Radek schrieb: > Klar. MaWin kannst du mir erklären, wozu Sascha am Eingang zwei > Transistoren einsetzt? Die zwei Transistoren sind die Ausgangstreiber der Sendeendstufe. Sascha schrieb: > Gesendet UND empfangen habe ich mit dem MUS-40s Und an Pin5 von SV2 liegt die Versorgungsspannung. Irgendwie muß ich MaWin beipflichten ...
Wolfgang schrieb: > Wie soll den die Empfindlichkeit als Funktion der Richtung aussehen. Ist diese Empfindlichkeit nicht durch die verwendeten Sensoren festgelegt? Vielleicht verstehe ich die Frage falsch.
Wolfgang schrieb: > Und an Pin5 von SV2 liegt die Versorgungsspannung. Ja richtig, sehe ich jetzt auch. Aber wozu dann die vier Komparatoren? Wolfgang schrieb: > Irgendwie muß ich MaWin beipflichten ... Ja, tut mir Leid, hab halt noch sehr wenig Erfahrung in Sachen Analogtechnik... Könnt ihr mich nicht trotzdem aufklären? Der Empfänger ist dann an Pin 10 angeschlossen?
OK habe das UND wohl überlesen. Frage hat sich geklärt. Werde mir die Schaltung mal in Ruhe ansehen.
Anders Radek schrieb: > Ist diese Empfindlichkeit nicht durch die verwendeten Sensoren > festgelegt? Nein, die Mindestempfindlichkeit ist durch die Anforderungen in deiner Anwendung festgelegt - und das muss man dann durch geeignete Wandler/Aufbau/Beschaltung und Auswertealgorithmen hinkriegen. Hier ein Beispiel für kreativen Wandlereinsatz: http://www.mikrocontroller.com/jufo/kapitel1.htm
Da gibt es wohl etwas Verwirrung :-) Ja, die beiden Transistoren sind die Sendeendstufe. Der Pappreflektor ist übrigens 25x10cm groß. Wenn man ihn auch genau parabolförmig formt, hört man das Knacken der Ultraschallkapsel auch in einigen Metern Entfernung :-) > Wofür setzt du denn die vier Komparatoren ein? Digitalisierung. Sie vergleichen das aufbereitete Empfangssignal mit der von IC2B erzeugten und mit der Spannungsteilerkette R19-R22 aufgeteilten RC-Kurve. Weitere Infos unter dem Punkt STC: http://www.radartutorial.eu/09.receivers/rx08.de.html > Verstehe ich das richtig, dass du auf Pin 5 von SV2 alle Ausgänge > der Komparatoren zusammenführst und somit eine höhere Verstärkung > erreichst?? Wie kommst du denn darauf? Die vier Widerstände an VDD sind die Pullups für den LM339, der hat OC-Ausgänge. VDD ist in dem Fall 5V, da mein µC mit dieser Spannung läuft. An SV1 liegt die eigentliche Betriebsspannung von +-12V. Im Prinzip kannst du die Schaltung auch mit 4V betreiben. Musst aber einige Sachen ändern und OPs nehmen, die auch mit dieser kleinen Spannung ordentlich funktionieren. Oder erzeug mit einer Ladungspumpe -4V. Für die gewünschte Sendeleistung brauchst du ja eh mindestens einen Wandler. Meine Schaltung bitte nicht als heiligen Gral der Ultraschall-Verarbeitung ansehen. Sie funktioniert zwar recht gut, aber es gibt immer Raum für Verbesserungen.
Sascha schrieb: > Die vier Widerstände an VDD sind die Pullups > für den LM339, der hat OC-Ausgänge. Hi Sascha, brauche ich ebenfalls einen Pullup-Widerstand, wenn ich den externen Interrupt Pin INT1 verwende?? Habe bis jetzt keinen verwendet, hat aber auch nicht funktioniert. Anders
Wolfgang schrieb: > Wie soll den die Empfindlichkeit als Funktion der Richtung aussehen. Das weiß ich nicht, ich möchte jedenfalls aus möglichst großer Entfernung Wände erkennen können... P.S.: Bin bis jetzt nicht ins Labor gekommen, hoffe ich schaffe das morgen... freue mich schon drauf ;-)
Sascha schrieb: > Für die gewünschte Sendeleistung brauchst du ja eh mindestens einen > Wandler. Was ist eigentlich immer mit Wandler gemeint??
Anders Radek schrieb: > Was ist eigentlich immer mit Wandler gemeint?? Das Ding was elektrische Spannung in Ultraschall wandelt und umgekehrt ...
Frage an Radio Eriwan: Hat der ober gepostete C-Code irgend etwas mit der Realität zutun? Wenn Ja: Schau Dir doch mal die Pulsweite des Sendeimpulses an. Meiner Meinung nach fährst Du mit mächtig gebremstem Schaum. Diese Ultraschallwandler stehen auf 40 KHz. 200 µs an + 200 µs aus ist ein bischen dünn... Damit wird Dein "Lautsprecher" zur Flüstertüte.
Das sind nicht 200 µs, sondern 200 CPU Takte. Die CPU ist auf 8 MHz getaktet: das entspricht einer Periodenlänge des CPU-Taktes von 125 ns. Die 200 CPU-Takte entsprechen genau 25 µs = 200 x 125 ns - was der Periodenlänge von 40 KHz entspricht. Amateur schrieb: > Schau Dir doch mal die Pulsweite des Sendeimpulses an. Danke für den Tipp. Das verwendete Tastverhältnis ist 1/2. Wie hoch kann man es denn wählen?? Reicht da 3/4 oder besser noch höher??
In letzter Konsequenz handelt es sich bei einem Ultraschallwandler um eine schwingfähige Masse. Vielleicht solltest Du der mehr als EINEN Tritt in den Hintern geben. Im Rahmen eines Schülerprojektes habe ich gute Erfahrung mit einem 8-er Paket gemacht. Es gehen wohl aber auch weniger.
Wieso benennst Du eigentlich eine Funktion: _delay_us() wenn sie etwas völlig anderes macht? Darüber hinaus: for(int i = laenge;i>0;i--) { _delay_us(1); } aufgerufen mit 200, macht etwas ganz anderes als _delay_us(200); Also wundere Dich nicht, wenn Deine Zeiten für'n A***** sind.
Zum dritten: >Das verwendete Tastverhältnis ist 1/2. Wie hoch kann man es denn >wählen?? >Reicht da 3/4 oder besser noch höher?? Wie die angehängte Zeichnung zeigt, kann man bei einem Einzelimpuls von keinem Tastverhältnis bzw. von keiner Frequenz sprechen. Die oberen beiden Verläufe lassen sich noch in dieses Schema pressen. An den unteren zwei Impulsen kannst Du aber klar sehen, dass dies bei Einzelimpulsen Unsinn ist. Beide Pulse sind gleich lang, gehören aber zu einer anderen "Gesamtfrequenz".
Wolfgang schrieb: > Mit deinem Verstärker belastest du die Kapsel ziemlich niederohmig. > Prüfe doch mal mit dem Oszi, ob die Größe des Signal der Empfängerkapsel > sich wesentlich ändert, wenn du deinen Verstärker an die Kapsel > anschließt. Habe die entsprechende Messung durchgeführt. Ergebnis: ohne Belastung durch Verstärker: 78,12 mV mit Belastung durch Verstärker: 58,12 mV Was kann ich tun, damit ich nicht diesen Verlust habe??
amateur schrieb: > for(int i = laenge;i>0;i--) { > _delay_us(1); > } > > aufgerufen mit 200, macht etwas ganz anderes als > > _delay_us(200); Wieso siehst du da einen Unterschied?? Die Funktion warte_us (int laenge) wird doch bei Aufruf warte_us(200) 200 Mal _delay_us(1) ausführen?? Oder verstehe ich hier was falsch? Hinzu käme doch lediglich die Zeit die die CPU benötigt um den Code 200 Mal auszuführen
amateur schrieb: > Wie die angehängte Zeichnung zeigt, kann man bei einem Einzelimpuls von > keinem Tastverhältnis bzw. von keiner Frequenz sprechen. Ich sende einen Burst von mindestens acht Perioden, also kann man doch von einem Tastverhältnis sprechen?! Wie hoch würdest du das Tv den jetzt einstellen??
Die Zeit zwischen den Sendebursts muss natürlich so lang sein, dass Echos von der maximal gewünschten Entfernung noch sicher zurückkommen können. Bei 6m wären das etwa 36ms. Die Sendebursts habe ich 1ms lang gemacht, denn der Piezo braucht ein paar Perioden, bis er richtig schwingt. Während der Piezo sendet kann natürlich nicht empfangen werden, somit ist die minimale Messentfernung etwa 30cm.
>Wieso siehst du da einen Unterschied?? Die Funktion warte_us (int >laenge) wird doch bei Aufruf warte_us(200) 200 Mal _delay_us(1) >ausführen?? Bei kurzen Verzögerungen in einer for-Schleife kommt noch so einiges an Overhead dazu. Ein Integerzähler muss gesetzt werden (1 mal) dann - Eine Verzögerung muss aufgerufen werden (n mal call mit allen drum und dran und ret) - Eine Integerzahl muss dekrementiert werden (n mal 2 Bytes holen + sub/sbc + zurück) - Eine Integerzahl muss auf Null abgefragt werden (n mal) - Eine Verzweigung zum call findet statt (n-1 mal) wohl gemerkt: Nur bei kurzen Verzögerungen ein großes Problem.
Habe mich die letzten Tage damit beschäftigt die Sendeleistung auf 16 V zu bringen. Stehe immer noch vor dem Problem, dass ich den externen Interrupt nicht wie gewünscht ausgelöst bekomme. Ich möchte gerne die erste steigende Flanke der zurückkommenden Echos erkennen. Meine Frage: Muss ich irgendeine Form von Pullup oder Pulldown Widerstand verwenden? Die Amplitude des zu erkennende Signal ist über 70% der der Versorgunspannung.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.