Als Treiber für einen Schrittmotor, der Pulse mit jeweils wechselnder
Polarität braucht, würde ich gerne einen NPN und PNP so beschalten wie
im Diagramm. Am anderen Eingang des Schrittmotors hängt ein Elko gegen
Masse, der jeweils beladen oder entladen wird. Die Basis der
Transistoren steuert ein Attiny an. Frage, funktioniert das so mit den
Transistoren, um je nach High/Low auf der Basis am Ausgang VCC oder GND
zu haben, oder habe ich da einen Denkfehler drin?
Wenn die Spannungsquelle gut ist, so wird die Schaltung wohl nur ein
paar mikroSekunden überleben.
Beide Emitte-Basis-Strecken liegen in Reihe und dirket an der
Versorgung. Das wird warm und der magische Rauch steigt auf.
Guck dich mal der Datasheet von Texas Instruments L293(D) an. Da stehen
verschiedene Prinzip-Diagramme in. Benutze diesen Chip oder wenn du
wirklich wollst Bau das selber mit Transistoren, da brauchst du aber
eine andere Schaltung als du presentiert hast.
> Wenn die Spannungsquelle gut ist, so wird die Schaltung wohl nur ein> paar mikroSekunden überleben.>> Beide Emitte-Basis-Strecken liegen in Reihe und dirket an der> Versorgung. Das wird warm und der magische Rauch steigt auf.
Nein, das passiert nicht, weil er die Transistoren vertauscht hat. Die
Schaltung macht gar nichts.
Zur gezeigten Schaltung alleine:
Beide Strecken BE leiten wegen der miteinander verbundenen Basen.
Abhilfe schafft es, beiden Basen separate Vorwiderstände zu verpassen.
ArnoR schrieb:> Nein, das passiert nicht, weil er die Transistoren vertauscht hat. Die> Schaltung macht gar nichts.
Dann schau nochmal, wo Vcc und GND ist. Es wäre ja zu einfach, das in
"üblicher" Weise zu zeichen ;-))
Spontan, ich muss nochmal fragen um es genau zu verstehen. Liegt das
Problem darin, daß die Basis in Reihe geschaltet ist, d.h. würde je
Basis ein Widerstand zum Attiny das Problem vermeiden?
Meinem Verständnis nach schaltet bei Basis High der NPN GND durch, und
bei Basis Low der PNP VCC, d.h. die sollten sich theoretisch nicht in
die Quere kommen. Oder ist das zu kurz gedacht?
Patrick, danke, schaue ich gleich mal rein. Der Schrittmotor braucht nur
langsame Einzelimpulse (mechanischer Zähler), d.h. der L293 ist
vielleicht schon etwas zu gut für die Anwendung.
Ist der Schrittmotor mit ~4V zufrieden (bei VCC=5V)? Wenn ja, dann tut
es ein Transistorpaar. Wenn nicht, bist du mit einem Halbbrücken-IC oder
evtl. einem MOSFET-Treiber einfacher dran.
prx, guter Punkt! Der Schrittmotor liegt etwas drüber, hatte gehofft das
ich das durch eine längere Pulsbreite kompensieren kann. Danke für den
Mostet/Halbbrücken Tip, schaue ich mir an.
Anbei korrigierte Schaltung mit zwei Vorwiderständen und GND unten.
Karl schrieb:> Anbei korrigierte Schaltung mit zwei Vorwiderständen und GND unten.
Aber beachte: hier fließt beim Umschalten ein u.U. hoher Querstrom!
Also muss bei der Schaltung
- sehr schnell umgeschaltet und/oder
- ein Strombegrenzung vorgesehen werden.
Gruß Dietrich
Dietrich L. schrieb:> Aber beachte: hier fließt beim Umschalten ein u.U. hoher Querstrom!> Also muss bei der Schaltung> - sehr schnell umgeschaltet und/oder> - ein Strombegrenzung vorgesehen werden.
... und man muss sich ganz sicher sein, dass der Controller nie in den
Reset gerät oder neu programmiert werden muss.
M.a.W: Das ist immer noch Käse. Eine Komplementärtreiberstufe
funktioniert andersrum. Natürlich hat man dann weniger Spannung.
Karl schrieb:> Als Treiber für einen Schrittmotor, der Pulse mit jeweils wechselnder> Polarität braucht,
Apropos: Wie erzeugst du mit deiner Halbbrücke wechselnde Polarität?
Kann es sein, dass du in Wirklichkeit eine Vollbrücke brauchst?
Karl schrieb:> schaltung.png
Üblicherweise werden die Emitter in die Mitte genommen. Sieh Dir
z.B. mal typische NF-Verstärkerschaltungen an.
Gruss
Harald
> d.h. der L293 ist vielleicht schon etwas zu gut für die Anwendung.
Ueberliege dir dieser Aussage nochmal. Um einen Schrittmotor zu steuern
musz man mindestens 4 Transistor-paren benutzen, dabei die wiederstande
und man musz unbedingt 2 dioden pro Transistor-par benutzen (ich weisz
nicht wie man dies auf Deutsch nennt, Niederlaendisch=blusdioden oder
'tegen-emk' diode, back-emf oder flyback-diode) weil man sonnst zu hohe
strom-pegeln bekommt und die transistoren gehen kaput.
Der L293D (16-pin chp) hat genau die schaltung die du brauchst incl
blusdioden, ist einfach zu benutzen, hat wahrscheinlich genuegend strom
fuer deinen Schrittmotor und ist denke ich einfach zu kaufen und nicht
teuer. L293 kann auch aber dann musz du die blusdioden extern setzen.
Setze ihm in ein fueszchen (oder wie heist das) so das er einfach
gewechselt werden kann wenn kaput.
http://www.ebay.de/itm/10-Stucke-L293D-Stepper-Motor-Treiber-Driver-Chip-Motortreiber-/290607578207?pt=Bauteile&hash=item43a98fbc5f
Patrick C. schrieb:> Ueberliege dir dieser Aussage nochmal. Um einen Schrittmotor zu steuern> musz man mindestens 4 Transistor-paren benutzen, dabei die wiederstande> und man musz unbedingt 2 dioden pro Transistor-par benutzen
Patrick, mit "zu gut" meinte ich nur das der L293D vier Kanäle hat und
eigentlich brauche ich nur einen wenn ich das Datenblatt richtig
verstehe (und ich hab nur noch wenig Platz auf der Platine).
A. K. schrieb:> Karl schrieb:> Apropos: Wie erzeugst du mit deiner Halbbrücke wechselnde Polarität?> Kann es sein, dass du in Wirklichkeit eine Vollbrücke brauchst?
prx, das Datenblatt des 293D und der anderen H-Brücken hatte ich so
verstanden, das die Ausgänge der H-Brücken die Polarität wechseln
können, um die Drehrichtung des Motors zu ändern? ("...designed to
provide bidirectional drive currents")
Zum Hintergrund, der anzusteuernde "Schritt"motor ist aus einem
mechanischen Zähler aus den Siebzigern. Das Zählen erfolgt relativ
simpel durch eine Drehung des Motors in die eine, dann in die andere
Richtung, den Rest erledigt die Mechanik. Die Pulslänge pro Bewegung in
eine Richtung ist 300 ms. Die Pulszeit ist über die Kapazität des Elkos
am zweiten Anschluss des Motors gesetzt.
Aus der H-Brücken Übersicht hier auf der Site hab ich mir den Si9987 von
Vishay rausgesucht, der ist als 8 Pin SOIC erhältlich. Spricht etwas
dagegen, von dem nur einen Ausgang zu verwenden, und damit den
Motor->Elko->Masse anzusteuern?
http://www.vishay.com/docs/70864/si9987.pdf
Hi,
Karl schrieb:> Patrick C. schrieb:>> Ueberliege dir dieser Aussage nochmal. Um einen Schrittmotor zu steuern
...
>> Zum Hintergrund, der anzusteuernde "Schritt"motor ist aus einem> mechanischen Zähler aus den Siebzigern. Das Zählen erfolgt relativ> simpel durch eine Drehung des Motors in die eine, dann in die andere> Richtung, den Rest erledigt die Mechanik. Die Pulslänge pro Bewegung in> eine Richtung ist 300 ms. Die Pulszeit ist über die Kapazität des Elkos> am zweiten Anschluss des Motors gesetzt.
bis Du sicher das es sich um einen Schrittmotor handelt? Kann es nicht
auch sein das es einfach zwei Spulen sind die einen Hebel vor und zurück
bewegen?
Oder hast Du nur eine einzige Spule (dann ist es auch kein Schrittmotor)
bei der Du die Polarisation welchseln musst, damit das Zählwerk einen
"Schritt" macht? Poste doch mal Informationen zum Zählwerk ...
> Aus der H-Brücken Übersicht hier auf der Site hab ich mir den Si9987 von> Vishay rausgesucht, der ist als 8 Pin SOIC erhältlich. Spricht etwas> dagegen, von dem nur einen Ausgang zu verwenden, und damit den> Motor->Elko->Masse anzusteuern?
Motor-Elko-Masse ? Du meinst einen Elko in Serie mit dem Motor ? Neh,
dafuer brauchst du einen zu groszen Elko und keinen Polairen.
Theoretisch koennte das funktionieren aber nicht Praktisch. Du brauchst
einen Kompletten H-Brucke weil man fuer die eine richting +- am Motor
schalten musz, fuer die andere seite -+. Vergleich es mit diese
relay-schaltung :
http://www.bibaja.com/images/relay_motor_control.png
Also du brauchst 1/2 L293D oder 1 Si9987 (habe ich keine erfahrung mit,
aber von datasheet aus funktioniert das.
Die Frage ist, wie Wolfgang schon sagte, ist es wirklich ein
'schritt-motor' ? Wenn nicht kannst du auch vielleicht noch denken an
ULN2003, geeignet um motoren in eine richtung drehen zu lassen.
Also bitte poste mal ein foto von der Zahler und seine anschlusze.
Karl schrieb:> prx, das Datenblatt des 293D und der anderen H-Brücken hatte ich so> verstanden, das die Ausgänge der H-Brücken die Polarität wechseln> können, um die Drehrichtung des Motors zu ändern? ("...designed to> provide bidirectional drive currents")
Wenn der Motor an GND hängt, dann sorgt eine Halbbrücke für wahlweise +V
und GND am anderen Anschluss. Für wechselnde Polarität sorgen 2
gegenäufig betriebenen Halbbrücken aka eine Vollbrücke. Der L293D hat ja
4 Halbbrücken drin.
Achtung: H-Brücke = Vollbrücke != Halbbrücke.
Wolfgang Heinemann schrieb:> bis Du sicher das es sich um einen Schrittmotor handelt? Kann es nicht> auch sein das es einfach zwei Spulen sind die einen Hebel vor und zurück> bewegen?
Das ist kein Schrittmotor, sorry mein Fehler in der Beschreibung. Das
sieht nach einem normalen Motor mit zwei Anschlüssen aus, der durch die
Mechanik dahinter eine einfache Schrittmotorfunktion liefert. Die
Mechanik bewegt eine Rollenanzeige schrittweise weiter.
Patrick C. schrieb:> Motor-Elko-Masse ? Du meinst einen Elko in Serie mit dem Motor ? Neh,> dafuer brauchst du einen zu groszen Elko und keinen Polairen.
Der Elko hat 680 uF, durch die Be- und Entladung bekommt der (recht
kleine) Motor genug Energie für das weiterschalten. Das hat den Vorteil
das ich im Mikrocontroller keinen weiteren Timer für die ~300 ms der
Schaltstufen brauche.
> Theoretisch koennte das funktionieren aber nicht Praktisch. Du brauchst> einen Kompletten H-Brucke weil man fuer die eine richting +- am Motor> schalten musz, fuer die andere seite -+. Vergleich es mit diese> relay-schaltung :> http://www.bibaja.com/images/relay_motor_control.png
Genau, das passt vom Prinzip, nur das ich dann die Schaltzeit selbst
steuern muss. Das wollte ich mit der Motor/Kondensatorschaltung
vermeiden.
A. K. schrieb:> Wenn der Motor an GND hängt, dann sorgt eine Halbbrücke für wahlweise +V> und GND am anderen Anschluss. Für wechselnde Polarität sorgen 2> gegenäufig betriebenen Halbbrücken aka eine Vollbrücke. Der L293D hat ja> 4 Halbbrücken drin.>> Achtung: H-Brücke = Vollbrücke != Halbbrücke.
Ah, ok, verstanden. Hatte H-Brücke = Halbbrücke gelesen. Ich bräuchte
nur +V und GND an einem Anschluss (durch den Kondensator an Masse am
anderen Motoranschluss), demnach würde eine Halbbrücke ausreichen,
korrekt?
Wolfgang Heinemann schrieb:> Hast Du das Thema inzwischen gelöst? Wenn ja, wie? Kannst Du bitte> ein> Bild vom Zählwerk posten, das interessiert mich!
Wegen Zeitmangel noch nicht aktiv dran weitergearbeitet, ich habe mir
inzwischen aber zum Testen einige der Rohm BD6220F H Bridge Treiber
bestellt. Im Datenblatt steht explizit eine Warnung, keinen Kondensator
mit grosser Kapazität (was mein ursprünglicher Plan war) an den Ausgang
gegen Masse anzuschliessen, da bei VCC oder VIN auf GND die Ladung
zurückfliessen und den Treiber beschädigen kann. Gehe also vielleicht
doch den Weg, den Motor komplett über den H Bridge Treiber zu betreiben,
falls ich noch einen weiteren Port beim Attiny für die Ansteuerung
freiräumen kann.
Bild vom Zählwerk anbei (alter Tacho), der Motor zum Antrieb der
Mechanik ist rechts unten, die Mechanik zum weiterschalten unten Mitte
(zusammen mit dem Drehspulinstrument für die Geschwindigkeit), und oben
die Rollenanzeige.
Karl schrieb:> Gehe also vielleicht> doch den Weg, den Motor komplett über den H Bridge Treiber zu betreiben,> falls ich noch einen weiteren Port beim Attiny für die Ansteuerung> freiräumen kann.
Du schriebst doch, dass der langsam läuft. Kannst du da nicht einen Port
multiplexen?
Wenn du noch mal etwas genauer in die Technik der H-Brückenfunktion
schauen willst, dann kann ich dir dieses Video empfehlen.
https://www.youtube.com/watch?v=NyaOAJOG-zw
Hallo Karl,
leider hatte ich den Thread ein wenig aus den Augen verloren. Danke für
die Beschreibung des Zählwerks.
Karl schrieb:> Wolfgang Heinemann schrieb:
...
> falls ich noch einen weiteren Port beim Attiny für die Ansteuerung> freiräumen kann.>> Bild vom Zählwerk anbei (alter Tacho), der Motor zum Antrieb der> Mechanik ist rechts unten, die Mechanik zum weiterschalten unten Mitte> (zusammen mit dem Drehspulinstrument für die Geschwindigkeit), und oben> die Rollenanzeige.
Der Motor treibt also die Mechanik an. Die Mechanik ist so konstruiert
das sie, wenn der Motor genug angetrieben hat, die erste Walze weiter
schaltet. Wozu sind die zwei Drähte auf der Mechanik? Ist da ein
Schalter verbaut der Dir ein Signal liefert wenn die Walze weiter
geschaltet wurde?
Wenn dem so ist kannst Du die Zeit, die der Motor laufen muss, super mit
Deinem Mikrocontroller steuern. Den Elko würde ich auf jeden Fall weg
lassen. Das funktioniert per Software dann viel besser.
Bist Du sicher das Du eine Brücke brauchst? Ich vermute das der Motor
immer nur in eine Richtung laufen muss. Die Mechanik sollte dafür sorgen
das Schrittweise geschaltet wird. Was passiert wenn Du Spannung an den
Motor legst und keinen Impuls (über den Kondensator)? Möglicherweise ist
der Impuls, durch den Kondensator, zu kurz um die Mechanik einmal
komplett zu aktivieren und Du musst deshalb den Motor wieder zurück in
die Ausgangsstellung fahren. Wenn das Timing stimmt (Endschalter
auswerten) brauchst Du vielleicht den Motor nicht mehr rückwärts laufen
zu lassen.
Rückwärts zählen kann man vermutlich nicht. Es sieht so aus als wäre der
schwarze Stift dazu da den Zähler von Hand auf "0" zu setzen. Daher
halte ich es für sehr unwahrscheinlich das Du den Motor umpolen musst.
Für die beschriebene Funktion genügt ein Tiny13. Du könntest das sogar
diskret aufbauen, ganz ohne Mikrocontroller.