Hallo, ich weiß viele haben ähnlichen Beitrag gepostet aber ich bin neuling in der Sache und versuche einen Bipolaren Schrittmotor(STEPPER) mit einen Arduino Board über l293d anzusteuer dass er nach Links oder Rechts drehen kann aber ich komm irgendwie nicht weiter im anhang ist mein Schalt plan es wäre super wenn jemand mir weiter helfen würde . Ich bedanke mich im voraraus MFG LAZAROV
Das mit dem Schaltplna kann so funktionieren, wenn es die richtigen Spulen des Motros sind, und der für ungefähr 12V ausgelegt ist. Nun muß nur noch das Programm die richtigen Schrittimpulse liefern.
Hey, der Schaltplan sieht für den anfang soweit gut aus nur würde ich später die beiden Enabled Kanäle (Pin 1 und 9) ggf. auch noch einzelnd beschalten um später auch im Halbschritt verfahren zu können. Desweiten würde ich empfehlen dich für den Anfang mit ein paar mehr L293D IC's einzudecken da du am anfang mit sicherheit einige verheizen wirst :-) gruß, Pikee
Danke erstmal für die schnelle Antworten! Und zwar habe ich mittlerweile den Motor dazugebracht das er in einer Richtung Dreht aber langsam,die frage ich wie kann ich die PWM Einstellen,damit er bisschen schneller Dreht ,außerdem wie kann ich das machen,dass er nach Links und Rechts dreht hier ist mein Programmcode!
1 | /*
|
2 | * MotorKnob
|
3 | *
|
4 | * A stepper motor follows the turns of a potentiometer
|
5 | * (or other sensor) on analog input 0.
|
6 | *
|
7 | * http://www.arduino.cc/en/Reference/Stepper
|
8 | * This example code is in the public domain.
|
9 | */
|
10 | |
11 | #include <Stepper.h> |
12 | |
13 | // change this to the number of steps on your motor
|
14 | #define STEPSA 200
|
15 | #define STEPSB 100
|
16 | #
|
17 | |
18 | int pwm=5; |
19 | int pwm2 =3; |
20 | // create an instance of the stepper class, specifying
|
21 | // the number of steps of the motor and the pins it's
|
22 | // attached to
|
23 | Stepper stepper(STEPSA, 7, 8, 9, 10); |
24 | |
25 | |
26 | void setup() |
27 | {
|
28 | pinMode(3, OUTPUT); |
29 | pinMode(5, OUTPUT); |
30 | pinMode(7,OUTPUT); |
31 | pinMode(8,OUTPUT); |
32 | pinMode(9,OUTPUT); |
33 | pinMode(10,OUTPUT); |
34 | // set the speed of the motor to 30 RPMs
|
35 | stepper.setSpeed(100); |
36 | }
|
37 | |
38 | void loop() |
39 | {
|
40 | digitalWrite(3, HIGH); |
41 | |
42 | digitalWrite(5, HIGH); |
43 | |
44 | digitalWrite(7,LOW); |
45 | digitalWrite(8, HIGH); |
46 | digitalWrite(9, LOW); |
47 | digitalWrite(10,HIGH); |
48 | |
49 | delay(100); |
50 | |
51 | digitalWrite(3, HIGH); |
52 | |
53 | digitalWrite(5, HIGH); |
54 | |
55 | digitalWrite(7,HIGH); |
56 | digitalWrite(8, LOW); |
57 | digitalWrite(9, LOW); |
58 | digitalWrite(10,HIGH); |
59 | delay(100); |
60 | |
61 | digitalWrite(3, HIGH); |
62 | |
63 | digitalWrite(5, HIGH); |
64 | |
65 | digitalWrite(7,HIGH); |
66 | digitalWrite(8, LOW); |
67 | digitalWrite(9, HIGH); |
68 | digitalWrite(10,LOW); |
69 | |
70 | delay(100); |
71 | |
72 | digitalWrite(3, HIGH); |
73 | digitalWrite(5, HIGH); |
74 | digitalWrite(7,LOW); |
75 | digitalWrite(8, HIGH); |
76 | digitalWrite(9, HIGH); |
77 | digitalWrite(10,LOW); |
78 | delay(100); |
79 | |
80 | }
|
MFG Lazarov
Milan Select schrieb: > Danke erstmal für die schnelle Antworten! > Und zwar habe ich mittlerweile den Motor dazugebracht das er in einer > Richtung Dreht aber langsam,die frage ich wie kann ich die PWM > Einstellen,damit er bisschen schneller Dreht Hä? Welche PWM? Darf ich mal vorschlagen, dass du aus deinem Programm alles rauswirfst, was erst mal nichts mit deinem Motor zu tun hat? Das 'stepper' Objekt. Brauchst du das irgendwo in deinem Code? Nein? - Dann weg damit die pwm, pwm2 Variablen. Brauchst du dir irgendwo? Nein? - dann weg damit. Du hast 6 Pins als Ausgänge geschaltet und legst da auch fleissig Pegel drauf. Dein Motortreiber hat aber nur 4 Anschlüsse. Also sind da 2 zuviel - weg damit. Was bleibt dann noch übrig?
1 | void loop() |
2 | {
|
3 | 4 Portpins nach Muster auf Low/High schalten um 1 Schritt zu machen |
4 | delay( 100 ); |
5 | |
6 | 4 Portpins nach anderem Muster auf Low/High schalten um den |
7 | nächsten Schritt zu machen. |
8 | delay( 100 ); |
9 | |
10 | 4 Portpins nach anderem Muster auf Low/High schalten um den |
11 | 3. Schritt zu machen. |
12 | delay( 100 ); |
13 | |
14 | 4 Portpins nach anderem Muster auf Low/High schalten um den |
15 | 4. und damit letzten Schritt einer Sequenz zu machen. |
16 | delay( 100 ); |
17 | }
|
das ist dann doch im Prinzip dein Code. Was wirst du also verändern müssen, damit der Motor schneller dreht? Jedesmal, wenn du ein neues Muster ausgibst (und das Muster das korrekte ist), macht der Motor einen Schritt. Je schneller er die Schritte macht, je weniger Zeit also von einem Schritt zum nächsten vergeht, desto schneller dreht er daher auch. -> deine Schlussfolgerung für eine mögliche Programmveränderung, damit er schneller dreht? Mir ist schon klar, dass du im Endeffekt dieses Stepper Objekt benutzen wirst. Allerdings schadet es auch nicht, wenn man mal direkt ein bischen mit den Pins experimentiert und so einen Motor mal 'händisch' zum laufen kriegt. Denn dann versteht man plötzlich auch, was da eigentlich vor sich geht. Das ist alles keine Raketentechnik (zumindest jetzt noch nicht) und ein wenig Übung im Programmieren und logischem Denken dürfte auch nicht schaden.
Hallo Karl ich habe die Treiber-Platine https://www.ssl-id.de/b-redemann.de/catalog/product_info.php?products_id=161 und da habe ich 6 Pins die ich ansteuern muss. 4 Pins für die 2 Spulen und 2 Pins für PWM . Die PWM Pins müssen auf HIGH (1) sein damit sich der Motor Überhaupt erst dreht. Über die PWM Pins habe ich auch vor die Geschwindigkeit zu konfigurieren. PS: Ich habe gerade erst angefangen mich mit dem Arduino zu beschäftigen. Es ist ja bekanntlich noch kein Meister von Himmel gefallen ;D
weller schrieb: > Über die PWM Pins habe ich auch vor die > Geschwindigkeit zu konfigurieren. Das magst du vielleicht vorhaben, interessiert aber deinen Schrittmotor nicht. Wie funktioniert denn so ein Schrittmotor? Da ist ein Magnet drinnen und rundherum sind Spulen. Je nachdem auf welche der Spulen du 'Saft' gibst, dreht sich der Magnet genau in diese Richtung. Gibst du also reihum auf eine Spule nach der anderen 'Saft', dann folgt der Magnet schön brav dieser Sequenz. Mit seinem Norpol dreht er sich immer zu der Spule, die ihm gerade einen magnetischen Südpol zuwendet. Und wenn er sich dann dort hin gedreht hat, dann heißt es ätschi-bätschi. Die Spule wird ausgeschaltet und die reihum nächste Spule wird eingeschaltet und präsentiert ihm ihren Südpol. Also bleibt dem Magneten nichts anderes übrig, als sich in diese Richtung zu drehen, weil jetzt sein Norpol von eben genau diesem Südpol angezogen wird. Hat er sich soweit gedreht - ätschi-bätschi - Spule aus und die nächste Spule bestromt. Wie schnell ein Schrittmotor sich dreht, und in welche Richtung, hängt einzig und alleine von der Schrittsequenz ab und von nichts anderem. Mit der PWM kannst du Einstellen, wieviel Strom durch die Spule gejagt wird und so das Magnetfeld der Spule stärker und schwächer machen. Dadurch wird der sich drehende Magnet stärker oder schwächer angezogen. Aber drehen wird er sich immer nur soweit, bis sein Nordpol auf den Südpol der jeweils bestromten Spule zeigt. Das war die Einfachvariante. Natürlich macht es Sinn den Strom durch die Spulen zu variieren. Denn dadurch kann man sowas wie einen virtuellen Südpol aufbauen, der dann eien feiner Auflösung erlaubt, weil man mehr Kontrolle über das Magentfeld hat, indem man mehrere Spulen zusammen arbeiten lässt. Aber soweit bist du noch lange nicht und wenn es soweit ist, dann überlässt man das einem speziellen IC. Denn der kann das besser.
Hi
>Über die PWM Pins habe ich auch vor die Geschwindigkeit zu konfigurieren.
Was willst du da mit PWM ? Die Geschwindigkeit des Motors wird mit dem
'Takt' in dem die Bitmuster an den Treiber geschoben werden bestimmt.
Mit einer PWM an den Enable-Eingängen kannst du höchstens die Leistung
des Motors verringern.
MfG Spess
Wie viele Accounts verwendest du eigentlich ? => mein Tip delay(50)
Hi, wenn du dir die Beschreibung der Stepper libary mal durchlesen würdest. Hatte als Abschlussprüfung die Aufgabe nen Lernpaket mit Stepper und mC zu erstellen für nachfolgende Azubis. Am Anfang habe ich auch den Blödsinn mit den Bitmustern gemacht. Die einzeln zu erzeugen ist aber mit der libary sinnfrei. Bitte schaiu dir die Doku erst an oder lade mal das Beispielsketch in den Arduino. Die PWM brauchst du bei dem L239D echt nicht, die nutzt man bei den Motortreibern, die nen PWM Eingang haben für die Drehzahl. Der L239D hat doch bloß nen enable und nen voll-/halb schritt. Ich habe das damals mit Bitschieben und maskieren gelöst. MfG EGS
EGS schrieb: > Hi, > > wenn du dir die Beschreibung der Stepper libary mal durchlesen würdest. > > Hatte als Abschlussprüfung die Aufgabe nen Lernpaket mit Stepper und mC > zu erstellen für nachfolgende Azubis. Am Anfang habe ich auch den > Blödsinn mit den Bitmustern gemacht. Die einzeln zu erzeugen ist aber > mit der libary sinnfrei. :-) Aber es bildet! Plötzlich sieht man die geheimnisvollen Schrittmotoren mit anderen Augen. Und kann sich dann auch so manches Verhalten besser erklären. Für Produktionseinsatz ist das natürlich kompletter Quatsch, das so zu machen. Kein Einwand meinerseits.
Hallo, Ich komme nicht einfach weiter wie sieht den der Code aus ? Hat jemand ein beispiel code oder kann mir jemand helfen? Danke im Vorraus MFG LAZAROV
Milan Select schrieb: > Hallo, > Ich komme nicht einfach weiter Womit kommst du nicht weiter? > wie sieht den der Code aus ? Hat jemand > ein beispiel code oder kann mir jemand helfen? Du wirst dir doch eine Funktion schreiben können, die dir anhand einer Schrittnummer (0 bis 3) das entsprechende Bitmuster an den Port ausgibt. Beim Rechtsdrehen erhöhst du die Schrittnummer (modulo 4) und beim Linksdrehen erniedrigst du sie (modulo 4). Und die Funktion gibt dann das Bitmuster an die Portpins aus. Das ganze ist erst mal so einfach wie ein Lauflicht mit 4 Leds und 4 Schritten.
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.