Liste der Anhänge anzeigen (Anzahl: 2)
Störungen durch PWM-Einstreuung
Hallo,
vergangenes Jahr habe ich angefangen eine Steuerung für den Teach-Robot der Firma Kalms & Mürb zu basteln und eine entsprechende Steuerungssoftware zu schreiben. Das funktioniert auch schon alle bestens. Der Roboter bewegt sich entsprechend, die Software kann alles steuern.
Aber mir ist in den vergangenen Wochen ein unangenehmens Problem aufgefallen. Der Roboter verfügt über 6 Gleichstrommotoren mit Inkrementalgebern. Dafür ist an der Spindel der Motoren ein Reflektor für eine Lichtschranke angebracht, die über folgende Schaltung das Puls-Signal generiert:
Anhang 28525
Die Lichschranke schaltet dabei den Transistor V3 auf Masse durch wodurch ich ein 0V-Signal am Puls anliegen habe. Wird die Lichtschranke nicht beleuchtet, sperrt V3 und es liegt ein 5V-Signal am Puls an.
Um diese Puls-Signale der 6 Motoren einzulesen verwende ich ein Schieberegister (IC4), welches die Signale parallel einließt und dann seriel an den Mikrocontroller weitergibt:
Anhang 28526
An SV3 hängen zudem noch zwei weitere PISO-Schieberegister die vier L293B ansteuern um die Motoren-Richtung zu kontrollieren. Über einen weiteren Port des Controllers sind die Enable-Eingänge der L293Bs angeschlossen, damit ich die Geschwindigkeit der Motoren mit den PWM-Ausgängen des Controller regeln kann. Über SV4 wird der Roboter mit einem Flachbandkabel angeschlossen. Die Motoren arbeiten derzeit mit ca. 16V, der Controller mit 5V.
Das Problem an der Sache ist jetzt, dass ich Störungen auf den Puls-Leitungen habe, sobald die PWM-Steuerung aktiv ist. Das ist ja auch kein Wunder, da das Flachbandkabel auch überhaupt nicht abgeschirmt ist, genauso wenig wie die interne Verkabelung des Roboters. Daher ist eine Abschirmung der Kabel Leitungen keine Option um diese Störungen zu beheben, außer ich will die gesamte Verkabelung des Roboters neu machen, was mir schier unmöglich scheint, da ich dann auch die kleinen Platinen, die jeweils an den Motoren sitzen neu machen müsste.
Die Störungen auf den Puls-Leitungen machen sich dadurch bemerkbar, dass das Schieberegister plötzlich Flankenwechsel an den Controller gibt. Dies tritt aber auch nur auf, wenn auf der jeweiligen Puls-Leitung ein 0V-Signal liegt. Wenn 5V anliegen, dann sind keine Störungen bemerkbar.
Meine bisherigen Lösungsversuche bestanden darin mit 100kOhm bzw. 10kOhm die Puls-Leitungen gegen Masse zu ziehen. Das hatte jedoch leider keinen Effekt.
Leider habe ich kein Oszilloskop zur Verfügung, um die Störungen genauer zu untersuchen.
Hab ich bei meiner Verschaltung irgendetwas grob falsch gemacht? Wie könnte man diese Störungen eliminieren? Hat jemand eine Idee, oder muss ich mir irgendwie Zugang zu einem Oszilloskop verschaffen, um das ganze genauer untersuchen zu können? Alles verwendeten ICs haben einen Abblockkondensator von 100nF direkt neben ihnen im Platinnlayout (Lochraster). Zudem ist die Spannungsversorgung für die Motoren (16V) noch zusätzlich mit einem 100µF Elko entkoppelt.
Ich bin über jeden Vorschlag dankbar. Gibt es in Baden-Baden (Rebland?) und Umgebung vielleicht jemanden, der mir bei Bedarf mit einem Oszilloskop zur Seite stehen könnte?
MfG
Der Eisvogel
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Bernhard,
vielen Dank für deine Antwort! An die Masseführung habe ich damals beim Erstellen der Platine noch gar nicht gedacht, da ich damals wie heute noch ein Anfänger bin und mit der Zeit viel dazu lerne, was ich damals hätte wissen sollen. Aber wie sagt man so schön: "Ach hätte ich doch nur gestern schon den Verstand von heute gehabt, dann wäre das ganz anders gelaufen."
Zum Platinenlayout: Das sind zwei Lochraster-Platinen, die zusammengesteckt werden. Ich habe mal Masse grün und 5V orange markiert. Leider alles freihand, deswegen nicht so sauber (nur die Markierungen):
Unten:
Anhang 28529
Oben:
Anhang 28528
Die Platinen werden dann einfach übereinander gesteckt. Die Spannungsversorungversorgungs-Leitungen, die vom Netzteil zu den Treibern führen haben einen Durchmesser von 8mm. Die Leitungen von den Treibern zu den Motoren sind dann, wie alle anderen Leitungen, 4mm.
Das Rot-Umkreiste ist der Port an dem die PWM-Signale vom Controller kommen. Das Weiße sind die Motoren-Leitungen die von den Treibern kommen und entsprechend höhere Spannung haben.
Wenn es tatsächlich an der Masse liegt, so wie du es beschrieben hast, würde es dann etwas bringen, wenn ich mal, nur um es auszuprobieren, eine weitere Masseleitung direkt an einen Motor lege?
EDIT: Eine Sache noch: Die roten und gelben (nicht von Hand gezeichneten) Leitungen sind die Pulsleitungen, die zu dem Schieberegister 74HC165 führen.
MfG
Der Eisvogel
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
das hast du aber sehr genau geplant, finde ich gut :)
Für die Platine mit den L293 habe ich einen Vorschlag für die Masseführung im Anhang, das könnte etwas Abhilfe bringen.
Auf der 5V-Versorgung könnten auch noch ein oder zwei Elkos mit z.B. 10µF nicht schaden ;)
Die L293 dürfen auch gerne größere Elkos in der Versorgungsspannung erhalten.
Woher kommen eigentlich die 5V?
Die Versorgungsspannung für die Motortreiber wird unten rechts an der Stiftleiste eingespeist, richtig?
Außerhalb der Platine gibt es keine zusätzlichen Verbindungen der Masse, oder?
Grüße, Bernhard