Hallo Leute,
ich steuere mit meinen Mikrocontroller einen 12 V Gleichstrommotor mit
Drehrichtungsumkehr an.
Der Mikrocontroller startet leider ständig neu (Absturz) wenn der Motor
angesteuert wird, oder aber, wenn das Programm z.B auf eine Eingabe
wartet, und ich dann die Motoren von Hand überbrücke, wird wie von
Geisterhand irgendeine Zahl eingelesen.
Ich schätze, dass irgendwelche Spannungen bei der Beschaltung auftreten,
die nicht auftreten sollten und das die Beschaltung der Freilaufdioden
am Motor (GRÜN) falsch ist.
Die Lösung ist auch nicht ideal, aber der Kollektorstrom wäre für die
direkte Beschaltung des Motors zu groß gewesen und das Relais direkt mit
den µc ansteuern geht auch nicht, da zu wenig Strom. Leider hatte ich
dann auch nur 1x Wechsler Relais, so dass ich zwei benötigt habe.
Ach ja in Grundstellung (Motor Aus) liegt natürlich links und rechts am
Motor immer Masse, so dass immer nur ein Relais angesteuert wird.
Bei google hatte ich damals zur Beschaltung bei Drehrichtungsumkehr nur
ein Ergebnis gefunden (GRÜN). Wenn ich mir das so anschaue, bezweifel
ich, ob das funktioniert, da egal ob der Motor nach Links oder
Rechtslauf gestoppt wird, dann eine auftretene Spannung darüber nicht
abfliessen kann, da ja beide Seiten sperren! ?
Der Fehler muss auf jeden Fall mit den Motor zusammenhängen, da
ansonsten das Programm ohne Probleme durchläuft. Versorgungsspannung
bricht bei Motorlauf auch nicht ein.
Grüße Matthias
@Matthias Peters (Gast)
>die nicht auftreten sollten und das die Beschaltung der Freilaufdioden>am Motor (GRÜN) falsch ist.
Ja. Bei einer H-Brücke braucht man 4 Freilaufdioden. Schau mal ins
Datenblatt des L293D. Außerdem braucht es auch einen ausreichend großen
elko an der Versorgungsspannung, um die rückgespeiste Energie
aufzunehmen. Gem mal mit 1000uF ins Rennen.
Motoransteuerung mit PWM>Ach ja in Grundstellung (Motor Aus) liegt natürlich links und rechts am>Motor immer Masse, so dass immer nur ein Relais angesteuert wird.
Dann zeichne das auch so!
Matthias S. schrieb:> So wie im Anhang sollte das klappen.
Natürlich nicht. Die Schaltung der 1 Diode bringt nichts. Die
Freilaufdiode sollte eigentlich die Kontakte des Telais schützen, dafür
braucht man schon 4.
MaWin schrieb:> Die Schaltung der 1 Diode bringt nichts.
Oh doch, sie schützt den Rest der Schaltung, und das wurde vom TE
bemängelt:
Matthias Peters schrieb:> Der Mikrocontroller startet leider ständig neu (Absturz) wenn der Motor> angesteuert wird, oder aber, wenn das Programm z.B auf eine Eingabe> wartet
Die Relaiskontakte müssen die Gegen EMK schon aushalten.
Hallo und vielen Dank für Eure bisherigen Antworten.
Matthias S. schrieb:> So wie im Anhang sollte das klappen. Den dicken Elko dicht an die> Relais, und die Diode auch.
Ist das von der Funktion so, dass die Spannung, die beim Abschalten
entsteht durch die Diode auf ca 12,7 V begrenzt wird, wenn man als
Versorgungsspannung z.B 12 V hat ?
Ich habe bei der Sache Verständnisprobleme, würde ja wenig bringen, wenn
ich das einlöte, es funktioniert aber ich es nicht verstanden habe.
Wenn ich mich dazu entscheiden würde, diese Beschaltung zu nehmen um die
Schaltung zu schützen, wären die beiden Dioden oben doch überflüssig
oder nicht ?
Matthias Peters schrieb:> wären die beiden Dioden oben doch überflüssig
Nein, die müssen da sein, man weiss ja nicht, welcher Umschaltkontant
tatsächlich als erster trennt.
Aber es ist ja immer nur ein Umschaltkontakt geschaltet.
In Grundstellung sind beide wie auf den Bild.
Bei Rechtslauf ist z.B linker Kontakt geschaltet ( nach oben ) und der
rechte bleibt so wie er ist.
Achso moment verstehe. Ich habe vergessen zu erwähnen, dass zwischen der
Drerichtungsumkehr eine Pause ist.
Jetzt verstehe ich auch was du meintest. Ja, dann macht es Sinn, wenn
beide Kontakte "gleichzeitig" schalten.
Also das Problem der Abstürze lässt sich durch die Schutzbeschaltung
(1000 µF Kondensator und Diode zwischen + und Gnd nicht lösen)
Die Beschaltung mit 4 Dioden an den Kontakten wäre auch nur Blödsinn, da
zwischen der Drehrichtungsumkehr eine Pause ist. So das es zwangsläufig
nicht dazu kommen kann, dass eine hohe Spannung entshet, da beide
Motorpins bei Motorstopp ja auf Masse liegen bzw. derjenige der bei
Motorlauf auf Masse liegt, gar nicht erst verändert wird.
Wenn ich die Motoren abklemme, läuft der Mikrocontroller problemlos.
Ich habe mal etwas gegooglet und es könnte vielleicht an einen
unerwünschten Schwingkreis liegen, welcher durch die Induktivität und
den anderen Schaltungsbauteilen besteht.
Ich versuche jetzt die Anregung durch plötzliche Schaltvorgänge zu
vermeiden, indem ich ein RC-Glied parallel zum Schaltkontakt einbaue,
obwohl ich den Erfolg bezweifel, da die Abstürze auch beim
Einschaltvorgang auftreten.
MaWin schrieb:> Matthias S. schrieb:>> So wie im Anhang sollte das klappen.>> Natürlich nicht. Die Schaltung der 1 Diode bringt nichts. Die> Freilaufdiode sollte eigentlich die Kontakte des Telais schützen, dafür> braucht man schon 4.
Natürlich klappt das so!
Seit vielen Jahren z.B. im R60.
Matthias Peters schrieb:> Ich habe mal etwas gegooglet und es könnte vielleicht an einen> unerwünschten Schwingkreis liegen, welcher durch die Induktivität und> den anderen Schaltungsbauteilen besteht.
Am beste Du zeigst uns mal Dein Kunstwerk.
F. F. schrieb:> MaWin schrieb:>> Matthias S. schrieb:>>> So wie im Anhang sollte das klappen.>>>> Natürlich nicht. Die Schaltung der 1 Diode bringt nichts. Die>> Freilaufdiode sollte eigentlich die Kontakte des Telais schützen, dafür>> braucht man schon 4.>> Natürlich klappt das so!> Seit vielen Jahren z.B. im R60.
Macht auch jeder Curtis DC-Controller so (und da reden wir von z.B. 5kW
Motoren). Die Freilaufdiode liegt direkt über dem Controller und das
Polwenderelais wendet den Motor ohne zusätzliche Dioden.
Das Problem des TE wird sein, das er ohne jegliche Vorrichtung zum
Anlauf den Motor auf die vollen 12V legt. Das macht man heute nicht mehr
so, sondern startet den Motor mit Sanftanlauf.
@TE: Schau dir mal sowas an:
https://www.mikrocontroller.net/attachment/283744/RC_Servo.png
Der Artikel dazu:
Beitrag "RC-Servoelektronik für DC-Motor"
Hallo nochaml,
Matthias S. schrieb:> @TE: Schau dir mal sowas an:> https://www.mikrocontroller.net/attachment/283744/RC_Servo.png> Der Artikel dazu:> Beitrag "RC-Servoelektronik für DC-Motor"
Vielen Dank, ich schaue mir das heute Abend mal in Ruhe an.
Ist für mich so erstmal nicht zu durchschauen!
Ich bin "anderweitig" etwas weiter gekommen.
Ich lasse mir im Programm die Betriebsspannung anzeigen (ca 12 V) indem
ich an einen Spannungsteiler eine Spannung abgreife und diese den
analogen Eingang zuführe. Wenn ich den Draht vom Analogen Eingang
abklemme, läuft alles Problemlos, da kann ich die Motoren so oft ein-
und Ausschalten wie ich will.
Also wenn durch die abprubten Spannungsänderungen beim Ein-und
Ausschalten ein Schwingkreis angeregt wird, der für den Krempel
verantwortlich ist, dann habe ich jetzt die Möglichkeit die Ursache,
also entweder durch Sanftanlauf, oder wenn es klappt RC-Glied parallel
zum Schaltkontakt dieses zu verhindern.
Alternativ die Wirkung (weniger schön) zu bekämpfen, indem ich auf den
Analogeingang verzichte. Da kann ich aber nicht.
Hat jemand eine Idee, was man an den Analogeingang machen könnte ?
Ist jetzt vielleicht eine blöde Sache, aber das mit den Sanftanlauf
lässt sich in Kürze kaum realisieren und RC-Glied parallel zum
Schaltkontakt ist blöd, weil ich kein Platz mehr auf der Platine habe
und selbst dann ist die Frage ob es Abhilfe schafft.
Du hast wahrscheinlich ein Problem mit dem zu großen Anlaufstrom des
Motors, der dir deine Stromversorgunng kurzzeitig einbrechen läßt. Oder
du hast unzureichend Abblockkondensatoren an deinem Controller, auch am
Reset sollte man sowas platzieren.
https://www.mikrocontroller.net/articles/Kondensator#Entkoppelkondensator
Weiterhin kann die Masseführung falsch sein, wenn die Motorströme,
gerade beim Einschalten, über die Logikmasse fließen.
Ein Bild des realen Aufbaus wäre hilfreich. Bitte die Bildformate
beachten.
Hallo,
Falk B. schrieb:> Du hast wahrscheinlich ein Problem mit dem zu großen Anlaufstrom des> Motors, der dir deine Stromversorgunng kurzzeitig einbrechen läßt. Oder> du hast unzureichend Abblockkondensatoren an deinem Controller, auch am> Reset sollte man sowas platzieren.
Vielen Dank für die Infos mit den Abblockkondensator. Wäre durchaus
möglich, dass dort das Problem liegt,bzw. beim Ausschalten des Motors
aufgrund der Stromaufrechterhaltung der Induktivität irgendwie Strom
aus den Analogen Eingang abgezweigt wird,(wenn das überhaupt geht), der
dann fehlt ?
Die Spannungsversorgung bricht jedenfalls nicht ein, zumindest laut
Oszilloskop nicht.
Aber:
batman schrieb:> Ein großer Widerstand zwischen Motor und Analogeingang
Das hat doch TATSÄCHLICH geklappt !
Ich habe einen 470 kOhm Widerstand dazwischengeschaltet.
Jetzt läuft das Programm problemlos!
Einzig, das 1.8 TFT Display hat beim Ein- und Ausschalten des Motors
etliche Pixelfehler.
Die Schaltung an sich ist ein ziemlicher Induktionsherd
F. F. schrieb:> MaWin schrieb:>> Matthias S. schrieb:>>> So wie im Anhang sollte das klappen.>>>> Natürlich nicht. Die Schaltung der 1 Diode bringt nichts. Die>> Freilaufdiode sollte eigentlich die Kontakte des Telais schützen, dafür>> braucht man schon 4.>> Natürlich klappt das so!> Seit vielen Jahren z.B. im R60.
Da kannst du noch so oft mit dem Fuss aufstampfen wie du willst, diese
eine Diode verhindert keine Abreissfunken am Relais und die damit
einhergehenden Funk-Störungen), sondern höchstens eine Verpolung der
Betriebsspannung (falls die Quelle nicht stärker ist als die Diode) und
als Z-Diode an der Stelle ein Ansteigen der Betriebsspannung beim
Bremsen des Motors über die Z-Dioden-Spannung.
Matthias S. schrieb:> Macht auch jeder Curtis DC-Controller so (und da reden wir von z.B. 5kW> Motoren). Die Freilaufdiode liegt direkt über dem Controller und das> Polwenderelais wendet den Motor ohne zusätzliche Dioden.
Dort schaltet das Polwnederelais aber nur., wenn der PWM-Motorcontroller
den Motor schon ausgestellt hat und der Motor steht. Das kann Matthias
P. Schaltung aber nicht, weil dort die Relais immer an Betriebsspannung
liegen, ohne MOSFET zum regeln und abschalten.
Leute, Grundlagen der Physik, ist das denn so schwer ?
Matthias Peters schrieb:> Aber es ist ja immer nur ein Umschaltkontakt geschaltet.> In Grundstellung sind beide wie auf den Bild.
Du denkst und planst für eine ideale Welt, die es nicht gibt. In der
realen Welt schalten Relaiskontakte nicht instantan.
Stell dir einfach mal vor, du schaust dir deine Relaiskontakte mit einer
Zeitlupenkamera an, die alles Faktor 1 Million verlangsamt. Dann ist
ganz klar, daß beim Umschalten eines Kontakts der Motoranschluß für eine
gewisse Zeit in der Luft hängt.
In dieser Zeit kann sich jetzt eine Spannungspitze am Motor aufbauen,
weil der Strom unterbrochen ist, die Induktivität der Motorwicklung den
Strom aber weiter fließen lassen will.
Und genau dann kommen die Freilaufdioden ins Spiel. Je nachdem, in
welche Richtung der Kontakt umschaltet (und in welche Richtung damit die
Induktions-Spannungsspitze auftritt) übernimmt entweder die eine oder
die andere Freilaufdiode und leitet den Strom aus der Motorwicklung in
die Betriebsspannungsleitung ab. Und damit diese Stromspitze nicht die
Betriebsspannung anhebt, muß da der Elko ran.
Sobald der Relaiskontakt wieder geschlossen hat, fließt der Strom über
den Kontakt und die dann entstandene Kurzschlußstrecke zum anderen Ende
des Motors. So lange bis die Energie aus dem Magnetfeld abgebaut ist
(verheizt im ohmschen Widerstand der Motorwicklung).
Axel S. schrieb:> Matthias Peters schrieb:>> Aber es ist ja immer nur ein Umschaltkontakt geschaltet.>> In Grundstellung sind beide wie auf den Bild.>> Du denkst und planst für eine ideale Welt, die es nicht gibt. In der> realen Welt schalten Relaiskontakte nicht instantan.>> Stell dir einfach mal vor, du schaust dir deine Relaiskontakte mit einer> Zeitlupenkamera an, die alles Faktor 1 Million verlangsamt. Dann ist> ganz klar, daß beim Umschalten eines Kontakts der Motoranschluß für eine> gewisse Zeit in der Luft hängt.>> In dieser Zeit kann sich jetzt eine Spannungspitze am Motor aufbauen,> weil der Strom unterbrochen ist, die Induktivität der Motorwicklung den> Strom aber weiter fließen lassen will.>> Und genau dann kommen die Freilaufdioden ins Spiel. Je nachdem, in> welche Richtung der Kontakt umschaltet (und in welche Richtung damit die> Induktions-Spannungsspitze auftritt) übernimmt entweder die eine oder> die andere Freilaufdiode und leitet den Strom aus der Motorwicklung in> die Betriebsspannungsleitung ab. Und damit diese Stromspitze nicht die> Betriebsspannung anhebt, muß da der Elko ran.>> Sobald der Relaiskontakt wieder geschlossen hat, fließt der Strom über> den Kontakt und die dann entstandene Kurzschlußstrecke zum anderen Ende> des Motors. So lange bis die Energie aus dem Magnetfeld abgebaut ist> (verheizt im ohmschen Widerstand der Motorwicklung).
Vielen dank für die ausführliche Antwort.
Es ist aber so, hatte ich oben zwischendurch mal erwähnt:
Beide Relaiskontakte sind erstmal auf GND. Ein Kontakt wird nun
geschaltet.
Der Motor dreht sich. Genau dieser Kontakt wird dann wieder
abgeschaltet, also zurück auf Masse gelegt. Nun kann der Strom wollen
was er will. Beide Anschlüsse sind auf Masse und der Strom fliest ab.
Ich hatte oben ja bereist erwähnt, das ich den Motor zwar in beiden
Richtungen laufen lasse, aber niemals direkt umschalte, sondern mit
einer Pause zwischendurch. Deshalb brauche ich auch keine Dioden mehr.
Ja das mit den Elko mach ich noch, das kann ja nicht schaden.
Ich hoffe, das stimmt jetzt so wie es gesagt habe und war verständlich.
Trotzdem danke für die Antwort. Wenn ich falsch liege, weist mich drauf
hin.
Grüße Matthias
Matthias Peters schrieb:> Vielen dank für die ausführliche Antwort.> Es ist aber so, hatte ich oben zwischendurch mal erwähnt:>> Beide Relaiskontakte sind erstmal auf GND. Ein Kontakt wird nun> geschaltet.> Der Motor dreht sich. Genau dieser Kontakt wird dann wieder> abgeschaltet, also zurück auf Masse gelegt.
Und was genau ändert das? Der Kontakt schaltet den Anschluß des Motors
eben nicht instantan zurück auf GND. Das war genau mein Punkt.
Du hast nichts begriffen
Matthias Peters schrieb:> Beide Relaiskontakte sind erstmal auf GND. Ein Kontakt wird nun> geschaltet.> Der Motor dreht sich. Genau dieser Kontakt wird dann wieder> abgeschaltet, also zurück auf Masse gelegt. Nun kann der Strom wollen> was er will. Beide Anschlüsse sind auf Masse und der Strom
Man hat es versucht dir 3 x zu erklären, aber dein Gehirn will einfach
nicht.
Ein KOntakt ist nicht "sofort" umgeschaltet, sondern erst mal offen. In
deinen Fall also ein Kontakt der bisher nach plus verbunden hat. Der
Strom will über den öffnenden Kontakt weiterfliessen, und as macht er in
dem die Spannung ausreichend steigt damit der Funke die Luftstrecke
überwinden kann, auch mit Spannungen deulich über plus. Eine
Freilaufdiode über dem Kontakt nach plus begrenzt die Spannung auf
plus+0.7V, damit der Kontakt nicht leidet und die Funkstörungen klein
blieben.
Es sei denn man ist ignorant und glaube alles besser zu wissen und
Ratschläge in den Wind zu schiessen ohne sie verstanden zu haben.
upsala, dann sollte ich wohl besser aufhören zu basteln und besser alles
verkaufen mit einen so schlechten Gehirn.
Ich hatte nur immer gelesen, dass wenn sich z.B hinter den Motor ein
Transitsor befindet, am Kollektor z.B die Spannung aus den o.g Gründen
ansteigt und dieser dann u.U zerstört wird. Dass das eben auch davor
genauso ist, also in Richtung Zuleitung war mir bis grade noch unklar.
Das man da natürlich nicht sofort drauf kommt, wenn mehrere Leute sich
hier selber nicht sicher sind, was denn jetzt genau stimmt kann ja nur
am schlechten Gehirn liegen.
Zum Schluss wurde es aber gut erklärt, also Danke.
Vielleicht können wir es ja dabei belassen, wenn keiner mehr
Beleidigungen o.ä austeilen möchte.
Ein geratener 470k kann funktionieren aber wenn du ein Oszilloskop hast,
solltest du mal den Spike, der offenbar am Analogpin aufläuft, für
optimale Gegenmaßnahmen vermessen. Einmal links, einmal rechts vom
Widerstand, Amplitude gegen GND, dann kannst du auch den Störstrom
abschätzen, der durch die Portschutzdioden will.