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
Lesezeichen