Forum: Analoge Elektronik und Schaltungstechnik DC Motor bremsen


von Robert M. (schribbi)


Lesenswert?

Hallo Leute, ich weiß mein Thema gibts anscheinend schon zig mal. Passt 
aber alles irgendwie nicht oder ich kapier es einfach nicht.

Ich muss dazu sagen, ich bin weder Ingenieur noch Elektroniker, ich 
bastel nur gern und mein bester Freund, mit dem ich bastel, meint ich 
könnte alles :D

Zum Thema: Ich suche eine Lösung (am Liebsten mit Schaltbild) wie ich 
einen einfachen DC Motor per Arduino-Steuerung sofort zum Stehen 
bekomme.

Mein Bester hat irgendwo in einem Forum mal was von nem 
Halbbrückentreiber gelesen der sowas können soll (IR2104) nur leider 
werde ich da aus dem Datenblatt/Schaltbild nicht schlau.

Kann mir da einer, in Worten die ich auch ohne Studium, verstehen kann 
helfen? Ich wäre euch sehr dankbar!!!

Wahrscheinlich fehlen noch zig Angaben die ich gern ergänze wenn bedarf 
besteht. Da ich aber nicht weiß was noch gewünscht wird, warte ich auf 
die Bedarfsmeldung :)

Danke

~Schribbi

: Verschoben durch Admin
von Micha H. (mlh) Benutzerseite


Lesenswert?

Robert M. schrieb:
> sofort zum Stehen

ist relativ. Aber Du kannst den Motor abbremsen indem Du ihn 
kurzschließt. Ein Transistor und fertig, das kriegst Du ohne Schaltplan 
hin.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Womit bringst Du den Motor denn zum drehen? Damit?

http://www.aliexpress.com/item/-/1740660574.html

Davon hängt es auch ab, wie man den Motor am besten bremst.

Bei 'ner H-Brücke kannst Du sogar kurz einen 'Gegenimpuls' geben.

: Bearbeitet durch User
von Robert M. (schribbi)


Lesenswert?

Das mit dem Kurzschließen hab ich auch schon öfter gelesen. Die Frage 
die ich mir dabei stelle ist, wie lange macht der Motor das mit? und 
irgendwie finde ich die Lösung nicht sehr "elegant" ;)

Ich hole mal ein bisschen weiter aus um mein Problem zu verdeutlichen:

Der Motor, den ich bremsen möchte, soll über den Arduino vier 
unterschiedliche Anweisungen bekommen können

1. tu nichts (das ist einfachm das bekomm ich hin :D
2. bei Tastendruck drehe einmal 360°
3. bei Tastendruck drehe dreimal 360°
4. bei Tastendruck drehe solange bis ich die Taste loslasse

Wichtig ist aber das Anfangs- und Endposition immer die gleiche ist. 
Daher muss ich das sch*** Ding mehr oder weniger kontroliert stoppen 
können

Meine Vermutung ist mittlerweile, dass ich das Problem mit dem einfachen 
DC Motor gar nicht realisieren kann :(

: Bearbeitet durch User
von Peter (Gast)


Lesenswert?

Robert M. schrieb:
> Zum Thema: Ich suche eine Lösung (am Liebsten mit Schaltbild) wie ich
> einen einfachen DC Motor per Arduino-Steuerung sofort zum Stehen
> bekomme.

Was heißt denn "sofort"?
Was für eine Motor?
Wie schnell dreht er?

Einen einfach DC-Motor (2 Anschlüsse) bringt man zum stehen indem man 
die beiden Anschlüsse kurzschließt oder besser den Motor in die 
Gegenrichtung antreibt. Das können so gut wie alle H-Brücken, vermutlich 
auch diese auf deinem Shield. Wie schnell das zum Stehen kommen wirklich 
geht hängt davon ab wie schnell der Motor dreht und was für eine 
Schwungmasse dran hängt. Je schneller bzw. je mehr Schwungsmasse 
dranhängt, desto mehr Leistung musst du in den Motor pumpen damit er 
schnell zum Stehen kommt. Wieviel Leistung du reingeben kannst hängt von 
deiner H-Brücke (Motorshield) ab.

von Peter (Gast)


Lesenswert?

Robert M. schrieb:
> Meine Vermutung ist mittlerweile, dass ich das Problem mit dem einfachen
> DC Motor gar nicht realisieren kann :(

Können schon aber das ist aufwändig. Für solche Aufgaben sind 
Schrittmotoren geeigneter.

von Robert M. (schribbi)


Lesenswert?

Torsten C. schrieb:
> Womit bringst Du den Motor denn zum drehen? Damit?
>
> http://www.aliexpress.com/item/-/1740660574.html
>
> Davon hängt es auch ab, wie man den Motor am besten bremst.
>
> Bei 'ner H-Brücke kannst Du sogar kurz einen 'Gegenimpuls' geben.

Der Motor soll später über nen 11,1V Akku betrieben werden. Im Moment 
verwenden wir zum testen 9V

von Robert M. (schribbi)


Lesenswert?

Peter schrieb:
> Robert M. schrieb:
>> Meine Vermutung ist mittlerweile, dass ich das Problem mit dem einfachen
>> DC Motor gar nicht realisieren kann :(
>
> Können schon aber das ist aufwändig. Für solche Aufgaben sind
> Schrittmotoren geeigneter.

Da hab ich noch keinen gefunden der mir Größentechnisch aus auch 
Preislich passen würde :(

von Torsten C. (torsten_c) Benutzerseite


Angehängte Dateien:

Lesenswert?

Robert M. schrieb:
> Meine Vermutung ist mittlerweile, dass ich das Problem mit dem einfachen
> DC Motor gar nicht realisieren kann :(

Die Position solltest Du schon mit einem Winkel-Encoder auslesen, denn 
bei unterschiedlichen Lasten kannst Du das nicht einfach über die Dauer 
steuern.

Motorbremse -> Siehe Anlage.

von Robert M. (schribbi)


Lesenswert?

Peter schrieb:
> Robert M. schrieb:
>> Zum Thema: Ich suche eine Lösung (am Liebsten mit Schaltbild) wie ich
>> einen einfachen DC Motor per Arduino-Steuerung sofort zum Stehen
>> bekomme.
>
> Was heißt denn "sofort"?
> Was für eine Motor?
> Wie schnell dreht er?
>
> Einen einfach DC-Motor (2 Anschlüsse) bringt man zum stehen indem man
> die beiden Anschlüsse kurzschließt oder besser den Motor in die
> Gegenrichtung antreibt. Das können so gut wie alle H-Brücken, vermutlich
> auch diese auf deinem Shield. Wie schnell das zum Stehen kommen wirklich
> geht hängt davon ab wie schnell der Motor dreht und was für eine
> Schwungmasse dran hängt. Je schneller bzw. je mehr Schwungsmasse
> dranhängt, desto mehr Leistung musst du in den Motor pumpen damit er
> schnell zum Stehen kommt. Wieviel Leistung du reingeben kannst hängt von
> deiner H-Brücke (Motorshield) ab.

Könntest du mir anhand des Datenblattes meiner Brücke sagen was ich wo, 
wie anschließen muss, dass es geht?

http://www.reichelt.de/index.html?&ACTION=7&LA=3&OPEN=0&INDEX=0&FILENAME=A200%252FDS_IR2104.pdf

von Martin K. (Gast)


Lesenswert?

Robert M. schrieb:
> sofort zum Stehen

Das geht physikalisch nicht, etwa so wie dein fahrbarer Untersatz auch 
nicht sofort steht beim Bremsen.

Torsten C. schrieb:
> Bei 'ner H-Brücke kannst Du sogar kurz einen 'Gegenimpuls' geben.

aufwändig, sehr hoher Motorstrom kurzzeitig, beste Wirkung, Drehzahl 
muss überwacht werden sonst läuft er rückwärts hoch

Mäßig (schonend) bremsen:
Nach Wegschalten der Speisespannung Motor kurzschließen. In diesem 
Moment ist dein Motor zum (belasteten) Generator geworden. Spitzenstrom 
beachten - Transistor - Relais - Schütz

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Robert M. schrieb:
> Größentechnisch aus auch Preislich passen ...

Vielleicht kaufst Du Dir bei AliExpress oder HobbyKing einfach ein 
Billig-Servo? Die gibt es auch als 360° ohne 'Anschlag', aber da ist 
immerhin der Winkel-Aufnehmer schon drin.

: Bearbeitet durch User
von Udo S. (urschmitt)


Lesenswert?

Was du vorhast ist im Prinzip ein Servoantrieb.
Dazu musst zu zuerst die Istposition erfassen. Dazu brauchst du einen 
Drehencoder.
Da man nichts "sofort" stoppen kann, musst du rechtzeitig bremsen. Das 
kann dein Arduino, anhand des noch zurückzulegenden Winkels zur 
Endposition und der Drehgeschwindigkeit kannst du geregelt abbremsen 
wenn du (aus Tests) weisst wie 'schnell' dein Motor abbremsen kann.
Bremsen selbst macht man entweder über einen geschalteten 
Bremswiderstand oder indem man den Motor komplett kurzschliesst (mit PWM 
kann man hier beeinflussen wie stark er bremst).
Oder man kann den Motor auch mit einer Gegenspannung (auch wieder PWM) 
versorgen, dann bremst er schneller wird aber ggf. auch stark 
beansprucht und überlastet.

Aber dein erstes Problem ist die Position des Motors zu erkennen, vorher 
musst du gar nicht über die weiteren Schritte nachdenken.

Und ja, das ist ein sehr anspruchvolles Anfängerprodukt, gerade wenn man 
mit der Mathematik und Physik der Drehbewegung noch Probleme hat.

von Robert M. (schribbi)


Lesenswert?

Torsten C. schrieb:
> Robert M. schrieb:
>> Meine Vermutung ist mittlerweile, dass ich das Problem mit dem einfachen
>> DC Motor gar nicht realisieren kann :(
>
> Die Position solltest Du schon mit einem Winkel-Encoder auslesen, denn
> bei unterschiedlichen Lasten kannst Du das nicht einfach über die Dauer
> steuern.
>
> Motorbremse -> Siehe Anlage.

Danke sehr, den Treiber hab ich mir auch schonmal angeschaut. Da sieht 
zumindest das Schaltbild etwas mehr so aus als könnte ich damit was 
anfangen. Cool wäre halt wenn ich den IR2104 benutzen könnte, den hab 
ich nämlich schon liegen ;) Gibt aber schlimmeres als neue Treiber zu 
bestellen

von stef (Gast)


Lesenswert?

Wenn du noch erklärst was du damit machen möchtest bekommst du ev. noch 
bessere Ideen...

Denn dein Anliegen ist auf x arten zu lösen...

von Robert M. (schribbi)


Lesenswert?

stef schrieb:
> Wenn du noch erklärst was du damit machen möchtest bekommst du ev. noch
> bessere Ideen...
>
> Denn dein Anliegen ist auf x arten zu lösen...

Genau zu erklären was ich damit machen möchte, würde glaub ich etwas zu 
weit führen ;)

Grundsätzlich hab ich in einem Post weiter oben beschrieben was der 
Motor tun soll.

Ich werde mir die Idee mit dem Servo nochmal genau ansehen. muss nur 
schauen ob er die "Geschwindigkeit" bringt die mein Motor hat

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Robert M. schrieb:
> Cool wäre halt wenn ich den IR2104 benutzen könnte

Und Dein Motor drehst Du mit dem Low-Side-Mosfet in eine Richtung, 
umdrehen brauchst Du nicht und mit dem High-Side-Mosfet machst Du die 
Motorbremse? Oder wie?

von Norbert S. (norberts)


Lesenswert?

Robert M. schrieb:
> 2. bei Tastendruck drehe einmal 360°
> 3. bei Tastendruck drehe dreimal 360°

Hi,

Udo hat es schon treffend beschrieben.
Ohne Rückmeldung vom Motor kannst Du das vergessen und das ist Dein viel 
grösseres Problem als die Bremse.
Bremsen ist einfach aber selbst mit Rückmeldung kann es sehr sportlich 
sein, an einer bestimmten Stelle zu stoppen. Der Motor stoppt nicht 
sofort und  woher soll der Arduino ausserdem wissen, wann 3 Umdrehungen 
vorbei sind?
Es kommt wirklich drauf an, was Du da genau vor hast.
Du scheinst so wenig Ahnung zu haben, daß es hier wirklich sinnvoll 
erscheint, daß Du mal weiter ausholst.

Beim Bremsen wird der Motor nicht mehr belastet als beim Anlaufen unter 
voller Spannung (vulgo simplem Einschalten).

Gruß,
Norbert

von Christian B. (luckyfu)


Lesenswert?

Ich denke auch, daß ein reiner Bürstenmotor der falsche Ansatz ist.

Rein von deiner Aussage würde ich auch auf Schrittmotor als sinnvollste 
Antriebsart tippen, sind die doch genau dafür gebaut, da der Controller 
(solange du den Motor nicht überlastest und er somit Schritte 
"verliert") immer weiß, wo der Motor gerade ist.
Etwas aufwändiger aber auch machbar ist es sicherlich mit einem 
Bruschless Motor. Die haben ebenfalls den Vorteil, daß der Controller 
das Drehfeld generiert und somit mehr oder weniger weiß (er kann es nur 
innerhalb eines Bereiches von 60° genau wissen kleinere Einteilungen 
gehen dann nur mit nachgeschaltetem Getriebe), wo sich der Rotor gerade 
befindet. Allerdings hast du bei diesem Motor kaum die Möglichkeit, 
Haltekräfte einzubringen, da er primär fürs drehen gemacht ist. Um also 
entscheiden zu können, welcher Motor der sinnvollste ist solltest du 
doch noch etwas mehr über die Anwendung verraten. Eben so Dinge wie: zu 
beschleunigende (positiv wie negativ) Masse, in welcher Zeit muss eine 
bestimmte Geschwindigkeit erreicht sein, wie lange darf die Umdrehung 
insgesamt dauern, benötigst du ein Haltemoment in den Endlagen oder ist 
es eher nur ein Teller der gedreht wird...

von spontan (Gast)


Lesenswert?

Solange die Aufgabenstellung nicht umschrieben wird, ist das alles ein 
elendes Gerate und Geeiere.

Mit DC-Motoren ist eine Menge lösbar, nur ob der TE es damit schafft, 
wird sich noch zeigen.

Welche Masse wird bewegt?
Welche Genauigkeit?
Welche Geschwindigkeiten?

Schon einen Motor rausgesucht?
Welcher Encoder?

Und das wichtigste, was kannst Du als TE zur Lösung beitragen?

Bisher waren es nur Reaktionen auf Vorschläge. Das ist viel zu wenig.

Der Thread wird noch fünf Tage laufen, x Beiträge umfassen, dann wird 
die AUfgabenstellung komplett anders gelöst werden oder im Sand 
verlaufen.

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Ach herje, die Problemwälzer und Reichsbedenkenträger sind mal wieder am 
Werk.

https://www.mikrocontroller.net/attachment/221902/Suche_Loesungen.png

So eine Motorsteuerung ist gar nicht schwer. Und sie kann man auch mit 
einem ganz einfachen Bürstenmotor bauen. Been there, done that. Für die 
Positionsmeldung braucht es bestenfalls einen Mikrotaster oder eine 
Lichtschranke. Hundertausende einfacher Antriebe funktionieren so.

Siehe Anhang.

Zum Starten muss der Arduino kurz einen Puls erzeugen und den Transistor 
T1 ansteuern damit der Motor anläuft, danach ist die Selbsthaltung über 
S1 aktiv. S1 ist ein Mikrotaster, welcher in der Nulllage des Motors 
gedrückt ist! (Im Schaltplan ist die NICHTbetätigte Stellung sichtbar, 
wenn der Motor NICHT in Nulllage ist). D.h. wenn der Motor in Nullage 
ist bekommt das Relais den Saft abgedreht und der Motor stoppt dann 
automatisch. Der Motor wird aktiv in den Kurzschluß geschaltet, wodurch 
er stark gebremst wird. Keine Bange, ein durchschnittlicher 
Getriebemotor hält das aus, wenn nicht gerade eine gigantische 
Schwungscheibe als Last dranhängt.

Ein einfacher Servoantrieb. Getriebemotoren und Mikrotaster gibt es 
überall, u.a. bei Pollin

Njoy

von losgehts (Gast)


Lesenswert?

Wie bereits gesagt wurde, ist das ganze möglich; egal ob DC oder 
BLDC-Motor. Du musst der Drehzahlregelung halt eine Lageregelung 
überstülpen.
Falls Du aktiv bremst musst Du zusätzlich die DC-Spannung überwachen, 
damit der DC-Kreis nicht überladen wird. Die Überspannung wird dann über 
einem Widerstand "abgelitten".

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Robert M. schrieb:
> 2. bei Tastendruck drehe einmal 360°
> 3. bei Tastendruck drehe dreimal 360°
> 4. bei Tastendruck drehe solange bis ich die Taste loslasse
> Wichtig ist aber das Anfangs- und Endposition immer die gleiche ist.

Also quasi so, wie beim Scheibenwischer vom Auto? Dann:

"Hundertausende einfacher Antriebe funktionieren so." ^^

von Robert M. (schribbi)


Lesenswert?

An dieser Stelle möchte ich mich ganz herzlich bei Falk bedanken. Ich 
weiß ich bin dir voll auf den Geist gegangen, aber du hast mit trotzdem 
mit Rat und Tat zur Seite gestanden.

von Harald W. (wilhelms)


Lesenswert?

Robert M. schrieb:

> 2. bei Tastendruck drehe einmal 360°

Wenn Du einen Motor ohne Getriebe hast, ist das m.E.
technisch unmöglich. Ansonsten brauchst Du einen
Geber, der Dir die Position zurückmeldet.

von Falk B. (falk)


Lesenswert?

@ Robert M. (schribbi)

>Ich weiß ich bin dir voll auf den Geist gegangen,

Wie kommst du darauf? Ausser der einen, etwas begriffsstutzigen Email 
war doch alles OK, ganz normale Fragen, ganz normale Antworten.

von Andi H. (andish)


Lesenswert?

Hi!
Naja, schwer ist es nicht, eine H-Brücke anzusteuern mit PWM aus z.B. 
einem atmega. Eine Seite auf + oder -, die andere macht Synchronous 
Rectification PWM, phase and frequence correct mode (sonst Nadeln trotz 
"0" im PWM-Register), stellt also so was wie ein Buck Converter dar.

Zu Motoren:
Guck bei Pollin, die verkaufen Restpostengetriebemotoren. Da kann man 
schon genau positionieren, wenn man in den Motor eine Abtastung einbaut.
Einfacher ist es, wenn der Motor hinten raus ein Stück Achse im Freien 
hat, wo man eine Abtastung einfach anflanscht. Ich habe ohne so was 
zwischen Wicklung und Getriebekopf gehen müssen, ein Schneckengetriebe 
braucht hinten und vorne Anpresslager, da schaut nichts von der Achse 
raus; es sind bei mir 4mm Platz im Gehäuse und ein Haufen Störfelder. 
Ging mit Schlossscheibe, auf die ich ein Ring vom Spindelmotormagneten 
geklebt hatte. 30er Schlossscheibe schaut über und schirmt ein bisschen 
ab, ausreichend.

Bei dem Motor mit Spindel (als Linearantrieb) gibt es ein Datenblatt. 
Der mit ähnlichem Korpus, nur Vierkant-Loch drin, hat die selbe 
Maschine, aber 1:6,9 oder so. Den kann man auch von außen noch drehen, 
leider.

Sensorik:
Habe mit Hall-Sensoren aus so kleinen Grafikkarten-Lüftern angefangen. 
Die haben +,-,OpenCollectorOut (Polwechsel, "bipolar digital hall 
Sensor"). Die neuen großen CPU-Lüfter haben leider analoge Hall-Sensoren 
ohne Elektronik drinne und ein zwei SMD-Chips, die das verarbeiten. Bei 
Reichelt gibt es den TLE4935L bipolar Hall ohne Richtungserkennung, 2 
kaufen. Programmbeispiel im Netz oder auf Anfrage.

Beschäftige mich gerade mit Interrups, einfacher PCINT8 u. 9, im IRQ 
wird per StateMachine Quadratur-Decodierung gemacht. Globale Variable 
stellt den Counter zur Verfügung. Tut. Mit 4 Flanken pro Polwechsel des 
Kodiermagneten. Man muss nur die Sensoren vor dem Feld des Motormagneten 
schützen und exakt auf 45° Phasenverschiebung hin biegen. Lackdraht an 
Hallsensor, Epoxy an die Anschlussdrähte in Abstand ans Gehäuse, schon 
kann man die Position vom Sensor zurechtbiegen. Bilder gibt es auf 
Anfrage.

Jetzt steige ich gerade um auf "Input Capture" ICP1, mit dem 16bit 
Counter vom 328P, ich will ja die Winkelgeschwindigkeit über die 
Periodendauer der Pulse messen, und darüber die Beschleunigung und da 
darauf regeln.
Habe mir bei RS-components so einen SMD-Reel-Abschnitt mit 25 
Hall-Sensoren Infineon TLE4966-3K gekauft, fummelig klein, passen aber 
zwischen Ringmagnet von CD-Rom-Spindel und Ache, die haben schon 2 Halls 
drin in 1,4mm Abstand und einen Quadratur-Decoder. Ja, ich weiß, wie 
langweilig. Der macht 1 Flanke pro Polwechsel. 12 Flanken/U bei den 
meisten CD-Rom-Spindelmotor-Magneten (LG hat 6).
Der eigentliche Vorteil der Nähe der 2 Hallsensoren ist, dass sie 
gleiche Störungen erfahren, und dass sie untereinander im Chip 
kalibriert sind. Man kann dann im Motor zwischen die beiden Polmagnete, 
wo das Störfeld vom Permanentmagnetfeld minimal ist, positionieren. Geht 
nicht so gut mit Einzelsensoren, da kann man gegenüber probieren.
Packt unbedingt mal mit Frischhaltefolie ein und lasst Euch die 
Magnetfelder anzeigen mit einem Tütchen Eisenspäne oder Pulver. VOm 
Motor und vom Ringmagneten... Ein alter Hallsensor mit LED und einem 
9V-Block hilft auch. Besser ein analoger aus Floppy o.ä. BLDC Motor an 
Instrument.

Aktorik:
Motor: erst mal alles rausknipsen (C) oder brücken (L), was entstört, 
das kommt vor die H-Brücke. (Der NTC darf bleiben ;)
Kurze Kabel, ev. verdrillt geschirmt, also Netzwerkkabel 4 parallel pro 
Anschluss, zur H-Brücke an den Motor.
Dann habe ich die Infineon H-Brücke gekauft, siehe "DC Motor Control 
Shield with BTN8982TA for Arduino".
Die scheint zu halten, was das Datenblatt verspricht.

Bremsproblem:
Da bei mir 2kg auf 1m/s nach unten sollen, entsteht 20W. Die landen zu 
erklecklichem Anteil als Bremsspannung am Netzteilanschluss, und das 
sagt "Nö!" und geht erst mal runter. Dann saust die Last herunter, weil 
die Brücke den Motor (z.B. via 2x Low Side) nicht mehr kurz schließen 
kann. Das mit dem Ableiten ist also bisweilen wichtig...

Überhaupt mache ich 30kHz PWM, und haue eine Seite konstant auf 0 oder 1 
und die andere auf PWM 0..100%. Bei 0% bremst er eben, ganz gut sogar.
Nur wenn ich dann beim Runterfahren meiner Last etwas Gas gebe, dann 
steigt sehr schnell das Netzteil aus.

Andere nennen solche Schaltungen Buck/Boost ;)
Wir haben ja synchrone Gleichrichtung, eine schöne induktivitäö

Frage: Wenn man die Schleichfahrt nach unten bei kurzgeschlossenem Motor 
in der Drehzahl regulieren will, wie macht man das 
Schaltnetzteil-freundlich? Kann ich bis zur Grenzspannung, die die PWM 
verträgt, den Motor abwechselnd kurzschließen und dann frei drehen 
lassen?

Zum Überladen des Netzteils:
http://www.mikrocontroller.net/articles/Motoransteuerung_mit_PWM
...ist eine Überspannungsbegrenzung in Form eines Bremswiderstands 
vorzusehen (Bremschopper)."
Habe ich leider auch jetzt erst gelesen.

Irgendwie würde ich jetzt sagen, dass man das Netzteil um einen Regler 
erweitern muss, der Überspannungen abbaut, bevor der eingebaute Schutz 
anspringt. Primitiv: nehme MosFet und schalte einen Leistungswiderstand 
zur Versorgungsspannung, sobald ich nach unten fahre. Halogenlampe vom 
Auto. Weniger primitiv: überwache Strom, wenn Rückwärts, anschalten.

Die Leute mit Akku haben es hier gut, dann wird der Akku eben geladen.

 (Der Motor kann das Bremsen durch Kurzschließen ab, er vernichtet dann 
die Bremsenergie, i.e. die erzeugte Generatorspannung verbrät im 
ohmschen Anteil der Wikcklung, und tut das, bis er zu heiß wird. Dann 
macht, so vorhanden, der NTC o.ä. auf, und er dreht frei.)

Bei kleinen Motoren ist das mit dem Bremsen sicher nicht so wild.
Aber der unscheinbare Klotz von Pollin hat 28A Kurzschlussstrom, und so 
schlecht ist die Effizienz, in dem Fall leider, nicht.

Gruß!

AndiSh

von Stefan F. (Gast)


Lesenswert?

Die einfachste Methode, den Antrieb "sofort" zu stoppen, ist ihn gegen 
ein Hindernis laufen zu lassen. Quasi das Auto vor die Wand fahren.

Danach steigt die Stromaufnahme an, das kannst du elektronisch erkennen 
und dann die Stromzufuhr abschalten.

Mit ein wenig Dämpfung (Feder oder so) wird es weniger strapaziös für 
die Mechanik.

Wirklich Material-schonend geht sowas nur durch gezielte Bremsung. Dazu 
muss deine Software den Bremsweg kennen (was wiederum Lastabhängig sein 
wird) oder ermitteln. Dazu gehört also ein komplexer Regelprozess.

Durch Kurzschließen kann man Motoren abbremsen, allerdings eher schwach. 
Durch Ansteuerung in die umgekehrte Richtung bremst man härter, aber 
dabei wird viel Energie im Wärme umgesetzt. Das wiederum muss der Motor 
vertragen können.

Kann er das nicht, könnte man auch über den Einsatz von Bremsen 
nachdenken. Dadurch verlagert man das Thermische Problem auf die 
Bremsen.

Langer Rede kurzer Sinn "sofort" anhalten ist nicht Sinnvoll, denn 
dadurch zerstörst du das Material.

von Andi H. (andish)


Lesenswert?

Hi!
Naja, schwer ist es nicht, eine H-Brücke anzusteuern mit PWM aus z.B. 
einem atmega. Eine Seite auf + oder -, die andere macht Synchronous 
Rectification PWM, phase and frequence correct mode (sonst Nadeln trotz 
"0" im PWM-Register), stellt also so was wie ein Buck Converter dar.

Zu Motoren:
Guck bei Pollin, die verkaufen Restpostengetriebemotoren. Da kann man 
schon genau positionieren, wenn man in den Motor eine Abtastung einbaut.
Einfacher ist es, wenn der Motor hinten raus ein Stück Achse im Freien 
hat, wo man eine Abtastung einfach anflanscht. Ich habe ohne so was 
zwischen Wicklung und Getriebekopf gehen müssen, ein Schneckengetriebe 
braucht hinten und vorne Anpresslager, da schaut nichts von der Achse 
raus; es sind bei mir 4mm Platz im Gehäuse und ein Haufen Störfelder. 
Ging mit Schlossscheibe, auf die ich ein Ring vom Spindelmotormagneten 
geklebt hatte. 30er Schlossscheibe schaut über und schirmt ein bisschen 
ab, ausreichend.

Bei dem Motor mit Spindel (als Linearantrieb) gibt es ein Datenblatt. 
Der mit ähnlichem Korpus, nur Vierkant-Loch drin, hat die selbe 
Maschine, aber 1:6,9 oder so. Den kann man auch von außen noch drehen, 
leider.

Sensorik:
Habe mit Hall-Sensoren aus so kleinen Grafikkarten-Lüftern angefangen. 
Die haben +,-,OpenCollectorOut (Polwechsel, "bipolar digital hall 
Sensor"). Die neuen großen CPU-Lüfter haben leider analoge Hall-Sensoren 
ohne Elektronik drinne und ein zwei SMD-Chips, die das verarbeiten. Bei 
Reichelt gibt es den TLE4935L bipolar Hall ohne Richtungserkennung, 2 
kaufen. Programmbeispiel im Netz oder auf Anfrage.

Beschäftige mich gerade mit Interrups, einfacher PCINT8 u. 9, im IRQ 
wird per StateMachine Quadratur-Decodierung gemacht. Globale Variable 
stellt den Counter zur Verfügung. Tut. Mit 4 Flanken pro Polwechsel des 
Kodiermagneten. Man muss nur die Sensoren vor dem Feld des Motormagneten 
schützen und exakt auf 45° Phasenverschiebung hin biegen. Lackdraht an 
Hallsensor, Epoxy an die Anschlussdrähte in Abstand ans Gehäuse, schon 
kann man die Position vom Sensor zurechtbiegen. Bilder gibt es auf 
Anfrage.

Jetzt steige ich gerade um auf "Input Capture" ICP1, mit dem 16bit 
Counter vom 328P, ich will ja die Winkelgeschwindigkeit über die 
Periodendauer der Pulse messen, und darüber die Beschleunigung und da 
darauf regeln.
Habe mir bei RS-components so einen SMD-Reel-Abschnitt mit 25 
Hall-Sensoren Infineon TLE4966-3K gekauft, fummelig klein, passen aber 
zwischen Ringmagnet von CD-Rom-Spindel und Ache, die haben schon 2 Halls 
drin in 1,4mm Abstand und einen Quadratur-Decoder. Ja, ich weiß, wie 
langweilig. Der macht 1 Flanke pro Polwechsel. 12 Flanken/U bei den 
meisten CD-Rom-Spindelmotor-Magneten (LG hat 6).
Der eigentliche Vorteil der Nähe der 2 Hallsensoren ist, dass sie 
gleiche Störungen erfahren, und dass sie untereinander im Chip 
kalibriert sind. Man kann dann im Motor zwischen die beiden Polmagnete, 
wo das Störfeld vom Permanentmagnetfeld minimal ist, positionieren. Geht 
nicht so gut mit Einzelsensoren, da kann man gegenüber probieren.
Packt unbedingt mal mit Frischhaltefolie ein und lasst Euch die 
Magnetfelder anzeigen mit einem Tütchen Eisenspäne oder Pulver. VOm 
Motor und vom Ringmagneten... Ein alter Hallsensor mit LED und einem 
9V-Block hilft auch. Besser ein analoger aus Floppy o.ä. BLDC Motor an 
Instrument.

Aktorik:
Motor: erst mal alles rausknipsen (C) oder brücken (L), was entstört, 
das kommt vor die H-Brücke. (Der NTC darf bleiben ;)
Kurze Kabel, ev. verdrillt geschirmt, also Netzwerkkabel 4 parallel pro 
Anschluss, zur H-Brücke an den Motor.
Dann habe ich die Infineon H-Brücke gekauft, siehe "DC Motor Control 
Shield with BTN8982TA for Arduino".
Die scheint zu halten, was das Datenblatt verspricht.

Bremsproblem:
Da bei mir 2kg auf 1m/s nach unten sollen, entsteht 20W. Die landen zu 
erklecklichem Anteil als Bremsspannung am Netzteilanschluss, und das 
sagt "Nö!" und geht erst mal runter. Dann saust die Last herunter, weil 
die Brücke den Motor (z.B. via 2x Low Side) nicht mehr kurz schließen 
kann. Das mit dem Ableiten ist also bisweilen wichtig...

Überhaupt mache ich 30kHz PWM, und haue eine Seite konstant auf 0 oder 1 
und die andere auf PWM 0..100%. Bei 0% bremst er eben, ganz gut sogar.
Nur wenn ich dann beim Runterfahren meiner Last etwas Gas gebe, dann 
steigt sehr schnell das Netzteil aus.

Andere nennen solche Schaltungen Buck/Boost ;)
Wir haben ja synchrone Gleichrichtung, eine schöne induktivitäö

Frage: Wenn man die Schleichfahrt nach unten bei kurzgeschlossenem Motor 
in der Drehzahl regulieren will, wie macht man das 
Schaltnetzteil-freundlich? Kann ich bis zur Grenzspannung, die die PWM 
verträgt, den Motor abwechselnd kurzschließen und dann frei drehen 
lassen?

Zum Überladen des Netzteils:
http://www.mikrocontroller.net/articles/Motoransteuerung_mit_PWM
...ist eine Überspannungsbegrenzung in Form eines Bremswiderstands 
vorzusehen (Bremschopper)."
Habe ich leider auch jetzt erst gelesen.

Irgendwie würde ich jetzt sagen, dass man das Netzteil um einen Regler 
erweitern muss, der Überspannungen abbaut, bevor der eingebaute Schutz 
anspringt. Primitiv: nehme MosFet und schalte einen Leistungswiderstand 
zur Versorgungsspannung, sobald ich nach unten fahre. Halogenlampe vom 
Auto. Weniger primitiv: überwache Strom, wenn Rückwärts, anschalten. 
Macht im Endeffekt eine freilaufende PWM. Hat jemand einen Vorschlag, 
die H-Brücke zu recyclen? Man kann von jedem Mainboard Powermosfets 
recyclen und direkt mit dem Controller ansteuern, wenn man nicht schnell 
schalten will. Daher die Frage nach der Kombination aus Last und 
Schalter.

Die Leute mit Akku haben es hier gut, dann wird der Akku eben geladen.

 (Der Motor kann das Bremsen durch Kurzschließen ab, er vernichtet dann 
die Bremsenergie, i.e. die erzeugte Generatorspannung verbrät im 
ohmschen Anteil der Wikcklung, und tut das, bis er zu heiß wird. Dann 
macht, so vorhanden, der NTC o.ä. auf, und er dreht frei.)

Bei kleinen Motoren ist das mit dem Bremsen sicher nicht so wild.
Aber der unscheinbare Klotz von Pollin hat 28A Kurzschlussstrom, und so 
schlecht ist die Effizienz, in dem Fall leider, nicht.

Gruß!

AndiSh

von Falk B. (falk)


Lesenswert?

@ Stefan Us (stefanus)

>Die einfachste Methode, den Antrieb "sofort" zu stoppen, ist ihn gegen
>ein Hindernis laufen zu lassen. Quasi das Auto vor die Wand fahren.

Ganz tolle Idee!

>Durch Kurzschließen kann man Motoren abbremsen, allerdings eher schwach.

Das ist für die meisten Anwendungen stark genug. Kann jeder mal 
ausprobieren, es reicht ja ein einfaches Relais mit Wechslerkontakt.

>Langer Rede kurzer Sinn "sofort" anhalten ist nicht Sinnvoll,

Davon war nie die Rede. Aber es ist schon ein Unterschied ob der Motor 
nach 10ms steht oder 500ms.

Ausserdem ist das Problem des OP schon längst zufriedenstellend gelöst.

von Harald W. (wilhelms)


Lesenswert?

Stefan Us schrieb:

> Langer Rede kurzer Sinn "sofort" anhalten ist nicht Sinnvoll, denn
> dadurch zerstörst du das Material.

Ja, selbst ein Auto, das gegen eine Betonbrücke fährt, hat einen
"Bremsweg" von ca. 1 Meter.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

>>Langer Rede kurzer Sinn "sofort" anhalten ist nicht Sinnvoll,
> Davon war nie die Rede.

Dann habe ich diesen Satz wohl missverstanden:
"Ich suche eine Lösung ... wie ich einen einfachen DC Motor ... sofort 
zum Stehen bekomme."

von Falk B. (falk)


Lesenswert?

@ Stefan Us (stefanus)

>Dann habe ich diesen Satz wohl missverstanden:
>"Ich suche eine Lösung ... wie ich einen einfachen DC Motor ... sofort
>zum Stehen bekomme."

Ja, hast du. Das hier umgangssprachliche "sofort" meint nicht in 1ps, 
sondern "deutlich schneller als ein freies Auslaufen des Motors"

von J. T. (chaoskind)


Lesenswert?

[Klugscheiß]
Auch eine ps ist nicht sofort. Sofort ist in 0s
[/Klugscheiß]
:D

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.