Liste der Anhänge anzeigen (Anzahl: 1)
Ultraschall Entstörung
Hallo,
ich bin gerade dabei eine Entfernungsmessung mit Ultraschall aufzubauen. Die Sensoren sind folgende: MUS-40S/E
http://www.reichelt.de/Sensoren/MUS-...T=0&OFFSET=16&
Die Schaltung befindet sich im Anhang.
Als Testaufbau befinden sich der Sender und Empfänger direkt gegenüber.
Im Prinzip funktioniert auch alles wunderbar. Die Signale werden zuerst 2*verstärkt, dann über den Hochpass gefiltert, und der Komparator gleicht sie an 5V/0V an, sodass ich sie mit einem normalen Port auslesen kann und den adc nicht verwenden muss. Ist der Sender ausgeschaltet, so ist der PIN am atmega8 auf High (anscheinend wurde irgendwo etwas invertiert), ist der Sender eingeschaltet, so ist er auf Low
Das Problem ist nur, stoße ich gegen das Steckbrett, so schaltet der PIN trotzdem um (ersichtlich durch led). Weitere Filter (für einen exakten bandpass) brachten nichts. Das Problem ist durch einen Stoß geht nur ein einzelner Puls vom Empfänger aus, den ich nicht filtern kann.
Wie also unterscheide ich das richtige Signal von einem Stoß?
Im Prinzip sende ich ja etwa 2ms 40kHz aus und warte bis sich der Zustand des Pins umschaltet, nur ist das jetzt das Signal gewesen oder war es nur ein Stoß?
Kann ich Softwaretechnisch herausfinden ob sich der Port mit 40kHz umschaltet? (zb ein Timerinterrupt alle 12.5 mikrosekunden auslösen der abfrägt ob der Port high/low ist, und wenn das 5? mal der Fall war dann ist es das Signal und kein Stoß)
Mfg
Anhang 26259
Liste der Anhänge anzeigen (Anzahl: 1)
Jap, aktive Filter mit Operationsverstärker bringen eine gute Verbesserung. Die Störungen sind nun relativ klein gehalten.
Würde den ein LM324N besser sein? Etwas anderes habe ich zurzeit nicht zur Hand.
Zu meiner Schaltung: nachdem das Signal über den ersten Komparator geleitet wurde (damit auf 5V verstärkt) leite ich es über einen Tiefpassfilter, der die Spannung mittelt, danach wieder mit einem Komparator auf 5V gebracht. Dies hätte/hat den Vorteil das, wenn ein US-Signal da ist, am PIN keine 40kHz anliegen, sondern einfach nur 5V.
Ich denke aber für den letzten Schritt in meiner Schaltung gibt es eine elegantere Methode? Vielleicht über einen Transistor/Mosfet der dann durchschaltet?
Eine Frage noch: kleine Störungen kommen trotzdem als Ausgangssignal aus dem 2.OPV, ich denke es würde einen Vorteil bringen wenn ich die Hysterese beim 1. Komparator vergrößere, nur leider weiß ich nicht wie ich dies bewerkstelligen könnte...
Softwaretechnisch würde ich es folgendermaßen lösen: nach dem Senden, soll er auf den Zustand High beim PIN warten und schauen ob er auch diesen 2ms beibehält, dann kann ich ja auch sicher sein dass es das US Signal auch war und keine Störung.
Mfg
Anhang 26260J
Liste der Anhänge anzeigen (Anzahl: 5)
@vohopri: Es bestünde für mich die Möglichkeit ein Oszi in der Schule zu benutzen, gerade sind aber Ferien^^
Für mich daheim habe ich mir ein Sound-Oszi gebastelt, das in einem gewissen Rahmen funktioniert (ich habe es bisher für PWM-Geschichten benutzt). Bei einem Ultraschall-Signal wird es aber schon sehr kritisch, das stimmt, da: Offset (Gleichspannungsanteile) kann nicht gemessen werden, den exakten Verlauf von 40kHz kann eigentlich von keinen LineIn-Eingang gemessen werden und die Amplitude ebenfalls nicht. Was ich bisher gemacht habe ist, schauen ob das Signal gleichmäßig ist oder irgendein wirrwar (das entspräche einer Störung)
Ich hänge mal ein paar Bilder ran.
Anhang 26263Anhang 26264Anhang 26265Anhang 26266
Bild1 zeigt das Signal nach dem 2.OPV
Blid2 nach dem Sallen-Key Filter
Bild3 nach dem 2.OPV, bei ausgeschaltetem Sender und einem Schlag gegen den Empfänger
Bild4 nach dem Sallen-Key Filter bei ausgeschaltetem Sender und einem Schlag gegen den Empfänger
Bisheriger Stand: es scheint so als ob ich erfolgreich die Schaltung entstört habe.
Kurze Erklärung zu meiner Schaltung:
In den ersten 2 Schritten verstärke ich das Signal und entstöre es durch 2 Kondensatoren in Reihe (bringt aber eher nix), dann kommt ein Sallen-Key-Filter (wie vorgeschlagen ;) ), und zum Schluss ein Komparator der den Pegel für den uc angleicht.
Zum Sallen-Key-Filter: Berechnet habe ich es mit dem Programm AktivFilter 3.1... und da ich absolut keine Ahnung von solchen "komplizierteren" Filtern habe, stand gleich vor dem ersten Problem: Charakteristik? Bessel? Butterworth? Tschebyscheff? Spielt das eine Rolle für mein Vorhaben? Ich glaube ich habe letzteres genommen^^
In meiner Schaltung passiert allerdings folgendes: Das Signal wird absolut richtig entstört, testweise habe ich ein 1-25kHz Signal draufgegeben, was nicht druchkam und wenn ich an den Empfänger stoße, so verzerrt das Signal auch nicht mehr. Aber komischerweiße wird das Signal nicht mehr verstärkt, das bedeutet: wenn ich den Sender immer weiter entferne so bleibt die Amplitude (siehe Bild2) gleich bis plötzlich kein Signal mehr da ist...
Zur Programmierung:
Nur als kleine Verständnishilfe, wie ich vorgehen muss: Zuerst einen Ultraschallpuls von 2,5ms Länge (?) aussenden, und dann einen Timer aktivieren der einfach nur hochzählt, einen weiteren Timer aktivieren der bei jedem overflow eine ISR aufruft, die überprüft ob der pin high oder low ist (dieser Timer sollte möglichst schnell sein, zb Timer0 (8bit) bei einem Atmega8 bei 8Mhz, löst alle 32mikrosekunden einen overflow aus), wenn das ereignis stattgefunden hat, den zählerstand des 1.timers auslesen und man hat die zeit und damit den weg...
oder muss ich noch etwas warten zwischen dem puls aussenden und dem überprüfen, wegen schall in querrichtung o.ä.?
Mfg
Anhang 26267