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() { }
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?
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?
:
Bearbeitet durch Moderator
Luick K. schrieb: > ich baue gerade einen Balancier Roboter bauen allerdings wollen sich die > Stepper Motoren nicht drehen. Dann koppel mal die Last ab und schau, ob sich die Motoren dann drehen. Falls ja, hast Du entweder die Motoren oder die Ansteuerung zu schwach ausgelegt.
Ok, ich hab jetzt mal ein Vid. zum Problem aufgenommen... https://www.youtube.com/watch?v=sb_FZbJWK0E
Du stellst da den Strom für den Stepper ein. (gugst du Dabla Treiberplatine u. Motor) Beitrag "Re: Chopperbetrieb Schrittmotor" 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.
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.
Nanotec hat eine hübsche Animation zur Ansteuerung https://de.nanotec.com/support/tutorials/schrittmotor-und-bldc-motoren-animation/
Aber ich bin mir sicher das ich den Motor nicht verpolt hab. Alles so wie hier angeschlossen: http://www.brokking.net/images/yabr/yabr-schematic_robot.pdf
Luick K. schrieb: > Aber ich bin mir sicher das ich den Motor nicht verpolt hab. Wie oft überprüft? Hättest du nicht was falsch gemacht, würde es ja funktionieren!
Luick K. schrieb: > Aber ich bin mir sicher das ich den Motor nicht verpolt hab. Auf welchem Pegel liegen beim Treiber die Signale für die Auswahl des Stepper-Modes (Mode0..2)? Bist du sicher, dass die Farben der Kabeladern vom Motor zu deinem Verdrahtungsplan passen?
Das klingt jetzt blöd aber kannst du mir die Sache mit dem Pegel mal erklären?
Luick K. schrieb: > Das klingt jetzt blöd aber kannst du mir die Sache mit dem Pegel mal > erklären? Pegel = Spannung gegenüber Gnd Mit Mode0..2 wird das Schrittformat festgelegt. Im Datenblatt vom DRV8825 in Tabelle 1 auf S.13 stehen die möglichen Kombinationen.
Ok, hab alles durchprobiert und hat nichts geholfen.. Hat keiner mehr eine Idee ?: Hab hier gelesen das meiner ein Bipolarer sein kann und das die zwei bei mir unbenutzten Pins am Motor an Ground gekoppelt werden muss, ist das möglich?
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.
Ok, die Widerstände stimmen also bleiben die 2 Leitungen isolieren. Aber Motor bewegt sich immer noch nicht. Er summt nicht mehr aber er bewegt sich nicht. Die Achse ist einfach starr egal ob der Arduino an oder aus ist.
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
:
Bearbeitet durch Admin
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.
warum machst du alles in setup() und nichts in loop() ?
Schaltplan ist angehangen. Aber ich bin mir recht sicher alles stimmt! MFG
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
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.
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!
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.
Wolfgang schrieb: > für 21 Minuten ganz langsames Steppen Wie kommst Du auf 21min? Ich komme so auf 1.35sec. Ich würde mal auf einige duzend Steps pro Sekunde gehen. Es muss ja fast an der Software liegen! Gruss Chregu
Luick K. schrieb: > Vid. zum Problem "Hochdrehen" ist im Fall in die andere Richtung! CCW! Gruss Chregu
Willi schrieb: > 250ms Oh ja, stimmt. Bin bei den "microseconds" weiter oben hängengeblieben... Gruss Chregu
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.
:
Bearbeitet durch Admin
L. schrieb: > Schaltplan ist angehangen. > Aber ich bin mir recht sicher alles stimmt! Enable!?
:
Bearbeitet durch Admin
Werner P. schrieb: > Enable!? Ja dachte ich zuerst auch! Aber wenn er sagt, der Motor blockiert, ist auch Enable gut! Gruss Chregu
Datenblatt Motor: http://motion.schneider-electric.com/downloads/datasheets/14_mtr.pdf nEnable ist 'internal Pulldown', muss also nicht angeschlossen sein.
:
Bearbeitet durch User
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 ): .
Und warum testest du den Treiber nicht mal ohne den heiligen Arduino wie das so viele schon vorgeschlagen haben?
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
:
Bearbeitet durch User
Armin R. schrieb: > Kannst du die Wicklungen des Motors messen, also Multimeter zur Hand? Das und vieles Andre, wurde mittlerweile mehrfach vorgeschlagen! Leider kommt immer wieder, der selbe Blödsinn zurück. Daher bleib mir leider nichts Andres übrig, als den TO als TROLL einzustufen! :(
Ist der TO noch hier unterwegs, oder hat ers aufgegeben? Funktioniert der Motor bzw Treiber jetzt? Wenn ja: woran lags?
:
Bearbeitet durch User
In beiden Fällen: Da hörst nie mehr was! Gruss Chregu
Christian M. schrieb: > Wie kommst Du auf 21min? Ich komme so auf 1.35sec Über einen Faktor 1000 lässt sich reden. Sorry ...
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.
> 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?
Hi >Drehen tut sich der Motor aber immer noch nicht. Er piept nur in >unterschiedlichen tönen. Bist du sicher, das du nicht eine Enstufe des DRV schon gehimmelt hast? MfG Spess
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!
@spess53 Bin sicher hab, aus versehen 40 Stück von den DRV s bestellt und kann die jetzt dauernd wechseln. @ironlayer Ich kann dass leider erst morgen ausprobieren.
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...
Das ist viel zu schwammig und du hast hast schon wieder viele Rückfragen nicht beantwortet. Ich kann Dir so nicht helfen.
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
:
Bearbeitet durch Admin
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.
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
:
Bearbeitet durch User
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...
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
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"); }
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
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
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...
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
Teo D. schrieb: > Der verarscht euch doch. Glaub ich nicht! Es fehlt einfach nur einiges an Grundwissen- und Ausrüstung (Multimeter...)!
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
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)
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?
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
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
:
Bearbeitet durch Admin
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.
Warum einige TO es sich immer so schwer machen und ihre Unfähigkeit vertuschen müssen. Den Motor in den Schaltplan vom 07.07.2017 00:54 ein zu zeichnen und das Motor-Datenblatt zu verlinken könnte zielführender sein. Auch sollte man mal die Netiquette beachten: https://www.mikrocontroller.net/articles/Netiquette#Klare_Beschreibung_des_Problems
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? Gruss Ironlayer
Nico W. schrieb: > Kabel jeweils zusammen halten. Wenn der Motor sich schwerer drehen > lässt, hat man das Paar gefunden. Bei kleineren find ich das aber nicht wirklich deutlich. Lieber ne LED dran halten.
Armin R. schrieb: > Welche Kabel zusammenhalten? Motor von der Schaltung trennen, Motor in die Hand nehmen und zwei der vier Adern vom Motor direkt verbinden. Wenn sich daraufhin der Motor nur übel schwer von Hand drehen läßt, gehören die beiden Adern zur selben Wicklung.
Teo D. schrieb: > Bei kleineren find ich das aber nicht wirklich deutlich. Ok, ersetze "übel" durch "vergleichsweise" ;-) Wolfgang schrieb: > ... nur übel schwer ...
Wolfgang schrieb: > übel schwer Hmm, bin ja nicht so der Stepper-Bastler. Mein Größter 0,4A 12V, alles gebrauchte. Merklich aber weit weg von "übel schwer". Defekt? (nein zerlegen tu ich die natürlich nie)
Wolfgang schrieb: > Motor von der Schaltung trennen, Motor in die Hand nehmen und zwei der > vier Adern vom Motor direkt verbinden. Ich verstehs immer noch nicht! Miteinander verbinden? Wenns mit ner Strom-/Spannungsquelle gemeint ist, so hab ichs ja quasi mit dem Post 12.07.2017 10:54 beschrieben ;-) Gruss Ironlayer
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.
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
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!
:
Bearbeitet durch Admin
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
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
Nochmal die Frage an L.: Ist der TO noch hier unterwegs, oder hat ers aufgegeben? Funktioniert der Motor bzw Treiber jetzt? Wenn ja: woran lags?
:
Bearbeitet durch Admin
Er hat sich GeTROLLT! Auf die eine o. andre Weise.
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.