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
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.
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
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
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.
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.
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
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 :(
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.
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
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
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
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.
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
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...
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
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?
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
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...
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.
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
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".
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." ^^
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.
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.
@ 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.
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
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.
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
@ 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.
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
>>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."
@ 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"
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.