-
        

Ergebnis 1 bis 5 von 5

Thema: Timing Probleme mit Ultraschall..

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    30.10.2010
    Beiträge
    46

    Timing Probleme mit Ultraschall..

    Anzeige

    Hallo Leute.

    Ich bin kein Elektroniker, aber ich Bastel gerne.
    Ich habe mir auch mal einen robi gebaut mit dem was ich so herum liegen hatte.
    Das Ding fährt primär auch und funktioniert wie es soll. Nachdem noch ein paar Kleinigkeiten behoben waren machte ich mich an die Sensorik.

    Mein "Kleiner" sollte einen US-Sensor bekommen.
    Ich hatte noch aus meiner Philips-Baukastenzeit eine Pärchen US-Geber herumliegen.
    Kaufen wollte ich nicht etwas also machte ich mich im Internet mal auf die Suche und wurde auch fündig.

    Ich baute mir einen US-Sensor zusammen der funktioniert tadellos. Sieht zwar Furcht einflößend aus aber erst mal egal. Es funktioniert.

    Na ja es funktioniert im stand. Will damit sagen der Sensor merkt wenn etwas im weg ist wenn der Roboter nicht fährt. Sobald aber das Ding fährt dann funktionert es nicht mehr.

    Klingt vielleicht jetzt etwas bescheuert, aber ich weis nicht wie ich es ausdrücken soll.

    Zur Funktionsweise der Sensors.

    Einen Eingang der durch die SW getriggert wird.
    Ich erzeuge einen Burst von 10 Signalen mit einer pause von 10 Microsek. zwischen den einzelnen Zuständen. (Siehe Software)

    Der Sensor strahlt dann so oft der Trigger kommt ein Signal ab.
    Das Echo (Analog) wird empfangen und weitergeleitet auf die kleine obere Platine. Dort sitzt ein OP LM358 der als Komparator geschaltet ist. Das Ausgangssignal wird dann an einen 74HC14 weitergeleitet der ein Invertierende Schmitttrigger ist. Das Ausgangssignal wir an einen BC617 Darlington weitergereicht und im Kollektor abgriff mit dem Eingangsport verbunden.

    Wie gesagt wenn ich die Software so schreibe das im Loop nur die Subroutine Us-Test aufgerufen wird funktioniert es prächtig. Sobald aber noch der Rest der SW (Will das Ding ja auch fahren) eingebunden ist dann funktioniert es nicht mehr.

    Ich vermute das es ein Timing problem ist.

    Ich bin dann hingegangen und habe versucht es mit dem Timer0 zu realisieren. Es funktioniert auch teilweise, aber dann lässt sich der Robi nicht mehr über die Taster starten.

    Also, habe ich die Subroutine us_test im loop aktiv ohne andere Einträge dann funktioniert den Sensor.

    Benutze ich den Timer0 und rufe in der Interrupt Routine des Timers die Subroutine us_test auf dann funktioniert die US Erkennung zwar aber ich kann den robi nicht mehr starten. Er reagiert auf den "Start" Taster nicht mehr.

    Bin ehrlich gesagt leicht am Ende mit meinem Latein.

    Ich benutze Bascom zum Programmieren.

    Hat jemand von euch ne Idee.

    Gruß
    Thomas
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken 10012011971.jpg   10012011970.jpg   10012011969.jpg  
    Angehängte Dateien Angehängte Dateien

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556
    Müsste es nicht ......

    Code:
    Sub Burst(byval Imp_dauer As Long)
     For Us1 = 0 To Imp_dauer
      Portb.3 = 1 (Pinb.3 =1)?
      -----------------------------             
      Waitus 10
      Portb.3 = 0 (Pinb.3 =0)?
    -------------------------------
      Waitus 10
     Next Us1
    End Sub
    ......heißen? Außerdem wird anscheinend nirgends ein Call Us_test ausgeführt?

    Gruß Richard

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    30.10.2010
    Beiträge
    46
    Hallo Richard.

    Hast natürlich Recht. Durch das ewige rumprobieren wird die gar nicht mehr aufgerufen.
    Sorry mein Fehler.

    Sollte so sein.
    Sie wird als erstes in der Do-Loop aufgerufen.

    Wie füge ich hier Code als Code ein?

    Sub Us_test()
    Call Burst(10)
    If Us_eingang = 1 Then
    Status_led = 1
    ' Call Vollbremsung()
    Else
    Status_led = 0
    End If
    End Sub

    Gruß
    Thomas

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    30.10.2010
    Beiträge
    46
    Ich habe das mit dem PINB / PORTB gerade mal versucht. PINB geht nicht. Ich glaube das benutzt man auch nur als Eingang.

    Gruß
    Thomas

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556
    Zitat Zitat von linuxer7
    Sollte so sein.
    Sie wird als erstes in der Do-Loop aufgerufen.

    Wie füge ich hier Code als Code ein?

    Vor den Code Eklige Klammer Code Eckige Klammer. Nach dem Code Eckige Klammer /Code Eckige Kammer. Also genau wie quote.

    Gruß
    Thomas

Berechtigungen

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