Hallo Leute, ich habe einen Schrittmotortreiber auf Grundlage des L298 aufgebaut. Der Schrittmotor ist 5-Phasig (nicht bipolor und nicht unipolar!) Die Phasen sind sternförmig geschaltet. Die Schaltung funktioniert ganz wunderbar, allerdings werden die beiden L298, die an einen großen Kühlkörper geschraubt sind unglaublich heiß nach kurzer Zeit (man kann sie kaum anfassen!). Im Datenblatt steht, dass der L298 insgesamt bis zu 4A Strom schalten kann und pro Kanal bis zu 3A. Mein Schrittmotor zieht (laut Datenblatt) aber maximal 1,4A bei 24V pro Phase (ich benutze 12V / bei 5V soll der Motor laut Datenblatt nur 0,1A pro Phase ziehen), wobei immer abwechselnd 3 und 2 Phasen gleichzeitig geschaltet sind. Gerade habe ich mal gemessen, wie viel Strom durch eine Phase fließt und kam zu meinem Unbehagen auf 3,2A pro Phase! Das ist natürlich viel zu viel: Beim L298 gibt es doch diese Sense-Pins, an denen man den maximalen Strom einstellen kann - wie berechnet man den Wert für diesen Widerstand?
Es muss doch jemanden geben, der mit diesem IC schon gearbeitet hat!?
Der Sense-Pin ist zur Strommessung gedacht. Sprich man schaltet da einen Widerstand gegen Masse dazwischen, und misst darüber dann eine dem Motorstrom propoertionale Spannung. Bei 12V und 1,4A hast du auch noch eine nette Verlustleistung am L298. Bei 3,2A natürlich noch mehr. Laut Datenblatt hat der L298 eine maximale Verlustleistungvon 25W. Da wird er schon richtig warm. Das Problem bei deiner Schatung vermute ich im Bereich der Taktung. Vielleicht kommst du in den Resonanzbereich des Motors. Was hat der Motor denn für einen Gleichstromwiderstand? Eine Skizze o.ä. von der Schaltung würde das Problem vereinfachen...
Hallo, im Datenblatt steht doch "Between this pin and ground is connected the sense resistor to control the current of the load." Ich dachte immer, dass "to control" steuern bedeutet und man halt so den Strom begrenzen kann. Aber ok, dann bin ich jetzt schlauer. Anbei ist die Schaltung der Motoransteuerung. Ich glaube nicht, dass es an der Taktung liegt, da ich ja gemessen habe, dass durch eine Spule 3,2A fließen, egal ob sich der Motor dreht, oder steht (d.h. die Kraft hält). Die 3 Ampere fließen min durch 2 Spulen und max durch 3 Spulen (je nach Stellung). Eine Spule hat einen Widerstand von 1,2 Ohm. So ist der Motor bei mir geschaltet (die Transistoren wegdenken - dafür habe ich ja den L298) http://www.bendrich.com/bilder/5eck.gif Ich steuere den Motor mit einem Takt von 50Hz an.
Naja, mit dem Widerstand kannst du natürlich auch den Strom einstellen... Spannungsteiler halt... 12V / 1,2Ohm sind doch 10A, oder? (eine Spule) Bei zwei Spulen dann 5A, bei 3 dann ca. 3,3A. Die Schaltung finde ich auch interessant... irgendwie fliesst da meiner Meinung nach durch alle Spulen Strom, wenn zwei Halbbrücken durchschalten, weil die Spulen dann teilweise in Reihe und teilweise parallel geschaltet sind. Sicher, dass das genau so gehen soll? Bin gerade nicht ganz in der Lage, das nachzuvollziehen. Bei längerer Betrachtung sieht es aber irgendwie gut aus. Du solltest vielleicht die Spannung erst mal senken. In irgendeinem anderen Thread (irgendwas mit Folienschneider oder so, Lexmark-Drucker-Umbau)ging es auch um ein ähnliches Problem. Da ging es dann darum, die Spannung per PWM zu senken. Also nur im ersten Schaltmoment die hohe Spannung zu benutzen, bis sich der Rotor in Bewegung gesetzt hat. Das wird wohl auch hier das Problem sein, dass die zum "Loslaufen" notwendige Spannung im "Ruhezustand" immer noch anliegt, obwohl sie nicht mehr nötig wäre. Das Haltemoment ist auch durch eine niedrigere Spannung und dementsprechend einem geringeren Strom möglich. Schalte den Motor doch einfach erstmal aus, wenn die Sollposition erreicht ist. Dann wäre zwar kein Haltemoment da, aber man könnte testen, ob die Erwärmung damit zusammenhängt.
Also die Schaltung funktioniert ganz gut, d.h. der Motor dreht sich ruhig und gleichmäßig. Bei 5V schafft mein Motor es tatsächlich nicht, die Last anzuschieben. Eine Strombegrenzung von 1,4 Ampere wäre dann doch eine elegantere Lösung. Ist die Rechnung nicht etwas unlogisch: Es liegen ja an jeder 2. Spule 12V an, d.h. der Strom unterteilt sich nicht, sondern wäre nach deiner Rechnung an jeder Spule so hoch. Wie soll ich denn den Motor abschalten?
Wie gesagt: Die Schaltung müsste ich mir mal anders aufmalen... Den Motor zum "Ausschalten" einfach stromlos schalten. Die Strombegrenzung wird bei vielen Steuerungen durch eine Stromregelung gemacht.
Was Du da aufgemalt hast ist aber keine Strernschaltung! Sondern wie der Titel schon sagt Fünfeck. Was ist jetzt die richtige? Arno
Ok, du hast natürlich echt - ich benutze eine Fünfeckschaltung - das lag wohl daran, dass ich das Fachwort nicht wusste, bevor ich das Bild geladen hatte.
Hast Du Deine Schaltfolge der einzelnen Wicklungen mal als Diagramm da. So kann ich mir den Drehverlauf mit mal 3, mal 2 Spulen bestromt nicht so richtig vorstellen. Arno
Ja, kein Problem, hier ist der c-code: void turn_motor(int position) { switch (position) { case 0: PORTB = (1<<0)|(0<<1)|(1<<2)|(0<<3)|(1<<4); PORTD |= (1<<Enable); break; case 1: PORTB = (0<<0)|(0<<1)|(1<<2)|(0<<3)|(1<<4); PORTD |= (1<<Enable); break; case 2: PORTB = (0<<0)|(1<<1)|(1<<2)|(0<<3)|(1<<4); PORTD |= (1<<Enable); break; case 3: PORTB = (0<<0)|(1<<1)|(0<<2)|(0<<3)|(1<<4); PORTD |= (1<<Enable); break; case 4: PORTB = (0<<0)|(1<<1)|(0<<2)|(1<<3)|(1<<4); PORTD |= (1<<Enable); break; case 5: PORTB = (0<<0)|(1<<1)|(0<<2)|(1<<3)|(0<<4); PORTD |= (1<<Enable); break; case 6: PORTB = (1<<0)|(1<<1)|(0<<2)|(1<<3)|(0<<4); PORTD |= (1<<Enable); break; case 7: PORTB = (1<<0)|(0<<1)|(0<<2)|(1<<3)|(0<<4); PORTD |= (1<<Enable); break; case 8: PORTB = (1<<0)|(0<<1)|(1<<2)|(1<<3)|(0<<4); PORTD |= (1<<Enable); break; case 9: PORTB = (1<<0)|(0<<1)|(1<<2)|(0<<3)|(0<<4); PORTD |= (1<<Enable); break; } }
Gehe ich recht in der Annahme, dass "Enable" alle Ausgänge einschaltet, also die Signale auf den Motor schaltet? Schaltest du das auch irgendwann wieder aus? Prinzipiell müsste es dann nämlich gehen, über eine PWM am Enable-Eingang, den Strom zu regeln. Also beim Schaltvorgang volle Energie, und einen Moment später nicht mehr. Zum Thema "+Schrittmotor +PWM" (Beitragssuche) gibt es diverse Threads...
Mich wundert es nur, dass eine Phase so viel Strom zieht, da wie gesagt im Datenblatt von anderen Werten die Rede ist (wenn ich das richtig interpretiert habe). Ihr könnt euch ja mal das Datenblatt anschauen (Anhang). Laut Rechnung ist das natürlich richtig, aber das ist ja auch kein ohmscher Widerstand - wie berechnet man eigentlich den Widerstand von stromdurchflossenen Spulen? Die Idee mit der PWM ist ganz gut, allerdings dazu noch einige Anmerkungen / Fragen: 1. Ich habe die Motoren über eine 2m lange Leitung verbunden - kann es da auf Grund der Schwingungen bedingt durch die PWM nicht zu Störungen kommen? 2. Ich denke mal, dass man die PWM dann bei jedem Vektor von 0 (keine PWM) auf irgendeinen Wert (Pulsbreite) hochfahren muss, oder?
Och nee. Die Angabe von 1.1A / 1.5A im Datenblatt für 24V bezieht sich auf den zugehörigen Treiber, das ist also der Strom, den der Treiber in die Motorwicklung schickt. Die 0.1A bei 5V sind die Stromaufnahme der Steuerelektronik des Treibers. Für den Motor ist je nach Typ ein Widerstand von 0.7..2.8ohm angegeben, Du schreibst, Dein Motor hat 1.2ohm. Und da wunderst Du Dich über den Strom? Wie oben schon jemand schrieb, sollte bei 12V ein Strom von 10A möglich sein, der L298 begrenzt das dann auf 3.2A, am Motor werden pro Phase rund 12W umgesetzt, klar dass der leicht warm wird. Hol Dir mal bei www.st.com das Datenblatt vom L6506. Das ist ein Schrittmotor-Treiber, der mit dem L298 eine Stromregelung per Chopper aufbaut. Allerdings für bipolare SM, brauchst Du 2 1/2 davon. Sven
Ups, das ist aber ein peinlicher Fehler! Der Hinweis zum L6506 ist gut, wobei ich anmerken muss, dass ich eigentlich einen stärkeren Treiber bräuchte, als den L298, da dieser ja unglaublich heiß wird. Kennt jemand so etwas?
Kann mir igrnedjemand einen Hinweis geben wie man den Sense Resistor dimensioniert! Der ist doch dazu gedacht um den Strom den der L298 abgibt zu messen oder!? Naja und wenn dieser Brückentreiber angenommen 2A abgibt und ich einen Widerstand von 0.5 ohm verwende, wird mir dieser Widerstand sicher abbrennen oder!? Der hält ja nur ein Paar Watt aus! Brauch ich nun einen Leistungswiderstand!?
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.