Schrittmotor+Schaltung

Gast #409097
Hallo,
ich habe gehört, hier sind die absoluten Profis !
Habe schon ein bisschen im Forum rumgesucht, aber noch nichts passendes
gefunden!
Habe die 2 Schrittmotoren, die auf dem Bild zu sehen sind
und würde gerne wissen, ob ich diese mit folgender Schaltung an meinem
ATMega16 betreiben kann.....
hier die Schaltung.....
http://www.roboternetz.de/wissen/images/0/02/Schaltungstep298.gif

die teile hätt ich hier auch rumliegen...
aber die Schaltung ist doch nur für einen Motor, richtig?

das einzige was zum Mikrocontroller geht sind doch die Leitungen
GND +5V ENABLE CW und CLOCK richtig ??
wobei ich ja dann nur 3Ports brauche ?!?

Die Motoren stammen aus zwei Scannern (gleiche Scanner, aber waren
verschiedene Motoren drinn) lol
Das Netzteil von den Scannern lieferte 12V,
wieviel Volts soll ich dann auf Motorspannung U1, U2 legen (das sind
doch einmal + und einmal -, richtig)


Danke
Angehängte Dateien:
Gast #409100
Der Link wird umgeleitet nach
http://www.roboternetz.de/images/ersatzbild.gif
Darin steht: Foto findest Du im www.roboternetz.de
http://www.roboternetz.de/wissen/images/0/02/Schaltungstep298.gif


Tatsächlich, der Link stimmt, scheinbar kann er nur direkt von
http://www.roboternetz.de/wissen/index.php/Bild:Schaltungstep298.gif
aufgerufen werden.

Die Schaltung ist die klassische L297/L298-Schaltung.
Die 0,5 Ohm Rs müssen induktivitätsarm sein, also keine gewickelten
Drahtwiderstände.
Der Motor hat 6 Anschlüsse, also 2 Spulen mit Mittelanzapfung. Sie
wurden vermutlich unipolar angesteuert. Für diese Schaltung evtl. nur
die beiden äußeren Enden anschließen. Die ermittelt man mit einem Ohm-
oder Amperemeter. Die Mittelanzapfungen offen lassen.
Am besten sind Motoren mit 8 Anschlüssen, damit kann man wählen, ob man
die Wicklungen parallel oder seriell schaltet.

Ja, die Schaltung ist für einen Motor.
Ja, drei Ports genügen.
Gast #409101
Hallo,
bin also grad dabei die schaltung auf zu bauen
und stelle fest, das der scheiss 297 komisch in dem Datasheet
beschrieben ist von der Pin-belegeung...
kann ich das ding nicht ganz normal über "Corner-Pinning"
anklemmen, so wie man jeden IC anklemmt ??
irgendwie scheint mir der GND ganz woanders zu sitzen....

Datenblatt im Anhang,
Habe auch keine IC-Fassung, muss also fix-löten und irgendwie den IC
kühlen, richtig ??
Also wie soll ich da die Belegung dran löten?
Gast #409105
Das ist doch kein 74er TTL-IC, auf jeden Fall bei jedem IC drauf achten
und vorher das Datenblatt genau angucken! Ich weiß nicht wo du das
"Corner-Pinning" gelernt hast, aber vergiss das am Besten schnell
wieder!
Gast #409107
bin bisher eigentlich immer gut mit dem scheiss corner pinning zurecht
gekommen, also der L297 ist der erste IC, den ich sehe wo das mit der
Beschaltung anders ist, deshalb war ich jetzt voll verwirrt...
Gast #409108
Hallo,

dann hast Du noch nicht allzuviele ICs gesehen... ;)
Klappt nur bei 74er und teilweise 4000er Serie.
Beim 7491 fiel man damit aber schon ganz früher auf die Schnauze. :)

Also wirklich immer Datenblatt befragen, ist sonst schade um die ICs.

Gruß aus Berlin
Michael
Gast #409109
Alles klar Michael,
werde mir deinen Ratschlag zu Herzen nehmen....
Stimmt wohl hatte bisher eigentlich nur mit der 74er Family zu tun...
das sind halt die besten :P lol


Danke !

MfG,
A
Gast #409110
Hallo
noch mal ne Frage zu der Schaltung
http://www.roboternetz.de/wissen/index.php/Bild:Schaltungstep298.gif

da sind ja an der rechten seite unten bei den 4 dioden die
0,5 Ohm widerstände drinne, habe aber nur 1 Ohm Widerstände hier
und wenn ich die messe haben die wegen der Toleranz so um die
1,5-1,7Ohm

kann ich die auch dafür nehmen, oder ist das an der stelle kritisch
????

Sonst steht die ganze Schaltung schon, schön alle Bahnen selber gezogen
oder mit Kabeln sieht wild aus :P
kann ja später mal nen bild stellen....
Gast #409113
Ahso,
hmm und wie mach ich das dann ?

ich dachte da muss je ein 0,5er rein....
wenn ich nun 4 1er Widerstände parallel schalte erhalte ich 0,8ohm
Gast #409115
jetzt les ich grad in dem artikel folgendes:

In dem Fall kann man den Motor nicht bipolar ansteuern, sondern muss
ihn unipolar ansteuern. Mit L297/L298 bzw. RN-Motor usw. wird ein
Schrittmotor immer bipolar angesteuert, also kann dafür kein Motor mit
5 Drähten verwendet werden. Da heutzutage Schrittmotoren bevorzugt
bipolar angesteuert werden um maximales Drehmoment (Kraft) zu
erreichen, sollte man daher beim Kauf möglichst Motoren mit 4, 6 oder 8
Drähten kaufen.


kann ich also meine Schrittmotoren (5draht) garnicht mit der schaltung
ansteuern ??? :(
mist schaltung fertig und dann kann ich die nicht nutzen lol

hier das bild zum text
http://www.roboternetz.de/wissen/images/b/bf/Stepper5draehte.gif
Gast #409116
"wenn ich nun 4 1er Widerstände parallel schalte erhalte ich 0,8ohm"

Den physikalischen Gesetzmäßigkeiten zufolge ergibt das 0,25Ohm. Ich
glaube eher, daß dein Meßgerät nicht geeignet ist.
Schliesse mal die Meßspitzen kurz, wenn dein Meßgerät dann nicht 0,00
Ohm anzeigt, musst du den gemessenen Wert berücksichtigen.

Volker
Gast #409119
hmm toll,
schaltung fertig und dann merk ich das ich die überhaupt nicht für
meine motoren nehmen kann :P
wo bekomm ich denn günstig (sehr günstig) bipolare Schrittmotoren her
?


welche schaltung könnt ihr denn für meine unipolaren schrittmotoren
empfehlen ?
Gast #409121
kennt ihr denn eine schaltung, mit der ich meine unipolaren
Schrittmotoren ansteuern kann ?

könnt ihr mir das was empfehlen, womit ihr gute erfahrungen gemacht
habt ??
Gast #409122
Einen unipolaren Schrittmotor kann man problemlos mit ein paar
NPN-Transistoren (oder auch N-Kanal-MOSFET) betreiben. Der gemeinsame
Pol hängt dann an +.
Die sind sogar einfacher anzusteuern.
Gast #409123
Aber wie sieht es dann mit dem PWM Signal aus ??
muss ich dann an die 4 Leitungen ein PWM-Signal liefern,
also mehrere verschiedene PWM's ??

hat jemand eventuell nen Link zu einer Unipolarschrittmotor Schaltung,
würd da gerne ma nen Bild von sehen, kann mir das noch nicht so ganz
konkret vorstellen :(
Gast #409124
Das Bild oben rechts auf der (von mir geposteten) Wiki-Seite zeigt die
Beschaltung eines unipolaren Schrittmotors.
Die Links auf der Seite sind auch sehr interessant.
PWM brauchst du übrigens nur, wenn du noch feinere Schritte machen
willst.
Einen Stepper (sehr verbreiteter Name für Schrittmotor) ohne L297/L298
zu betreiben erfordert ganze 4 Portpins (mit Verstärker) und etwas
"Hirnschmalz" (aber eigentlich sehr wenig davon).
Gast #409125
auf einer anderen seite fand ich folgendes...:
Unipolar: Für diese Art der Steuerung benötigt der Motortreiber jeweils
zwei Transistoren pro Wicklung (Strang)

-> also für meinen Motor insgesamt 8 NPN-Transistoren....

und wenn ich jetzt mal so gucke was ich an Transistoren da habe ist das
nicht viel :(
1) 10x BC639  NPN
2) 10x BC640  PNP

so nun habe ich bisher noch wenig erfahrung mit Transistoren,
bzw. keinerlei. Erkennt man auch daran das ich immer noch 10 von 10
Transistoren hier liegen habe, die ich mal irgendwann bestellt habe :)

Also 4 Portpins habe ich wohl noch frei, wobei mir erstmal wichtig ist
das der Motor läuft,später soll er dann über pwm gesteuert werden,
damit es noch genauer wird, wie du sagtest....

So nun die restlichen Fragen die mir noch erhalten blieben:

1)  Wie verschalte ich das mit Transistoren ?
2)  Kann ich diese Schaltung beibehalten, wenn ich später was mit
    PWM machen will, oder brauch ich da wieder ne andere Schaltung??
3)  Was genau meinst Du bitte mit Verstärker, etwa die NPN?

Dankeschön !!!!!!!!
Gast #409127
Nee,
habe die beide ausm Scanner gemopst,
kann nur sagen das das Netzteil des Scanners nen Output von 12V hatte

mehr weiß ich darüber nicht, ok ich weiß noch, das der rote Draht meine
beiden Mittelanzapfungen miteinander vereint, da der Widerstand von
jedem Draht zu diesem gleich ist....
Gast #409128
>das der rote Draht meine beiden Mittelanzapfungen miteinander >vereint,
da der Widerstand von
>jedem Draht zu diesem gleich ist....
Den packt man dann an +12V.
Die anderen 4 Anschlüsse kannst du testweise mit Masse verbinden.
Wenn du das in der richtigen Reihenfolge machst, "dreht" der Motor in
eine Richtung - dreht man die Reihenfolge um, dreht er andersherum.
Der Motor müsste zumindest zucken, wenn du eine Spule bestromst.
Wenn du dann einen NPN-Trasistor in die Leitung zur Masse schaltest,
kannst du mit einem Mikrocontroller diesen schalten und damit die Spule
mit Strom versorgen oder eben nicht. Freilaufdiode nicht vergessen.
Gast #409129
meinst Du das in etwa so ???

Bitte nicht schlagen, falls es voll Banane ist :P
Falls da noch Vorwiderstände rein müssen, um den Strom zu begrenzen der
vom uc kommt habe ich da mal welche reingezeichnet, keine Ahnung ob die
dahin müssen....

Nur weiß ich noch nicht wo ich mit der Freilauf Diode hin soll

brauch ich da dann 4 Stck von ??
Muss mal gucken was ich für Dioden hier habe

ähh da hätte ich die 15x   1N 4148
gehen die ??
Angehängte Dateien:
Gast #409130
Nicht ganz!
Der rote Draht deines Motor wird mit (+) verbunden.
Die Emitter der Transistoren kommen direkt an Masse.
Vorwiderstände: 1kOhm vielleicht...
Freilaufdioden: 1N4148 sollten gehen. Die kommen an den Kollektor der
Transistoren (Anode) und die Kathode kommt an (+).
Hast du mal probiert, den Motor ohne Transistoren zu einer Bewegung zu
überreden?
Gast #409131
Also so wie in dieser Schaltung ??

Aber wo kommt dann die Leitung von +12V dran ?
AUch einfach an jeden Strang nach der Diode, also zwischen Diode und
Wicklung?
Und GND von der 12V Spannungsquelle wieder mit den ganzen Emittern und
dem GND vom uc verbinden ??

Dann brauch ich wegen der Freilauf Dioden keinen Widerstand mehr
zwischen +12V und Collector, richtig, dafür sind die Dioden doch ?
Angehängte Dateien:
Gast #409132
Hast du dir das Bild auf der Wikipedia-Seite angeguckt?
Bis auf die Polarität der Spannungsquelle ist das der gleiche Aubau,
den du brauchst (es fehlen noch die Freilaufdioden, die du aber nicht
wirklich richtig eingebaut hast).
Hätte ich einen Scanner hier, würde ich dir was malen... hab ich aber
nicht.
Gast #409134
Also muss Diode nicht auf die Wicklung sondern an +12V  ??
so wie auf dem Bild im Anhang ??

und wohin dann mit den wicklungen ?
kannst du da nicht einfach mit paint oder so reinkritzeln ? :)
Angehängte Dateien:
Gast #409137
Im Prinzip ist zu jeder Wicklung die Diode parallel geschaltet, Anode
und die eine Seite der Wicklung geht an den Kollektor, Kathode und die
andere Seite der Wicklung (ist ja dein gemeinsamer +) an +12V.

Wenn ich bei Google "Freilaufdiode" eingebe, finde ich viele Eniträge
mit Zeichnungen und teilweise auch mit guten Erklärungen der
Funktionsweise.
Wir helfen gern, aber etwas Eigeninitiative kann nicht schaden.
Gast #409140
Noch einmal etwas übersichtlicher.
Aber, mess mal den ohmschen Widerstand einer Spule durch, berechne den
Strom durch die Spule unbd suche dir danach die Freilaufdiode aus.

MW
Angehängte Dateien:
Gast #409142
:)

Juhu ich habe es :P

Nun muss ich nur noch rausfinden wleche Leitung welche ist....

aber ich weiss schonmal, das wenn ich abwechselnd an braun und schawrz
12V anlege läuft er im kreis  :)
Gast #409143
Hallo,

also habe die Schaltung auf meinem Breed-Board aufgebaut und
ein Programm geschrieben, doch leider tut sich da überhaupt nichts mit
dem Stepper..... :(

Kann es daran liegen, das die Widerstände falsch dimensioniert sind,
oder vielleicht weil ich das Programm mit 8MHz durchlaufe und das für
die Wicklungen zu schnell ist ???

Quaöen oder warm werden tut hier nichts, das ist schonmal ein gute
Zeichen...hier das Programm....
=======================================================================
////////////////////////////////////////
////    Include-Teil  ////
////////////////////////////////////////
#include <avr/io.h>
#include <stdint.h>
#include <stdlib.h>

//////////////////////////////////////
//    Hauptprogramm  //
//////////////////////////////////////
void main(void)
{
////////////////////////////////////////
////  Variablendeklarationen    ////
////////////////////////////////////////
int Mot_A, Mot_B, Mot_C, Mot_D, Mode;
Mot_A=0;
Mot_B=0;
Mot_C=0;
Mot_D=0;
Mode=0;

////////////////////////////////////////
////  Portbelegungen    ///
////////////////////////////////////////
DDRC    =  0xff;  //Port C als Ausgang definieren


while(1)
{
  if(Mode == 0)    //Wenn Mode == Half
  {
    PORTC = 0x03;
    PORTC = 0x01;
    PORTC = 0x09;
    PORTC = 0x08;
    PORTC = 0x0C;
    PORTC = 0x04;
    PORTC = 0x06;
    PORTC = 0x02;
  }
  else        //Wenn Mode == FULL
  {
    PORTC = 0x03;
    PORTC = 0x09;
    PORTC = 0x0C;
    PORTC = 0x06;
  }
}
}
=======================================================================
Gast #409144
Hallo habe mal nen bisschen rumgemessen....

also von GND zum roten Draht (Mittelanzapfung) messe ich
so um die 15V, aber von GND zu den einzelnen Spulen auch....
aber diese sollten doch eigentlich gegen Masse gezogen werden oder ??
habe bereits eine Verzögerung ins Programm gebastelt, auf der Strecke
Portpin->Basis kann man immer schön messen, wie die Spannung von 5V auf
0V abfällt und das in einem guten zeitlichen Rahmen......

Helfen euch diese Angaben, oder soll ich nochmals woanders rummessen
???
Gast #409145
Versuch mal die Ausgangsmuster zu invertieren, immer nur eine Spule
unbestromt lassen, so sind die Teile nurmalerweise ausgelegt. Wenn du
einen Motor mit 2 Spulen und Mittelanzapfungen hast wird er so nicht
laufen, dann ist er Bipolar. Die Mittelanzapfung brauchst du dann
nicht, dann müssen nur die Sulen jeweils umgepolt werden, der Motor hat
dann auch weniger Steps pro Umdrehung.
Gast #409146
Was denn nu passiert, war grad was am schreiben und plötzlich postet der
2mal nen alten beitrag von mr ????
hmm egal, also

wenn ich mit den 12V Netzteil direkt immer abwechselnd an
schwarz und braun mit GND verbinde und rot dabei immer an die +12V
halte, dann zuckt er in kleinen schritten im kreis
dafür habe ich dann folgendes programm gebastelt....
====================================================================
#include <avr/io.h>
#include <stdint.h>
#include <stdlib.h>
#include <util/delay.h>

void schlaf(float anz)
{
  for(int i = anz; i > 0; i -= 0.25)
  {
    _delay_ms(250);
  }
}


//////////////////////////////////////
//    Hauptprogramm  //
//////////////////////////////////////
void main(void)
{
////////////////////////////////////////
////  Variablendeklarationen    ////
////////////////////////////////////////
int Mot_A, Mot_B, Mot_C, Mot_D, Mode;
Mot_A=0;
Mot_B=0;
Mot_C=0;
Mot_D=0;
Mode=0;

////////////////////////////////////////
////  Portbelegungen    ///
////////////////////////////////////////
DDRC    =  0xff;  //Port C als Ausgang definieren


while(1)
{
  if(Mode == 0)    //Wenn Mode == Half
  {
   PORTC = 0x01;
schlaf(50);
PORTC = 0x04;
schlaf(50);
  }
  else        //Wenn Mode == FULL
  {
    PORTC = 0x03;
    PORTC = 0x09;
    PORTC = 0x0C;
    PORTC = 0x06;
  }
}
}
====================================================================

aber trotzdem sind die spulen auch auf 12V gelegt und nicht wie sie
sollten an GND !!
Gast #409147
Das Problem liegt also denke ich nicht im Programm, sondern in der
Schaltung, an der Basis liegen abwechselnd ja 0 und +5V an,
das der Transistor eigentlich immer schalten sollte...
Gast #409148
habe mal die 12V versorgung abgeklemmt und wenn ich jetzt messen von
GND -> Spule also vor Diode(Anode)
dann mess ich, dass der immer abwechselnd 0V und 5V anliegen hat, aber
sobald ich die +12V dranpapp geht nichts mehr und steht immer bei
15,98V
Also ist doch was in der Schaltung nicht korrekt oder ????

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.