- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 104

Thema: Ultraschall - Entfernunsmessung mit Ultraschall Interface aus RN

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Die beiden Widerstände mit 100 K und 10 K wären etwa richtig für 6,5-7 V. Bei 5 V müsste der 10 K Widerstand wohl noch etwa größer (z.B. 12 K) . Weil die Verstärkung von DC an gilt ist das aber recht empfindlich, sogar auf Temperaturänderungen.

    Wenn man den 100 K Widerstand an den Kollektor legt, sollte man auch den anderen Widerstand etwa anpassen (in etwa verdoppeln oder noch etwas größer). Gewollt ist hier etwa ein Teiler auf Vcc / 1,4 V. Halt so dass bei Vcc/2 am Ausgang noch etwa 0,7 V an der Basis ankommen.

    Es gibt da noch eine andere Möglichkeit der Auslegung: nur ein Widerstand vom Kollektor zu Basis, und keiner von der Basis nach GND. Der Widerstand sollte dann etwa um den Verstärkungsfaktor des Transisitors größer sein als der Lastwiderstand am Kollektor. Solange man nicht den vollen Hub braucht ist der genaue Wert nicht so kritisch - man muss also den Transistor nicht unbedingt ausmessen.

  2. #2
    Erfahrener Benutzer Roboter-Spezialist Avatar von Thegon
    Registriert seit
    21.01.2011
    Beiträge
    562
    Es gibt da noch eine andere Möglichkeit der Auslegung: nur ein Widerstand vom Kollektor zu Basis, und keiner von der Basis nach GND. Der Widerstand sollte dann etwa um den Verstärkungsfaktor des Transisitors größer sein als der Lastwiderstand am Kollektor. Solange man nicht den vollen Hub braucht ist der genaue Wert nicht so kritisch - man muss also den Transistor nicht unbedingt ausmessen.
    Also, mir gefällt die zweite möglichkeit besser, ich sollte dann demanch, wenn ich eine verstärkung von 20 haben möchte, den Kollektor und die Basis mit einem 2k2 * 20 = 44 k Wiederstand verbinden, der nächste in der Reihe wäre dann 47k, das Probiere ich gleich mal aus.

    So, jetzt hats ein bisschen gedauert, aber leider gibts nun schon wieder Probleme. Ich erhalte nun 20 Interrupts, die Direkt dann kommen, wenn die Bursts gesendet werden.
    Auch gibt es jetzt nichts mehr zu messen, zum Beispiel am Start - In pin. Kaum messe ich, ohne ihn mit dem Interface zu verbinden, erhalte ich 40 kHz rechtecksignal, eingestekt nichts! Sehr mysteriös!
    Sonst: Alle messungen an der eingansverstärkung sind nichts, immer gerade Linie. Die 20 Interrupts, die eben 0 us ausgeben, die sind das einzige Lebenszeichen, das da raus kommt. Irgentwie alles ein bisschen seltsam, jetzt.
    Ich muss wieder einmal fragen ob jemand eine Idee hat was man da machen könnte.

    Mfg Thegon

  3. #3
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Solange man noch sendet kann es leicht zu Interrupts kommen. Das Flipflop wird ja immer wieder zurückgesetzt und das Starke Sendesignal geht auch mal andere als Geplante Wege. Dazu kommt ggf. auch eine direkte Elektrische Kopplung. Es reicht eigentlich die Interrupts erst nach dem Senden einzuschalten. Das davor kommt interessiert eigentlich nicht. Ggf. muss man sogar am Ende noch mal einen Nadelimpuls senden um das Flipflop zurück zu setzen.

    Bei der Auslegung des Widerstandes gab es ein Missverständniss. Mit Verstärkung des Transistors war die Stromverstärkung gemeint, nicht die gewollte Spannungsverstärkung. Für einen Typischen Kleinsignaltransistor wie BC548 hat man da etwa 100-200 als Verstärkung. Also den Widerstand zur Basis etwa 100-200 mal so groß wie den am Kollektor wählen. Das wären hier als etwa 220 K - 390 K. Für eine Stufe mit maximal etwa 500 mV am Ausgang sollte das reichen. Um die Spannungsverstärkung zu begrenzen, kommt dann ggf. ein Widerstand in Reihe zum Koppelkondensator und ggf. noch ein kleiner Kondensator parallel zur Rückkopplung. Über die RC Werte kann man so noch einen untere und obere Grenzfrequenz festlegen.

    Nachtrag:
    Die Treiberschaltung kann ohne Signal von der Steuerung zu schwingen anfangen. So viel anders als ein Quarz verhält sich der Ultraschallsender nicht, nur halt bei 40 kHz und nicht so frequenzstabil.

  4. #4
    Erfahrener Benutzer Roboter-Spezialist Avatar von Thegon
    Registriert seit
    21.01.2011
    Beiträge
    562
    Also, das mit dem Widerstand hats gebracht: Ich erhalte nun am Ausgang der Verstärkung 40kHz 5V amplitude, auch gegen die Decke.
    Nur irgentwie so ganz richtig funktioniert das ganze noch nicht:
    Ich erhalte weiterhin die 20 Interrupts mit dem Inthalt 0, obwohl die Interrupts erst nach dem Senden Atkiviert werden und beim ersten eintreffenden Interrupt aktiviert werden. Aber das mit dem 5V signal ist schon mal gut.

    Auch am Pulse out gibt es weiterhin nichts zu messen, was für mich auf sehr kurze zeiten hindeutet. Sehr seltsam das ganze...
    Nun die Frage ist: warum macht der Komperator nichts sinnvolles, wenn er das 5V Signal von der Verstärkung erhält?
    Oder kommt das 5V Singal villeicht garnicht vom Empfangswandler ?
    Alles so seltsam und man kommt sich so hilflos vor, wenn man keine Sinnvollen Messbilder hat.
    Das einzige, was ich sonst noch herausgefunden habe ist dass das Sendesignal wenn es den AVR verlässt, durch irgentwas stark verändert wird.
    Es ist kaum noch zu erkennen mit dem Oszilloskop, es verändert sich ständig und hat, wenn man einmal zufällig richtig Triggert, eine gewaltig hohe Frequenz (500kHz) Habe aber auch nicht die geringste Ahnung warum das so ist.

    Mfg Thegon

  5. #5
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Wenn die 2. verstärkerstufe schon 5 V liefert, braucht man doch keinen "Komperator mehr". Die Stufe sollte aber auch damit klar kommen. Was passieren kann, ist allerdings das man das Laden des Kondensators für die Verstärkungseinstellung mit bis zum Ausgang bekommt. Man hat da noch ein langsames Signal, das den 40 KHz überlagert ist und ggf. am Ausgang jetzt stört, denn die extra Verstärkerstufe invertiert das Signal.

    Wenn beim Senden schon ein Starkes Signal ankommt, kann der Schwingkreis noch einige Zeit nach schwingen und auch kurz nach dem Ende des Sendens noch einen Interrupt auslösen.

    Das Signal zum Senden sollte einigermaßen Sauber sein. Je nach Logic IC kann es sinnvoll sein einen kleinen Widerstand von vielleicht 100-300 Ohm in Reihe zum Sende Transducer zu haben. Man hat dann keine so kapazitive Last. Damit werden die Oberwellen des Rechtecksignals etwas gedämpft und die Spitzenströme werden begrenzt. Es gibt damit weniger Störungen auf der Versorgung.

  6. #6
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    72
    Beiträge
    13.164
    Nachdem die Verstärkung die ganze Zeit zu klein war kommt es jetzt mit der zusätzlichen Stufen wenn sie den richtigen Arbeitspunkt haben zu einer recht hohen und ggf. auch zu hohen Verstärkung.
    Wenn die Störungen speziell am Anfang nach dem Senden auftreten dann sieht es danach aus, dass der 1MOhm Widerstand für den Baisisstrom des ersten Transistors noch fest an 5V liegt.
    Es ist aber schon ein wichtiger Teil des Konzepts mit der Rampe, dass der Eingangsverstärker während des Sendens noch inaktiv ist.

  7. #7
    Erfahrener Benutzer Roboter-Spezialist Avatar von Thegon
    Registriert seit
    21.01.2011
    Beiträge
    562

    Endlich mal was gutes zu berichten

    Hallo allerseits

    Ich habe den 100 Ohm wiederstand eingebaut und wieder auf Rampenbetrieb umgestellt, weiteres habe ich auch den Triggerlevel um ein gutes stück zurückgesetzt.
    Nun: Ich kann es selber kaum glauben:
    Ich erhalte nun immer interrupts, auch wenn ich bis zur decke messe, zum Beispiel.
    es kommt auch immer nur ein Interrupt, und dieser Braucht um so länger, je weiter die Entfernung ist.
    Ich kann nicht einmal Messbilder aus dem Oszi nennen, da es wieder einmal steikt, aber das ist mir jetzt auch egal, Ich nehme an, es wird wohl so stimmen

    Kurz um: Das Interface erfüllt seine Aufgabe!!!


    Das einzige was jetzt noch ein bisschen Probleme macht, ist die Software. Erstens stimmen die Ausgegebenen zeiten nicht mit den Soll - us zusammen, was mich aber weniger stören würde, da ich sowieso vor habe, das Interface zu eichen.
    Auch kommen ganz bestimmte zeiten (z.B. 1729) besonders oft, sodass ich einen Denkfehler in der Programmstruktur vermute.
    Ich hänge den derzeitig benutzten Code unten an den Beitrag an, wäre schön, könnte ihn mal jemand anschauen.

    Dann einmal vielen vielen Dank allen Beiteiligten an diesem Thread, im Bezug auf die Hardware besonders Manf und Besserwessi, danke für die vielen Tipps und Lösungsvorschläge!

    Naja, an der software gibts schon noch ein bisschen was zu verbessern, denn es gibt teilweise schlimme abweichungen von mehr als 200 us, auf grund dieser Zeiten, die besonders oft kommen, aber ich freue mich schon mal unglaublich, das die Hardware nun einmal keine Probleme macht.


    Mfg Thegon

    Hier noch einmal den zurzeit verwendeten Code:
    Code:
    $regfile "M48def.dat"
    $crystal = 1000000
    $hwstack = 100
    $swstack = 100
    $framesize = 100
    $baud = 2400
    Dim Endtime As Long
    Dim Countperoverflow As Integer
    Dim Struser As String * 10
    Dim Countperiodes As Byte
    Dim Timerstand As Byte
    
    Config Timer0 = Timer , Prescale = 1
    On Timer0 Isrtimer
    Enable Timer0
    Stop Timer0
    
    Config Int0 = Rising
    Enable Int0
    On Int0 Isr_interrupt
    Config Portd.3 = Output
    Portd.3 = 1
    
    Do
    Input Struser
    If Struser = "" Then
    '################# den Sendebrust generieren +++++++++
    Countperiodes = 0
    Do
    Portd.3 = 0
    Countperiodes = Countperiodes + 2
    
    Portd.3 = 1
    Countperiodes = Countperiodes - 1
    
    Loop Until Countperiodes > 20
    Countperiodes = 0
    Portd.3 = 1
    '######################################################
    
    Enable Interrupts
    Start Timer0
    Timer0 = 0
    Struser = "sd"
    End If
     
    Loop
     
    
    '###############TimerIsR##################
    Isrtimer:
    Countperoverflow = Countperoverflow + 1
    Return
    '#########################################
    
    '#########ACI isr################
    Isr_interrupt:
    Stop Timer0
    Timerstand = Timer0
    If Tifr0.tov0 = 1 Then
    Endtime = Endtime + 256
    Set Tifr0.tov0
    End If
    Endtime = Countperoverflow * 256
    Endtime = Endtime + Timerstand
    
    Disable Interrupts
    Print Endtime
    Timer0 = 0
    Timerstand = 0
    Endtime = 0
    Countperoverflow = 0
    Return#

Ähnliche Themen

  1. Ultraschall-Interface
    Von e_f1986 im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 06.01.2008, 11:35
  2. Ultraschall Interface Problem
    Von NemesisoD im Forum Sensoren / Sensorik
    Antworten: 1
    Letzter Beitrag: 29.03.2007, 12:26
  3. Ultraschall-Interface will nicht...!
    Von BASTIUniversal im Forum Sensoren / Sensorik
    Antworten: 29
    Letzter Beitrag: 14.09.2006, 18:55
  4. Ultraschall Interface
    Von Eddi1984 im Forum Sensoren / Sensorik
    Antworten: 3
    Letzter Beitrag: 11.08.2006, 17:53
  5. Grundlagen Ultraschall Interface mit Analogausgang
    Von Manf im Forum Artikel / Testberichte / Produktvorstellungen /Grundlagen
    Antworten: 0
    Letzter Beitrag: 13.12.2004, 22:50

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress