PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ultraschall Abstandsensor aus dem Bereich Wissen



danst
11.01.2006, 21:08
Hallo,

dumme Frage: Kann man die Schaltung aus dem Artikelbereich (https://www.roboternetz.de/wissen/index.php/Ultraschall_Interface) auch ohne den Spannungsfolger (den OPAMP) bauen, wenn man die Analoge Spannung nicht braucht? Oder ist der Teil essentiell?

Vielen Dank,

Daniel

Manf
11.01.2006, 22:12
So ist es, man kann den OPAmp auch weglassen.
Manfred

danst
12.01.2006, 07:23
super vielen Dank!

Daniel

danst
16.01.2006, 13:02
noch eine kleine Frage zu der Schaltung: mich wundert ein bisschen, dass da kein Frequenzgenerator für die 40kHz eingebaut ist. Ist der bei den US-Lautsprechern schon mit drin? Oder braucht man den nicht? Ich hab den UST-40T von Reichelt.

Vielen Dank,

Daniel

Manf
16.01.2006, 16:12
https://www.roboternetz.de/wissen/index.php/Ultraschall_Interface[/url] ]Die Schaltung hat 3 äußere Signal-Anschlüsse:
Start in: der übliche Ruhepegel ist 1. Beim Start wird ein Burst von 16 Perioden des 40kHz Signals (auch 8-64 erprobt) eingespeist und der Pegel bleibt danach bis zum Ende der Laufzeitmessung auf 1.
Die Schaltung hier ist minimal. Da der Controller den Burst einspeisen kann, ist diese Funktion ausgelagert. Ich mache auch noch mal eine Schaltung mit interem Generator.
Manfred

danst
16.01.2006, 17:47
Das mit dem internen Generator wäre mir gar nicht mal so wichtig, ich hatte nur überlesen, dass ich den Puls einspeisein muss...;-(

Wäre super wenn mir jemand folgende Fragen kurz beantworten könnte.

a) Kann der Controller (bei mir AVR) den Takt direkt einspeisen oder sind die maximalen 20mA zu wenig Strom? Und müsste man daher einen Transistor davorsetzten?

b) Wie groß ist denn die maximale Entfernung, die noch messbar ist?

c) Nur damit ich es richtig verstanden habe: Pulse Out ist im Ruhezustand auf 1? Das ist nämlich bei mir nicht so;-(

d) und nochmal für dummies: ich speise den Takt ein, bringe Pulse-In wieder auf den Ruhepegel 1, dann müsste Pulse-Out 0 sein, dann warte ich bis Puls-Out 1 wird und messe die Zeit die dazwischen liegt, oder?

Vielen Dank,

Daniel

danst
17.01.2006, 11:57
Jetzt habe ich den Fehler, den es bei mir in der Schaltung irgendwo geben muss, etwas eingeschränkt:
An dem 47nF Kondensator, an dem eigentlich der OpAmp hängt, den ich weggelassen habe baut sich keine (nur einige mV) Spannung auf! Auch wenn den Burst verlängere liegt die max Spannung bei 40mV!

Ist das normal?
Danke,

Daniel

Manf
17.01.2006, 12:05
Die Spannung soll ja über den 220k Widerstand erhöht werden. Am Ausgang des oberen Gatters liegt dazu ein High-Pegel. Der Start in ist auch auf high also wird die Spannung ansteigen.
Manfred

danst
17.01.2006, 17:58
ok, wahrscheinlich ich hatte mich vorher vermessen, jetzt liegt am kondensator eine spannung von etwa 3.27 an und diese geht dann (auf meinem langsamen multimeter) bis auf 3,15 zurück... das ist aber wahrscheinlich zu wenig, oder? es funktioniert nämlich trotzdem nicht...

Danke,

Daniel

danst
17.01.2006, 18:03
ach ja... ich erzeuge den burst in einem timer, der 80000 mal pro sek den Inputpin des US-Moduls umschaltet. Der muss doch 400mikrosek laufen um auf die 16 Impulse zu kommen, oder?

Daniel

Manf
17.01.2006, 18:16
Ach da oben waren ja noch Fragen,
a) Ein Symmetrischer Ausgang für 20mA reicht leicht, ein unsymmetrischer mit 10k Pullup sicher nicht, dann sollte man den unteren Anschluss des Sendewandlers lieber an GND legen.
b) Hier ist ja eine Zeitkonstante von 200k x 47n für die Laufzeit (doppelte Strecke) gewählt. Je nach Echofläche so etwa ein bis zwei Meter.
c) Pulse out: Der Pegel geht bei Start der Messung auf 0. Bei Eintreffen eines Echosignals geht der Pegel auf 1 und es kann das Ende der Messung erkannt werden. Die Pulsdauer ist damit die doppelte Schallaufzeit plus die Filtereinschwingzeit. Der inverse Pegel ist in der Schaltung auch verfügbar.
d) „ich speise den Takt ein, bringe Pulse-In wieder auf den Ruhepegel 1, dann müsste Pulse-Out 0 sein, dann warte ich bis Puls-Out 1 wird und messe die Zeit die dazwischen liegt, oder?“
Ja so ist es, ist denn der Ablauf in der Schaltung nachvollziehbar?


Dann aktuell: wie ist die Schaltung denn aufgebaut? Du hast bis jetzt nur gesagt, dass Du den OP weggelassen hast.
Manfred

Manf
17.01.2006, 18:57
ach ja... ich erzeuge den burst in einem timer, der 80000 mal pro sek den Inputpin des US-Moduls umschaltet. Der muss doch 400mikrosek laufen um auf die 16 Impulse zu kommen, oder?

Daniel
Ja, 400µs, 16 Impulse ist ein guter Wert für das volle Einschwingen der Wandler.

danst
17.01.2006, 18:59
Erstmal vielen Dank für deine extensive Hilfe Manfred!
Ich hab den Aufbau, so wie ich die Schaltung auch auf eine Lochrasterplatine gebaut habe gezeichnet.

Ich glaube auch, dass ich dem Problem näherrücke:
Je nach dem wie ich den Poti bewege ist die Ausgangsspannung _immer_ entweder 0 oder 5V. Dabei ist die Spannung am Kondensator dann jeweils entgegengesetzt (also bei 0V Out ->3,27 V am 47n-Kondensator, bei 5V -> 0V am Kondensator) und zumindes mit meinem Multimeter kann ich leider keine Änderungen (außer ein Zittern im mV Bereich) feststellen. Die Grenze ab der die Spannungen umspringen liegt bei etwa 5,7 kOhm des Potis.

Viele Grüße,

Daniel

Manf
17.01.2006, 19:07
Was sind das denn für Ausgänge an denen der Sender hängt?, wenn die nichts treiben können, dann kommt auch nichts zurück.

Der eine ist vom 4011 der andere, der in wenn der mit einem schwachen Pullup ausgestattet ist dann kann man ja das freie Gatter noch nachschalten als Inverter für den Senderpin.
Manfred

danst
17.01.2006, 19:39
Ich glaub ich hab die Frage nicht ganz verstanden, vor allem das mit dem Pullup..

Also Der Sender hänt mit einem Bein am Eingang des NAND (die zusammengeschalten sind) und das andere am Ausgang, so hatte ich das aus dem Schaltbild verstanden.

Ich dachte das würde dann schon zur Invertierung führen wenn ich den Sendelautsprecher so anschließen würde, oder nicht?

So jetzt hab ich mir mal das Datenblatt zu dem Controller angesehen:
als maximum ist dort nichts angegeben, als typisch nur: 1 für drive bzw. 2,6mA für sink.

Das ist wohl zu wenig, oder?

Wie komme ich da drum rum? Ein Transistor???

Vielen Dank,

Daniel

Manf
17.01.2006, 20:45
Ich habe das mit dem Wandler mal in den Plan eingetragen, an den C-MOS Ausgängen müßte es besser gehen.
Manfred

danst
18.01.2006, 08:56
Guten Morgen,

das ist wirklich verwunderlich, jetzt habe ich den Transmitter umgelötet, leider ohne sichtbaren Erfolg.

Wenn ich das Senden deutlich verlängere kann ich an den beiden Ausgängen an denen der Transmitter angeschlossen ist (während des Sendens) eine Spannung von 0V messen. Ist das korrekt. Wahrscheinlich durch die Invertierung?!
Und sonst eine Spannung von 5V.

Hab grad mal an meinen US-Transmitter den Widerstand gemessen... der ist ziemlich hoch, wird nämlich nicht mehr angezeigt (>2MOhm). Der Receiver ebenfalls.

Ist das normal?

Daniel

Manf
18.01.2006, 09:11
Wenn ein 40kHz Signal anliegt dann sollte man im allgemeinen nicht 0V messen.

Der hohe Gleichstrom-Widerstand der Wandler ist normal es sind Piezo Wandler.
Manfred

danst
18.01.2006, 14:35
Also am Transmitter liegt folgendes Signal an, wenn ich sende... allerdings 1024 mal schneller (via Timer Prescaler), weil mein Oszilloskop nur mit 44kHz abtastet (halt meine Soundkarte).
Jetzt habe ich gehofft, dass das was bringen würde, aber leider stimmt die Frequenz anscheinend.;-(
Ach ja, die degressiv fallenden Kurven müssten wohl geraden sein! Liegt glaub ich auch an der Soundkarte...

Könnte es sein, dass eins der Bauteile kaputt ist?

Gruß,

Daniel

Manf
18.01.2006, 16:49
Also am Transmitter liegt folgendes Signal an, wenn ich sende... allerdings 1024 mal schneller (via Timer Prescaler), weil mein Oszilloskop nur mit 44kHz abtastet (halt meine Soundkarte).
Jetzt habe ich gehofft, dass das was bringen würde, aber leider stimmt die Frequenz anscheinend.;-(
Ach ja, die degressiv fallenden Kurven müssten wohl geraden sein! Liegt glaub ich auch an der Soundkarte...
Könnte es sein, dass eins der Bauteile kaputt ist?
Gruß,
Daniel
Die Kurve kann ich nicht mit dem Signal am Transmitter in Verbindung bringen. Mit einem (Timer prescaler) aufgenommen, has heißt es wird nur die Frequenz gemessen?

Die Bauteile kennst Du besser als ich, da ist auf die Entfernung schwer etwas zu sagen.

Wenn Du den Sender in Dauerbetrieb bringen kannst und den 47nF Kondensator auf 3-5V auflädst dann müßte sich ja am Kollektor des ersten Transistors ein Signal zeigen. Es müßte dann eine Einstellung des Potis geben bei dem der zweite Transistor je nach Stärke des Schallsignals das Gatter für Pulse Out durchschaltet oder nicht (wenn der zweite Ausgang des Gatters auf high liegt).

Ein Oszilloskop hast Du offensichtlich nicht, kannst Du denn hochohmig ein AC Signal von 40kHz feststellen?
Manfred

danst
19.01.2006, 08:52
Also die Ausgabe meines "Oszilloskops" (prinzipiell einfach nur zwei drähte über einen Widerstand an den Mikrofoneingang der Soundkarte angeschlossen) müsste schon die Frequenz sein, die am Transmitter anliegt. (da hab ich sie auch her) Ich wollte einfach nur sehen, ob denn überhaupt was ankommt und darum habe ich die Frequenz etwas runtergeschraubt, weil die Soundkarte ja nur mit 44kHz abtastet und 40kHz dazu zu schnell wären...

Ist aber auch nicht so wichtig.

Also wenn der Sender dauernd sendet geht die Spannung am Kondensator leider auf etwa 0.45V runter und bleibt konstant dort.
Der erste Transistor hat eine Spannung von knapp 5V zw. Kollektor und Emitter (d.h. doch dass er sperrt, oder?)

Viele Grüße,

Daniel

Manf
19.01.2006, 09:10
Wenn Du den Sender in Dauerbetrieb bringen kannst und den 47nF Kondensator auf 3-5V auflädst dann müßte sich ja am Kollektor des ersten Transistors ein Signal zeigen.
Also wenn der Sender dauernd sendet geht die Spannung am Kondensator leider auf etwa 0.45V runter und bleibt konstant dort.
Das ist mir schon klar, dann müßte man halt die Diode zwischen dem Sendesignal und den Kondensator mal für die Messung herausnehmen, bzw. die Leitung an einer Stelle unterbrechen.

Das wäre dann eben eine Messung im eingeschwungenen Zustand. Ohne Oszilloskop ist eine Messung der Abläufe in der Schaltung sonst wohl schwierig.
Manfred

H.A.R.R.Y.
19.01.2006, 11:35
Tach,

hast Du schonmal die Betriebsspannung des 4011 kontrolliert? In der Skizze sehe ich nur "OpAmp" da dranstehen und den wolltest Du ja weglassen - nicht das der 4011 jetzt auch keine Versorgung bekommt!

H.A.R.R.Y.
19.01.2006, 11:40
Hi, da bin ich gleich nochmal:


a) Kann der Controller (bei mir AVR) den Takt direkt einspeisen oder sind die maximalen 20mA zu wenig Strom? Und müsste man daher einen Transistor davorsetzten?


Ja, das kann der AVR alleine - auch wenn die andere Seite des Wandlers an Masse hängt. Funktioniert bei meinem ATmega8 problemlos, versprochen.

danst
22.01.2006, 12:08
Leider hat sich bis jetzt nichts ergeben.
Ich glaube ich baue die Schaltung einfach nochmal auf.
Kann mir jemand sagen, ob ich zumindest keine designtechn. Fehler gemacht habe? Zu lange Kabel, kein Kerko oder ähnliches?

Danke,

Daniel

ps: bei Reichelt gibt es nur Spulen mit 4,7M soll das milli bedeuten? Muss die Spule irgendwie besonders sein?

Manf
22.01.2006, 13:02
Ein Abblocken der Versorgungsspannung wird bei Analogschaltungen schon erwartet das sollte man in jedem Fall noch einbringen.

Sonst ist es das beste, die Schaltung stückweise auf Funktion zu überprüfen um eine defektes Bauelement oder einen Verdrahtungsfehler auszuschließen.
Manfred

danst
22.01.2006, 13:43
Wäre das hier eine passende Spule?
09P 4,7M bei www.reichelt.de
Ich frag vor allem, weil im Text was von 60Ohm Widerstand der Spule die Rede ist und diese angeblich nur 11,5 hat!

Danke,

Daniel

Manf
22.01.2006, 16:49
Das stimmt, nicht alle Spulen habe eine schwache Güte aber die 10k oder weniger Innenwiderstand des nachfolgenden Teilers, der über einen großen Kondensator angekoppelt ist, dämpfen den Schwingkreis.

Wenn die Grundfunktion mal läuft kann man den auch hochohmiger machen, um die Empfindlichkeit zu steigern.

Eine solche Spule habe ich im Foto nicht gesehen, dort ist es doch das gelbe Bauelement neben dem Trimmer, oder?
Manfred

danst
22.01.2006, 18:26
ne im Bild ist es eine axiale Spule... rechts neben dem großen roten Kondensator und links neben dem rechten Transistor...

Wird aber alles noch ein bisschen daueren, weil ich noch ein bisschen für meine Bestellung sammle, um nicht gleich wieder bestellen zu müssen.

Viele Grüße,

Daniel

danst
28.01.2006, 11:02
Hallo,

leider konnte ich noch nicht weiterbasteln, daher noch nichts neues von der Seite.

Aber natürlich mache ich mir trotzdem ein paar Gedanken:
Könnte man die Schaltung nicht noch weiter vereinfachen, indem man einen Mikrocontroller mit einbaut?
Also dann nur den Empfänger, einen Verstärker und dann den Mikrocontroller, der das erkennen übernimmt und dann bspw. Signale per I2C weitergeben kann?

Inspiriert hat mit die Schaltung im Anhang. Leider mit einem PSoC (was auch immer das ist...;-)) aber vielleicht würde es mit ein paar mehr Teilen und Software funktionieren...

Viele Grüße,

Daniel

Manf
28.01.2006, 11:23
PSoC Programmable System-On-Chip
Damit kann man so ziemlich alles "vereinfachen", abgesehen von den Motoren (bis jetzt).
manfred

danst
28.01.2006, 20:58
so jetzt bin ich kurz vor der Bestellung der Teile. Ich wollte mich nur noch mal von einem Profi beraten lassen:

Es sollte eigentlich schon möglich sein den US-Abstandssensor ohne Komplikationen und sonstige Hilfsmittel aufzubauen, oder?

Natürlich werde ich diesmal erst auf einem Steckbrett testen, aber ich würde gerne gleich die Teile für 6 Sensoren kaufen (wg. Porto) und ich kenne niemanden der ein Oszilloskop hat um die Schaltungen alle zu testen und kalibrieren...

Vielen Dank,

Daniel

Manf
28.01.2006, 22:44
Ohne Oszilloskop ist eine Messung der Abläufe in der Schaltung sonst wohl schwierig.
Es sollte eigentlich schon möglich sein den US-Abstandssensor ohne Komplikationen und sonstige Hilfsmittel aufzubauen, oder?
Sonsitge Hilfsmittel braucht man eher nicht, es kommt im allgemeinen ganz auf die Vorkenntnisse an.
Worauf bezieht sich die Frage?
Manfred

danst
28.01.2006, 23:22
Also ich denke ich habe beim Aufbau der ersten Schaltung irgendeinen Fehler gemacht, o.ä.

Jetzt wollte ich bei Reichelt groß bestellen und gleich meinen ganzen Roboter ausstatten (so 6 Sensoren), wenn aber später herauskommen sollte, dass ich die Schaltung so gar nicht aufbauen kann, weil mir doch ein Oszilloskop o.ä. fehlt und man das unbedingt zum testen/einstellen bräuchte, wäre das halt blöd...;-)

Also, was ich wissen wollte ist: Mit einem Lötkolben, dem Schaltplan und allen Bauteilen bewaffnet (ein Voltmeter hab ich auch noch und etwa 1 Jahr Atmel und co. Erfahrung) müsste es eigentlich möglich sein aus den Teilen für 6 US Sensoren auch 6 US-Sensoren zu basteln, oder? 8-[

Vielen Dank für die Hilfe,

Daniel

ps. mir ist klar dass das keine rechtsverbindliche antwort werden kann/soll, ein "eigentlich schon"/"eher nicht" genügt mir;-)

Manf
29.01.2006, 07:36
Du hast alle Elemente da, um eine Schaltung aufzubauen und zu testen? Dann baue sie auf und teste sie. Wo ist das Problem? Wenn Du jedes Bauelement 6 mal da hast ist doch nichts anders.

Bei mir funktioniert die Schaltung problemlos, sicher schaue ich mir die Signale an und natürlich mache ich auch mal einen Verdrahtungsfehler den ich dann finde.

Es könnte sein dass Du lieber etwas mehr Empfindlichkeit in der Schaltung hättest, oder eine größere Reichweite, das kannst Du alles mit einer Testschaltung ausprobieren und dann bis zur Serie verbessern.
Manfred

danst
29.01.2006, 10:16
die dioden sind unkritisch, oder? "normale 1n4148" passen da?

Gruß,

Daniel

Manf
29.01.2006, 10:35
Ja, die Dioden sind unkritisch, die Einbau-Richtung ist ein bisschen kritisch, sonst haben die 1N4148 ausreichend geringe Sperrströme.
Manfred

danst
21.02.2006, 11:12
Hallo zusammen,

endlich habe ich es geschafft den US-Sensor mal auf einem Experimentierboard aufzubauen.

Und es funktioniert! (Fast auf anhieb) Ich habe auch die, von Manfred oben erwähnte, Erweiterung eingebaut (mit dem zweiten Gatter am Sender).

Leider ist die Reichweite nicht ganz überzeugend. Sie liegt bei etwa 20cm (einfache Strecke).
Liegt das am Aufbau, und wird die noch besser, wenn ich es fest montiere? Angeblich schaffen die kommerziellen ja bis zu 4m... So weit soll es natürlich nicht sein, aber 1m+ wäre schon schön.

Welche Verbesserungen könnte man vornehmen?

Viele Grüße,

Daniel

Manf
21.02.2006, 11:52
Gratuliere das ist der entscheidene Schritt bei einer solchen Schaltung.
Die Schaltung ist klein gehalten und wird so nicht 4m erreichen. Ich habe testweise auch schon den zweiten Verstärker des TLC272 in den Empfangsweg geschaltet. Der Abgleich ohne Oszilloskop könnte etwas schwierig werden.

Die einfachste Erhöhung der Empfindlichkeit geht über den Kollektorwiderstand, den Schwingkreis.
Sind die Werte für L und C und Lastwiderstand nach Schaltplan?


Wenn der Schwingkreis abgestimmt werden kann, dann kann man die Verstärkung dort leicht erhöhen wenn auch der Eingangswiderstand (der Spannungsteiler) der zweiten Stufe erhöht wird.

Ein einfacher Test-Abgleich der Spule geht durch Annäherung von eines Ferrit-Stücks (+) oder eines Magneten (-). Ein dauerhafter Abgleich kann auch durch Hinzufügen von Kondensatoren vorgenommen werden.

Vom Spannungsteiler 47k, 10k kann man dann über einen 100k Widerstand an die Basis des 2. Transistors gehen. (Der differenzielle Eingangswiderstand der zweiten Stufe selbst liegt über 300kOhm.) Der Koppelkondensator 10n geht dabei direkt an die Basis.

Manfred

danst
21.02.2006, 21:21
Danke für die Hilfe,

jetzt hab ich doch noch ein anderes Problem, die Schaltung ist nur sehr sehr schwer mit dem Trimmer einzustellen. Direkt nach dem Senden startet ein counter, der zählt, solange der Ausgang des US-Sensors auf 0 ist. Ich lasse mir per LED 3 Zustände anzeigen: Wenn der Ausgang des US-Sensors nicht auf 0 gegangen ist (schnelles Blinken), wenn es einen Überlauf im counter auftritt (langsames blinken; also zu weit weg) und wenn ein valider Counterwert (>1 und <255) gibt.

Diesen Bereich kann ich mit dem Trimmer so "abgehen": ganz in die eine Richtung: langsames Blinken, ganz in die andere Richtung schnelles Blinken. Dazwischen (mit Hindernis) kein Blinken...
Leider ist dieser "kein Blinken" Bereich nur sehr schwer zu finden, weil er wirklich durch weniger als mm bestimmt wird und im Moment kann ich den Bereich leider nicht finden...;-(

ich bin mir auch nicht ganz sicher, ob dieses verhalten normal ist...

Das hier hab ich leider nicht ganz verstanden:
"Vom Spannungsteiler 47k, 10k kann man dann über einen 100k Widerstand an die Basis des 2. Transistors gehen. (Der differenzielle Eingangswiderstand der zweiten Stufe selbst liegt über 300kOhm.) Der Koppelkondensator 10n geht dabei direkt an die Basis. "
Von wo nach wo und in etwa wieso?

Viele Grüße,

Daniel

Manf
21.02.2006, 22:14
Ich habe die Bauelemete nicht mit Namen benannt. Der Kondensator von Kollektor T1 zur Basis T2 soll so bleiben. Der Spannungsteiler an der Basis von T2 soll entsprechend hochohmiger werden.
Manfred