Stepper Motor dreht nicht sondern vibriert nur

OP (Firma: 200) #5066608
Lesenswert?

Hallo,
ich baue gerade einen Balancier Roboter bauen allerdings wollen sich die 
Stepper Motoren nicht drehen.
Als Motortreiber benütze ich den DRV8825 Treiber und als Motor die Nema 
14,35 BYGH.
Der Treiber wird mit einem 3S Lipo betrieben der Arduino nano mit 5v von 
einem Spannungswandler. Das Poti für die Strombegrenzung habe ich noch 
nicht verstellt.

Zum Problem, wenn ich den "Roboter" einschalte aber den Arduino nicht 
dann fängt der Motor einfach nur an zu ruckeln bzw. lässt sich nicht 
mehr bewegen.
Wenn jetzt der Arduino angemacht wird dann passiert genau das gleiche.

Ich benutzte diesen Code:

#include <Wire.h>

byte directionPin = 9;
byte stepPin = 2 ;
int numberOfSteps = 5000;
byte ledPin = 13;
int pulseWidthMicros = 20;  // microseconds
int millisbetweenSteps = 250; // milliseconds - or try 1000 for slower 
steps


void setup() {

  Serial.begin(9600);
  Serial.println("Starting StepperTest");
  digitalWrite(ledPin, LOW);

  delay(2000);

  pinMode(directionPin, OUTPUT);
  pinMode(stepPin, OUTPUT);
  pinMode(ledPin, OUTPUT);


  digitalWrite(directionPin, HIGH);
  for(int n = 0; n < numberOfSteps; n++) {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(pulseWidthMicros); // this line is probably 
unnecessary
    digitalWrite(stepPin, LOW);

    delay(millisbetweenSteps);

    digitalWrite(ledPin, !digitalRead(ledPin));
    Serial.println(n);
  }

  delay(3000);


  digitalWrite(directionPin, LOW);
  for(int n = 0; n < numberOfSteps; n++) {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(pulseWidthMicros); // probably not needed
    digitalWrite(stepPin, LOW);

    delay(millisbetweenSteps);

    digitalWrite(ledPin, !digitalRead(ledPin));
  }
}

void loop() {
}
Gast #5066962
Lesenswert?

Verstehe ich dich richtig, daß der Motor sowohl mit laufendem Programm 
als auch ohne gleichermaßen "spinnt"?

Warum zeigst du uns dann das Programm? Sollte man nicht viel eher die 
Hardware untersuchen?

Zeige Schaltpläne, Fotos vom Aufbau, benenne die konkreten produkte 
(Motoren, Netzteile, Spannungswandler, Module, etc).

Es wäre auch interessant zu erfahren, wie die den Arduino aus geschaltet 
hast, denn soweit ich weiß hat das Ding keinen Schalter. Das sollte sich 
aus dem Schaltplan ergeben.

Was für Meß-Equipment hast du zur Verfüfügung?
Moderator (Firma: Titel) Persönliche Seite #5066992
Lesenswert?

Luick K. schrieb:
> Zum Problem, wenn ich den "Roboter" einschalte aber den Arduino nicht
> dann fängt der Motor einfach nur an zu ruckeln bzw. lässt sich nicht
> mehr bewegen.
Die "Massen" der beiden Schaltungen hast du aber schon verbunden?
Hast du die Motortreiberplatine mal einfach mit ein paar Tastern 
ausprobiert, ob die tut, was sie soll?
Gast #5067595
Lesenswert?

Teo D. schrieb:
> Das kann, je nach Copper-Frequenz/Motor solch Geräusche verursachen.
> Drehen tut er sich nicht, weil du wahrscheinlich einen Wicklungsstrang
> falsch herum angeschlossen hast.

Solange der Schrittmotor für Vollschrittbetrieb angesteuert wird, ist 
die Polung der Wicklung egal. Das ändert nur die Drehrichtung-

Anders sieht das aus, wenn die Wicklungen über Kreuz angeschlossen sind.
Gast #5067782
Lesenswert?

Luick K. schrieb:
> Hab hier gelesen das meiner ein Bipolarer sein kann ...

Das solltest du erstmal feststellen, indem du den Widerstand zwischen 
den einzelnen Anschlüssen bestimmst.

> ... und das die zwei bei mir unbenutzten Pins am Motor an Ground
> gekoppelt werden muss, ist das möglich?

Demnach hat dein Motor 6 Anschlussleitungen? Wenn das die 
Mittelabzapfungen der beiden Wicklungen sind, kommt da gar nichts ran - 
gut isolieren und fertig.
#5067843
Lesenswert?

Hi L.,
ich würde Testweise mal 4 LEDs (mit entsprechendem Vorwiderstand) an die 
Motorausgänge hängen und sehen, was da an "Signalen" ankommt. Die 
Step-Geschwindigkeit im Programm dann möglichst "sichtbar" langsam 
einstellen.
Hast du alle MODE0-2 auf GND liegen (für Full-Step)?
ISENA und B hast du auf GND gelegt?

Zum Motor: Der ist Bipolar, hat 4 Anschlüsse. Passt also zum Treiber.
Ich vermute mal (nach einem Bild), dass die Farben Rot/Schwarz und 
Grün/Blau jeweils ein Wicklungspaar bilden.
Also: Rot an AOUT1 und Schwarz an AOUT2, BOUT1 an Grün und BOUT2 an 
Blau!

Ob der Motor OK ist würde ich so testen: Schwarz an GND, Rot über 
Widerstand und Taster an +3,6 Volt, Grün an GND, Blau über Widerstand 
und Taster an +3,6 Volt. Dann sollte sich der Motor, bei abwechselndem 
kurzen Drücken der Taster, zumindest (ein Schritt pro Tastendruck) "hin 
und her" oder "vorwärts" bewegen. Dann isser wohl in Ordnung...

Gruss Armin
Gast #5067865
Lesenswert?

Luick K. schrieb:
> Hat keiner mehr eine Idee ?:

Tu bitte das, worum du schon gebeten wurdest, nämlich einen
Schaltplan hier zu posten. Keiner weiß was du auf diesem Gebiet
kannst oder nicht kannst (vermutlich Schüler). Dein Video ist
Murks, weil man deinen Drahtverhau gar nicht nachvollziehen kann.
Da können auch schnell Fehler passieren, die erfahrenen Usern
nicht passieren. Ansonsten muss du allein klar kommen.

Daher steht das so auch in der Netiquette, denn Ferndiagnosen
ohne Dokumentation sind schwer, wenn nicht sogar unmöglich.
#5067902
Lesenswert?

Leg mal M0 und M2 auf GND, "Frei in der Luft" ist nicht so gut!

Hast du die Kabelfarben des Motors mal mit nem Multimeter durchgemessen, 
also stimmt die Verkabelung so?
Wenn du nach deinem Schaltplan am Motor von Rot zu Blau und von Grün zu 
Schwarz einen Widerstand messen kannst (natürlich ohne angehängten 
Treiber), dann sollte die Verkabelung stimmen. Zeigt dein Messgerät 
dabei jeweils unendlich bzw 1 an, dann ist der Motor falsch 
angeklemmt...

Gruss Armin
#5067917
Lesenswert?

Armin R. schrieb:
> Leg mal M0 und M2 auf GND, "Frei in der Luft" ist nicht so gut!

Sind sie nicht!
https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&sqi=2&ved=0ahUKEwi05L_d-vXUAhWG8RQKHYaqDXYQFghIMAI&url=http%3A%2F%2Fwww.ti.com%2Flit%2Fds%2Fsymlink%2Fdrv8825.pdf&usg=AFQjCNEWs1BOHEV-L4qQHetcRCACZZbjfA&cad=rja

Ich würde zuerst mal den Arduino außen vor lassen und den Treiber per 
Hand bedienen.
#5067922
Lesenswert?

Teo D. schrieb:
> Armin R. schrieb:
>> Leg mal M0 und M2 auf GND, "Frei in der Luft" ist nicht so gut!
>
> Sind sie nicht!
> 
https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&sqi=2&ved=0ahUKEwi05L_d-vXUAhWG8RQKHYaqDXYQFghIMAI&url=http%3A%2F%2Fwww.ti.com%2Flit%2Fds%2Fsymlink%2Fdrv8825.pdf&usg=AFQjCNEWs1BOHEV-L4qQHetcRCACZZbjfA&cad=rja
Stimmt! Habs jetzt auch gesehen: Internal Pulldown...

Teo D. schrieb:
> Ich würde zuerst mal den Arduino außen vor lassen und den Treiber per
> Hand bedienen.
Das geht natürlich auch. Würde trotzdem erstmal die Wicklungspaare des 
Motor ausmachen, um ihn korrekt anzuschliessen (Wicklungen messen!)...
STEP des Treibers über Taster an 2.2 - 5.25 Volt.
Pro Tastendruck sollte der Motor schrittweise Drehen!
Gast #5067942
Lesenswert?

tommy schrieb:
> warum machst du alles in setup()
> und nichts in loop() ?

Kann man doch machen - nach einem µC-Reset kriegt der Treiber eben 
Ansteuerpulse für 21 Minuten ganz langsames Steppen in die eine Richtung 
und weitere 21 Minuten in die andere Richtung. Danach steht er dann.
Gast #5068156
Lesenswert?

Na, hoffentlich hat der TO den Motor richtig angeschlossen
(Polarität beachtet). Man kann den Treiber auch ohne Arduino
betreiben. Dann müsste der Motor wenigstens still stehen.
Die Drahtfarben vom Motor haben so keine Aussagekraft.

L. schrieb:
> Aber ich bin mir recht sicher alles stimmt!

Wenn du den Motor nicht mit in den Schaltplan einbindest, dann
kann das keiner nachvollziehen. Datenblatt des Motors wäre auch
nötig.
OP (Firma: 200) #5069045
Lesenswert?

Ok, ich hab jetzt die Verpolung vom Motor geändert zu dem was  @Armin R.
mir gesagt hat. Das hat einiges geändert oder auch nicht :D .

Der Motor piept jetzt nicht mehr. Wenn ich jetzt alles außer den Arduino 
anmache dann lässt sich die Welle des Motors nicht mehr bewegen aber 
wenn ich den Arduino anmachen dann lässt sich die Welle bewegen aber mit 
einem bestimmten Widerstand und wenn ich millisbetweenSteps ändere 
ändert sich auch der Widerstand beim drehen.

Aber von alleine dreht sich der Motor nicht ): .
#5069063
Lesenswert?

Schau mal ins Datenblatt des Motors. Die Verkabelung in deinem 
Schaltplan scheinte zu stimmen!
Koppel den Arduino mal vom Treiber ab.
Dann M1, RESET und SLEEP an 5Volt, STEP über Taster auch an 5Volt. 
Versorgungsspannung für Treiber und Motor natürlich auch anklemmen.
Motor erstmal so angeklemmt lassen und den Taster mehrere Male drücken!
Dreht sich da nix, dann den Motor wieder wie im Datenblatt bzw deinem 
Schaltplan anklemmen und den Taster mehrfach drücken. Dann sollte sich 
da was tun.
Des weiteren das Poti am Treiber einfach mal auf "Mitte" stellen.

Kannst du die Wicklungen des Motors messen, also Multimeter zur Hand?

Gruss Armin
OP (Firma: 200) #5071072
Lesenswert?

Ok,
es tut mir leit das ich jetzt länger nicht antworten konnte.
Ein enger Verwandter ist gestern gestorben und ich hatte einiges anderes 
zutun...

Ich hab jetzt den Motor so verdrahtet wie @ironlayer mir geraten hat 
anders geht es auch nicht mehr -.- wenn ich es so wie in meinem 
Schaltplan dann passiert nichts mehr!

Und hab es wie angeraten manuell versucht und den STEP Pin immer wieder 
an 5V gedrückt. Dabei hat sich der Motor bewegt aber nur vor und zurück 
obwohl der STEP Pin auf ground liegt.


Dann hab ich es mit dem Arduino versucht und mit diesem sample-code:
http://forum.arduino.cc/index.php?topic=277692.0
Drehen tut sich der Motor aber immer noch nicht. Er piept nur in 
unterschiedlichen tönen.

MFG Luick und sry für die langen Wartezeiten.
Gast #5071108
Lesenswert?

> Und hab es wie angeraten manuell versucht und den STEP Pin immer wieder
> an 5V gedrückt. Dabei hat sich der Motor bewegt aber nur vor und zurück
> obwohl der STEP Pin auf ground liegt.

Ja was jetzt, liegt er auf GND oder hast du ihn an 5V gedrückt? Beides 
gleichzeig kann kaum sein.

Um manuell anständige Schritt-Impulse erzeugen zu können brauchst du 
einen prellfreien Taster. bau Dir das so zusammen: 
http://www.novatime-systeme.de/images/TOGGLE4.GIF

Lege alle Mode Leitungen auf Low (also keine Mikrocschritte). Mit einem 
Multimeter sollst du dann die Spannungen messen, die aus dem 
Motortreiber heraus kommen. Und zwar mehrmals, nach jeweils einem 
prellfreien Schritt.

Fülle folgende Liste aus:

Nach dem Einschalten:
AOUT1: xx Volt
AOUT2: xx Volt
BOUT1: xx Volt
BOUT2: xx Volt
Batteriespannung: xx Volt

Nach dem 1. Schritt:
AOUT1: xx Volt
AOUT2: xx Volt
BOUT1: xx Volt
BOUT2: xx Volt
Batteriespannung: xx Volt

Nach dem 2. Schritt:
AOUT1: xx Volt
AOUT2: xx Volt
BOUT1: xx Volt
BOUT2: xx Volt
Batteriespannung: xx Volt

Nach dem 3. Schritt:
AOUT1: xx Volt
AOUT2: xx Volt
BOUT1: xx Volt
BOUT2: xx Volt
Batteriespannung: xx Volt

Nach dem 4. Schritt:
AOUT1: xx Volt
AOUT2: xx Volt
BOUT1: xx Volt
BOUT2: xx Volt
Batteriespannung: xx Volt

Nach dem 5. Schritt:
AOUT1: xx Volt
AOUT2: xx Volt
BOUT1: xx Volt
BOUT2: xx Volt
Batteriespannung: xx Volt

Nach dem 6. Schritt:
AOUT1: xx Volt
AOUT2: xx Volt
BOUT1: xx Volt
BOUT2: xx Volt
Batteriespannung: xx Volt

Hast du einen Plan, welche Messwerte zu erwarten sind?
#5071198
Lesenswert?

Luick K. schrieb:
> Ich hab jetzt den Motor so verdrahtet wie @ironlayer mir geraten hat
> anders geht es auch nicht mehr -.- wenn ich es so wie in meinem
> Schaltplan dann passiert nichts mehr!
So, wie in deinem Schaltplan, stehts aber auch im Datenblatt. Sollte 
also eigentlich damit funktionieren.

Luick K. schrieb:
> Und hab es wie angeraten manuell versucht und den STEP Pin immer wieder
> an 5V gedrückt. Dabei hat sich der Motor bewegt aber nur vor und zurück
> obwohl der STEP Pin auf ground liegt.
STEP nicht auf GND legen. Nur über den Taster, oder die Toggle-Schaltung 
an 5V. Der Pin ist 'internal pulldown'. Heisst, der Controller zieht den 
intern eh auf GND.
Sollte aber auch bei prellendem Taster zumindest ab und an auch 
"vorwärts" drehen.
Aber bau mal die Schaltung von 'Stefan Us' auf und probiers damit. Oder 
eine Kippstufe, geht auch mit zwei WaldUndWiesen-Transistoren, 
Widerständen und Kondensatoren. Schau mal im Netz nach bistabile-, 
monostabile-, oder astabile Kippstufe...
Kannst auch den Arduino einen Ausgang im Sekundentakt EIN- und 
AUS-Schalten lassen, da ne Led mit seriellem Widerstand gegen GND, den 
STEP vom Treiber direkt mit an den Portpin dran.

Stefan U. schrieb:
> Lege alle Mode Leitungen auf Low (also keine Mikrocschritte). Mit einem
> Multimeter sollst du dann die Spannungen messen, die aus dem
> Motortreiber heraus kommen. Und zwar mehrmals, nach jeweils einem
> prellfreien Schritt.
>
> Fülle folgende Liste aus:
>
> Nach dem Einschalten:
> AOUT1: xx Volt
> AOUT2: xx Volt
> BOUT1: xx Volt
> BOUT2: xx Volt
> Batteriespannung: xx Volt
>
> Nach dem 1. Schritt:
> AOUT1: xx Volt
> AOUT2: xx Volt
> BOUT1: xx Volt
> BOUT2: xx Volt
> Batteriespannung: xx Volt
>
> Nach dem 2. Schritt:
> AOUT1: xx Volt
> AOUT2: xx Volt
> BOUT1: xx Volt
> BOUT2: xx Volt
> Batteriespannung: xx Volt
>
> Nach dem 3. Schritt:
> AOUT1: xx Volt
> AOUT2: xx Volt
> BOUT1: xx Volt
> BOUT2: xx Volt
> Batteriespannung: xx Volt
>
> Nach dem 4. Schritt:
> AOUT1: xx Volt
> AOUT2: xx Volt
> BOUT1: xx Volt
> BOUT2: xx Volt
> Batteriespannung: xx Volt
>

> Nach dem 5. Schritt:
> AOUT1: xx Volt
> AOUT2: xx Volt
> BOUT1: xx Volt
> BOUT2: xx Volt
> Batteriespannung: xx Volt
>
> Nach dem 6. Schritt:
> AOUT1: xx Volt
> AOUT2: xx Volt
> BOUT1: xx Volt
> BOUT2: xx Volt
> Batteriespannung: xx Volt
Die MODE-Leitungen sind 'internal pulldown', die brauchst du nicht 
anschliessen.
Da der Treiber für bipolare Motoren ist, solltest du jeweils von AOUT1 
zu AOUT2 messen. Also rote Messleitung an AOUT1, schwarze Messleitung an 
AOUT2. Beim 1. Schritt sollte dann die Motorspannung positiv anliegen, 
beim 3. Schritt sollte die Anzeige auf "-" gehen. Das gleiche mit 
BOUT1+2 und Schritt 3+4!
OP (Firma: 200) #5072348
Lesenswert?

Also,
der Motor dreht sich jetzt aber nur mit Starthilfe und nur unter 
Befolgung eines bestimmten Retuals -.-.

Wenn ich als erstes dem DRV Strom gebe und dann den Arduino anschließe 
dann passiert nichts, wenn ich dann aber wieder nur den Arduino abstecke 
und ihn dann wieder anstecke dann dreht sich der Motor und RX und TX vom 
Arduino leuchten auf aber auch nicht immer...
#5072636
Lesenswert?

So L.,
jetzt mach einfach mal folgendes UND NICHTS ANDERES (alles andere weg!):
1. Stromversorgung von Treiber und Arduino korrekt anklemmen (dein 
Schaltplan).
2. Am Treiber RESET und SLEEP an 5 Volt.
3. STEP vom Treiber an Pin 9 des Arduino.
4. LED mit 220 Ohm in Reihe von Pin 9 (Arduino) nach GND.
5. Vom Motor SCHWARZ an AOUT1 vom Treiber.
6. Vom Motor GRÜN an AOUT2 vom Treiber.
7. Vom Motor ROT an BOUT1 vom Treiber.
8. Vom Motor BLAU an BOUT2 vom Treiber.
9. Folgendes Programm in den Arduino laden und starten:
1
 #include <Wire.h>
2
 byte stepping = 9;
3
 pinMode(stepping, OUTPUT);
4
 while(1)
5
 {
6
   digitalWrite(stepping, HIGH);
7
   delay(1000);
8
   digitalWrite(stepping, LOW);
9
   delay(1000);
10
 }
Jetzt sollte die LED im Sekundentakt an und aus gehen, genauso der 
Treiber einen Schritt weiter. Folglich sollte der Motor alle 2 Sekunden 
einen Schritt weiter gehen.

Gruss Ironlayer
Gast #5072651
Lesenswert?

Lass den Arduino erst einmal weg und hänge einen NE555 mit langsamen 
Takt an den CLK-Pin des Treibers. Erst wenn der Treiber den Motor dreht, 
darfst Du dich um den Arduino kümmern. Solange nichts dreht und zu 
zappelt, hast Du entweder einen defekten Treiber oder der Motor ist 
falsch angeschlossen.
#5072802
Lesenswert?

Brummbär schrieb:
> Lass den Arduino erst einmal weg und hänge einen NE555 mit langsamen
> Takt an den CLK-Pin des Treibers.
Ist die Frage, ob er einen NE555 sein Eigen nennt und weiss, wie er ihn 
beschaltet!
Mit dem Arduino kann man ansich ja nix falsch machen, wenn die LED am 
Portpin 9 vor sich hin blinkt. Dann sollte das mit dem Treiber 
eigentlich auch klappen...

Sollte die LED nicht blinken (vorausgesetzt, sie ist richtig herum 
angeschlossen und funktioniert), ist wohl der Portpin oder Controller 
hinüber.

Ansonsten:
Sollte der Motor immer noch nicht drehen, miss mal die Spannungen am 
Treiber-Ausgang mit dem Multimeter bei laufendem Programm bzw Treiber.
Wie das geht hatte ich in meiner Antwort vom 09.07.2017 20:27 
beschrieben!
Sollte da auf einer oder mehreren Stufen, nach einem kompletten 
Durchlauf, gar nichts zu messen sein, ist vermutlich der Treiber hin.

Einen ganzen Durchlauf kannst du übrigens mit dem HOME-Pin des Treibers 
erkennen. Der geht auf LOW, wenn er wieder bei "Schritt 1" ist. Kannst 
also da ne LED mit 220 Ohm von HOME nach 5 Volt klemmen (richtig 
herum!). Die sollte dann immer bei "Schritt 1" an sein.
Gleiches Verhalten gilt für den FAULT-Pin. Allerdings zeigt der einen 
Fehler, anstatt "Schritt 1" an. Sollte dieser Pin auf LOW liegen, dann 
stimmt was nicht.

Gruss Ironlayer
#5072813
Lesenswert?

https://www.my-home-fab.de/de/dokumentationen/technische-beschreibungen/drv8825-schrittmotor-strom-einstellen

Die Website solltest du dir, bezüglich des Potis auf dem Treiberboard, 
mal ansehen. Dort wird erklärt, wie du den Maximalstrom für die 
Wicklungen einstellst. Laut Datenblatt kann eine Motor-Wicklung 0.75A 
ab, sollten also am Poti (ohne angeklemmten Motor) ca 0.375V eingestellt 
werden...
Gast #5073060
Lesenswert?

Luick K. schrieb:
> Bin sicher hab, aus versehen 40 Stück von den DRV s bestellt
> und kann die jetzt dauernd wechseln.
Ein bisschen viel dafür, dass Du scheinbar keinerlei Vorkenntnisse zu 
besitzen scheinst...
Soviel werde ich meinem ganzen Leben nicht verbraten ;)

Luick K. schrieb:
> Als Motortreiber benütze ich den DRV8825 Treiber und als Motor die Nema
> 14,35 BYGH.
> Der Treiber wird mit einem 3S Lipo betrieben der Arduino nano mit 5v von
> einem Spannungswandler. Das Poti für die Strombegrenzung habe ich noch
> nicht verstellt.

Das ist nicht fein.
Nema 14 -> 35mm, welcher Strom?
Aus der Größe kann man das ungefähre Haltemoment abschätzen, mehr aber 
nicht.

Hinweise/Berechnungen zur Stromeinstellung fiden sich im WIKI von 
Reprap.org.

Bei den fertigen Treiberbausteinen im Stepstick/Pololu Layout sind 
überwiegend billigste Trimmer verwendet worden, ich habe insgesamt drei 
Bausteine, bei denen sich der Strom nicht einstellen lässt.
Als erstes also einen Treiber suchen, bei dem sich der Strom vernüftig 
einstellen lässt und dann vom Minimalwert solange erhöhen, bis der Motor 
ruckelt.

Apropos Motor, manchmal passen Kabelfarben und Wicklungen nicht mit 
Doku/Aufdruck überein. Kabelpaare kann man einfach selektieren, indem 
man im unbeschalteten Zustand die Enden paarweise verdrillt/kontaktiert. 
Bei passenden Paaren lässt sich der Motor von Hand nur mit erhöhtem 
Widerstand drehen. Ein Ohmmeter sollte ungefähr identische Werte zeigen, 
bei größeren Abweichungen könnte ein Kabelbruch vorliegen.

Wenn der Motor i.O. ist und der Strom eingestellt, sollte der Motor im 
"Vollschrittmodus" bei jedem Stepimpuls einen Schritt in eine Richtung 
ruckeln, Impulse lassen sich ganz simpel mit einem Draht-"Taster" 
erzeugen.
Mit "Dir" lässt sich die Richtung umkehren.

Wenn das soweit alles funzt und Du irgendwo noch ein Poti rumliegen hast 
kannst Du ein kleines Testprogramm auf Deinen Nano schieben und die 
Drehmöglichkeiten in diversen Betriebsmodi bestaunen..

Schrittmotortester für Arduino Nano: 
http://forums.reprap.org/read.php?249,362690
OP (Firma: 200) #5073670
Lesenswert?

So hab jetzt alles EXAKT so gemacht wie @ironlayer !
Aber der Motor bewegt sich nicht ABER er ruckelt im Tackt :)
LED blink.

Dann hab ich es mit diesen Wirng vom Motor versucht:
B2 blau
B1 grün
A1 rot
A2 schwarz

Aber dann hat sich die Achse vom Motor nur vor und zurück bewegt.

MFG Luick

Hab den Code umgeschrieben:
 #include <Wire.h>

 int stepping = 5;

 void setup(){
  Serial.begin(9600);
  Serial.println("MOTOR - TEST");
  pinMode(stepping, OUTPUT);
 }
 void loop(){
  digitalWrite(stepping, HIGH);
  delay(1000);
  digitalWrite(stepping, LOW);
  delay(1000);
  Serial.println("STEP");
 }
Gast #5073737
Lesenswert?

Hi

>Aber dann hat sich die Achse vom Motor nur vor und zurück bewegt.

Entweder deine Lego, oder besser Duplo-Schaltung für kleinere Kinder

http://www.brokking.net/images/yabr/yabr-schematic_robot.pdf

ist falsch oder die 'Bausteine' sind falsch verdrahtet. Z.B. vielleicht 
Takt und Dir verwechselt?

Oder du hast mit deinen 40 Stück voll in die Sch... gegriffen. Ich tippe 
eher auf ersteres.

MfG Spess
Gast #5073758
Lesenswert?

Hi

>Der verarscht euch doch.

Jepp. Ein Testprogramm für DRV Treiber schreibe ich in 15min in 
Assembler zusammen (ohne Volage).

Wenn ich allerdings den 'Schaltplan' ansehe, hat der TO wirklich wenig 
Ahnung von Elektronik.

MfG Spess
#5073771
Lesenswert?

Luick K. schrieb:
> Dann hab ich es mit diesen Wirng vom Motor versucht:
> B2 blau
> B1 grün
> A1 rot
> A2 schwarz
Es macht wenig Sinn, den Motor "irgendwie" anzuklemmen!
Hast du kein Multimeter, um die Wicklungen zu messen?
Wenn nicht, nimm mal eine LED und 220 Ohm in Reihe an 5Volt. Die 
GND-Seite des LED-Widerstand-Gespann klemmst du am Motor so an:
Motor-SCHWARZ an LED-Gnd, Motor-GRÜN an GND... -> LED leuchtet/glimmt?
Motor-SCHWARZ an LED-Gnd, Motor-BLAU an GND... -> LED leuchtet/glimmt?
Motor-SCHWARZ an LED-Gnd, Motor-ROT an GND... -> LED leuchtet/glimmt?
Motor-ROT an LED-Gnd, Motor-BLAU an GND... -> LED leuchtet/glimmt?
Motor-ROT an LED-Gnd, Motor-GRÜN an GND... -> LED leuchtet/glimmt?
Motor-GRÜN an LED-Gnd, Motor-BLAU an GND... -> LED leuchtet/glimmt?

Die Kabelpaare, bei der die LED leuchtet oder glimmt, bilden eine 
Wicklung. Dieses paar gehört jeweils an AOUT und BOUT. Z.B. SCHWARZ und 
GRÜN lässt die LED leuchten, SCHWARZ an AOUT1 und GRÜN an AOUT2...

Sollte der Motor dann immer noch hin und her ruckeln, EIN 
Spulen-Kabelpaar vertauschen...
Gast #5073774
Lesenswert?

Hi

>Sollte der Motor dann immer noch hin und her ruckeln, EIN
>Spulen-Kabelpaar vertauschen...

Wozu? Wenn ein Kabelpaar vertauscht ist, dann dreht der Motor nur in die 
falsche Richtung. Aber er dreht sich.

MfG Spess
#5073803
Lesenswert?

spess53 schrieb:
>> Sollte der Motor dann immer noch hin und her ruckeln, EIN
>>>Spulen-Kabelpaar vertauschen...
>
> Wozu? Wenn ein Kabelpaar vertauscht ist, dann dreht der Motor nur in die
> falsche Richtung. Aber er dreht sich.
Kenne mich jetzt nicht so gut mit Bipolaren Motoren aus, hab nur 
Unipolare problemlos im Einsatz.
Aber (bildlich gesehen):
Spule1 'dreht links' herum (+ nach -) bei Schritt1.
Spule1 'dreht rechts' herum (- nach +) bei Schritt2.
Spule 2 'dreht links' herum (+ nach -) bei Schritt3.
Spule 2 'dreht rechts' herum (- nach +) bei Schritt4.
Sowas in der Art...
Oder sehe ich das falsch, dass die Polung der Spulen vom Treiber 
vertauscht wird? In welscher Reihenfolge bin ich mir nicht sicher.
Wenn aber, nach meinem Schema, eine Spule 'falschrum' angeschlossen ist, 
stimmt die Schrittfolge nicht mehr...

Mfg Armin
#5073837
Lesenswert?

Luick K. schrieb:
> Hab den Code umgeschrieben:
>  #include <Wire.h>
>  int stepping = 5;
>  void setup(){
>   Serial.begin(9600);
>   Serial.println("MOTOR - TEST");
>   pinMode(stepping, OUTPUT);
>  }
>  void loop(){
>   digitalWrite(stepping, HIGH);
>   delay(1000);
>   digitalWrite(stepping, LOW);
>   delay(1000);
>   Serial.println("STEP");
> }
Warum umgeschrieben?
Musst dann auch PortPin 5 anklemmen!
Und schreib mal bitte, hier im Forum, vor den Programmcode (das Zeichen: 
EckigeKlammerAuf) c (EckigeKlammerZu) und nach dem Code 
(EckigeKlammerAuf) /c (EckigeKlammerZu), das macht den Code besser 
lesbar!

Wie oft blinkt die LED bzw steht STEP auf dem Terminal?
Ist loop() automatisch eine Schleife beim Arduino? (Programmiere die 
Atmels nackt über ISP in C mit AtmelStudio)
Gast #5074001
Lesenswert?

Luik, du laberst hier ohne Ende herum, hast aber immer noch nicht 
nachgemessen, wie die Ausgangsspannungen deines Treiber bei den 
einzelnen Phasen sind.

Offensichtlich hast du die Anschlüsse des Motor auch noch nciht 
ausgemessen.

Du hast keine einzige meiner Rückfragen beantwortet, trotz wiederholter 
Nachfrage. Das Gleiche Spiel hast du mit anderen auch gemacht.

Wie zur Hölle sollen wir Dir helfen? Du willst uns doch verarschen, 
oder?
Gast #5074175
Lesenswert?

Hi

>Aber (bildlich gesehen):
>Spule1 'dreht links' herum (+ nach -) bei Schritt1.
>Spule1 'dreht rechts' herum (- nach +) bei Schritt2.
>Spule 2 'dreht links' herum (+ nach -) bei Schritt3.
>Spule 2 'dreht rechts' herum (- nach +) bei Schritt4.
>Sowas in der Art...

Ich verstehe ehrlich gesagt deine Darstellung nicht.

Bei bipolaren Motoren wir bei Vollschritt bei jedem Schritt bei einer 
der Spulen die Polarität vertauscht:

Spule      1       2

Schritt1  + -     + -   vorwärts
Schritt2  - +     + -
Schritt3  - +     - +
Schritt4  + -     - +
Schritt5  + -     + -

Schritt0  + -     + -
Schritt1  + -     - +   rückwärts
Schritt2  - +     - +
Schritt3  - +     + -
Schritt4  + -     + -
Schritt5  + -     - +

Wenn du bei rückwärts die Polarität der Spule2 vertauschst bekommst du 
das Muster für vorwärts. Daher ist es egal, wie du die Spulen mit dem 
Treiber verbindest (vorausgesetzt die Anschlüsse einer Spule werden mit 
AOUT1/2 bzw. BOUT1/2 verbunden).

MfG Spess
#5074205
Lesenswert?

spess53 schrieb:
> Bei bipolaren Motoren wir bei Vollschritt bei jedem Schritt bei einer
> der Spulen die Polarität vertauscht:
>
> Spule      1       2
>
> Schritt1  + -     + -   vorwärts
> Schritt2  - +     + -
> Schritt3  - +     - +
> Schritt4  + -     - +
> Schritt5  + -     + -
>
> Schritt0  + -     + -
> Schritt1  + -     - +   rückwärts
> Schritt2  - +     - +
> Schritt3  - +     + -
> Schritt4  + -     + -
> Schritt5  + -     - +
>
> Wenn du bei rückwärts die Polarität der Spule2 vertauschst bekommst du
> das Muster für vorwärts.
Stimmt! Da hast du Recht... Deine Darstellung lässt es direkt erkennen!
So in etwa meinte ich es eigentlich auch, dass die Polarität gedreht 
wird. Nur in welcher Reihenfolge, welche Stufen, war mir nicht klar. Wie 
gesagt hatte ich bisher noch nicht das Vergnügen mit Biploaren ;-)



bianchifan schrieb:
> Apropos Motor, manchmal passen Kabelfarben und Wicklungen nicht mit
> Doku/Aufdruck überein. Kabelpaare kann man einfach selektieren, indem
> man im unbeschalteten Zustand die Enden paarweise verdrillt/kontaktiert.
> Bei passenden Paaren lässt sich der Motor von Hand nur mit erhöhtem
> Widerstand drehen.
Das ist auch noch eine Möglichkeit (ohne Messgerät) die Spulenpaare zu 
finden.

@L.
Häng eine Kabelfarbe des Motors an GND und eine andere an 3,6Volt oder 
über etwa 10 Ohm (R=U/I -> R=11V-3,6V/0,75A -> R=7,4V/0,75A) an 11Volt, 
so wie ichs zuvor mit der glimmenden LED beschrieben hab!
"Ruckt" der Motor beim anschliessen in eine Position und/oder lässt er 
sich dann nur mit "viel Kraft" dort wegdrehen (steht die Achse fest), 
dann hast du ein Kabelpaar gefunden!

Gruss Ironlayer
#5075339
Lesenswert?

Armin R. schrieb:
> Nico W. schrieb:
>> Bei bipolaren Motoren braucht man nix zum finden der Paare.
>>
>> Kabel jeweils zusammen halten. Wenn der Motor sich schwerer drehen
>> lässt, hat man das Paar gefunden.
> Hmm. Versteh ich jetzt nicht!
> Welche Kabel zusammenhalten? Die beiden Spulenenden? Ohne Stromquelle?

Richtig. Einfach die Kabel zusammen halten. Ich hab bei mir nur Nema17 
in den Baulängen 40 und 48mm die als Spulenwiderstand ca. 3 Ohm haben 
und mit 1,6A betrieben werden. Da merk ich das sehr deutlich.

Also, Kabel 1 und Kabel 2 zusammen halten. Motor dreht sich schwer, dann 
hast die beiden Paare gefunden (1 und 2; 3 und 4). Motor dreht sich 
leicht, dann Kabel 1 und Kabel 3 zusammen halten. Wenn er sich noch 
immer leicht drehen lassen sollte, dann müsste er sich mit Kabel 1 und 
Kabel 4 'schwer' drehen lassen.

Wie das bei kleineren Motoren aussieht kann ich nicht sagen.
Gast #5075413
Lesenswert?

Nico W. schrieb:
> Wie das bei kleineren Motoren aussieht kann ich nicht sagen.

Alternativ kann man die Enden auch an eine (1.5V-)Batterie halten! Bei 
gefundenen Paaren deutliche Blokierung!

Wurde das nicht auch schon mehrfach gesagt?

Langsam glaube ich auch an Troll!

Gruss Chregu
#5076332
Lesenswert?

Nico W. schrieb:
> Einfach die Kabel zusammen halten. Ich hab bei mir nur Nema17
> in den Baulängen 40 und 48mm die als Spulenwiderstand ca. 3 Ohm haben
> und mit 1,6A betrieben werden. Da merk ich das sehr deutlich.
Ok. Ist die Selbstinduktion so hoch, dass der Rotor angezogen wird... 
und das ohne Kondensator!?!


@L.
Bau mal meinen angehängten Schaltplan auf und lass das "LED-Blink 
Programm" auf dem Arduino (mit Pin 5) laufen. Bei VMOT=11Volt sollten 
R1+R2 jeweils etwa 450 Ohm haben.
Die 4 LEDs sollten dann nacheinander aufleuchten!
Angehängte Dateien:
Gast #5076396
Lesenswert?

Hi

>Die 4 LEDs sollten dann nacheinander aufleuchte

Nein, machen sie nicht. Es leuchten immer zwei LEDs. Und bei jedem 
Schritt wechseln zwei LEDs. Ehrlich gesagt habe ich das Gefühl du hast 
weder das Prinzip von bipolaren noch von unipolaren Schrittmotoren 
verstanden. Auch bei bipolaren SChrittmotoren sind bei Vollschritt immer 
zwei Spulen(-Hälften) gleichzeitig bestromt und nicht nacheinander.

Mal abgesehen davon, wenn der TO sich eh nicht mehr meldet, lohnt es 
sich nicht hier irgend etwas noch zu schreiben.

MfG Spess
#5076419
Lesenswert?

spess53 schrieb:
>>Die 4 LEDs sollten dann nacheinander aufleuchte
>
> Nein, machen sie nicht. Es leuchten immer zwei LEDs. Und bei jedem
> Schritt wechseln zwei LEDs.
Ups, mein Fehler (._.)! Ist mir schon klar, dass immer zwei LEDs 
leuchten. Schlecht von mir formuliert. Die wechseln aber ihre 
"Signal-Position" zueinander innerhalb der 4 Schritte.
Wie bei deiner Darstellung schon zu erkennen war:

 Spule      1       2    LED1/LED2     LED3/LED4

 Schritt1  + -     + -     LED1           LED3       vorwärts
 Schritt2  - +     + -     LED2           LED3
 Schritt3  - +     - +     LED2           LED4
 Schritt4  + -     - +     LED1           LED4
 Schritt5  + -     + -     ...

Man kann die 4 verschiedenen Zustände anzeigen.

Gruss Ironlayer

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren