PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schrittmotor an C-Control Microcontroller



Lino
25.01.2006, 16:18
Hallo,
ich möchte einen Schrittmotor PM25S-048 mit Hilfe der C-Control Unit steuern.

Der Motor ist aus einem alten Drucker, hat 4 Anschlüsse (Schwarz, Braun, Orange, Gelb) und 24 Schritte à 15°.
Wie genau muss ich den Motor an die Digitalports anschließen? Im Moment sind alle 4 Anschlüsse an den Digitalports 13-16.

Ich habe schon viele Kombinationen von Ansteuerungssignalen ausprobiert, jedoch dreht sich der Motor immer nur 0,5-1 Schritt nach rechts, und anschließend wieder nach links.

Wie kann ich ihn so Ansteuern, dass er sich im Kreis dreht? Ich möchte den Motor auf jeden Fall mit C-Control/BASIC ansteuern.
Kann mir Jemand helfen?

Mfg, Lino.

Manf
25.01.2006, 16:46
Wenn Du die Daten des Schrittmotors hast, Spulenwiderstand, Nennstrom..., dann gib sie bitte an.
Es wird ja wohl die bipolare Ausführung sein aber da soll es auch unterschiedliche Versionen geben.

http://www.eminebea.com/content/html/en/motor_list/pm_motor/pdf/pm25s048.pdf

Ist der Motor direkt an Portleitungen des Controllers angeschlossen oder sind Treiber dazwischen?
Manfred

Lino
26.01.2006, 14:13
Hallo,

Ich hab leider keinerlei Infos über den Motor, außer der Nummer die angegeben ist.

Ja, der Motor ist direkt an die Ports des Controllers angeschlossen.

Ich habe auchnoch einen anderen Schrittmotor mit dem Namen "S26M048S05-M5". Der hat 48 Steps mit 7,5° und 6 Ohm/Coil

Danke für die Antworten

Lino

Manf
26.01.2006, 15:53
Der Controllerchip ist sicher nicht in der Lage Ströme zu liefern mit dem man einen Motor betreiben kann.
Man schaltet da einen Treiber dazwischen.
In jedem Fall wäre es dafür gut zu wissen wie groß der Widerstand der Motorspulen ist.
Manfred

Lino
01.02.2006, 09:53
Hallo,

auf der Druckerplatine, von der der Schrittmotor stammt, habe ich einen Treiber gefunden L5641 (http://www.ortodoxism.ro/datasheets/stmicroelectronics/1390.pdf).
Komme ich damit weiter?

RG
01.02.2006, 15:07
dieser Treiber ist für den Druckkopf bestimmt, von den Strom-/Spannungsgrenzwerten her sollte sich aber auch ein (unipolarer) Stepper ansteuern lassen.
Für die meisten kleinen bipolaren Stepper ist der L293D sehr gut geeignet.
Für erste Versuche sind solche Dinge wie Stromregelung, PWM nicht nötig.

Lino
03.02.2006, 14:33
Hallo,
Danke für die Antworten.
Ich hab noch 2 andere Treiber auf der Druckerplatine gefunden: L6219 (http://www.st.com/stonline/products/literature/ds/1377.pdf).
Weiß vielleicht jemand, ob man den leicht bedienen kann?
Auf der Druckerplatine sind nämlich noch andere ICs zwischen den 2 Treibern und Motoranschlüssen.

Lino

SIGINT
09.07.2006, 14:46
Hallo Lino,
ich hoffe,daß ich nicht zu spät komme: Ich hab mal das Datenblatt rausgesucht:
http://www.st.com/stonline/products/literature/ds/1377.pdf
Laut Datenblatt scheint der Treiber relativ simpel ansteuerbar. Allerdings gibt es Treiber, die noch einfacher sind. Ist alles aber nur ne Frage der programmierung.

Gruß,
SIGINT

Reth
19.07.2006, 08:30
Hallo,

ich habe ebenfalls probleme mit einer Schrittmotorsteuerung mit dem C-Control, allerdings ist mein Problem ziemlich banal könnte man sagen. Ich verwende den Code für die Schrittmotorsteuerung über I2C aus dem Handbuch und Arbeite mit der M-Unit 2.0 und dem Application Board 2 (10er Ziffernblock). Als Motortreiber habe ich ein Board mit dem TMC222.

Mein Problem ist nun, der Motor dreht sich nicht. Ich spiele den Code in das C-Control, drücke auf start und es tut sich nichts :/. Ich habe den Code erweitert so das er mir eine Ausgabe aufs Display liefert, so weiss ich zumindest das der Code läuft.


DEFINE Motoren AS BYTEPORT[10] 'Wert auf Motoren wird über Port10 übermittelt
DEFINE i AS BYTE
DEFINE d AS BYTE
'i und d sind Zähler die durch die Schritte Tabelle zählen(Index bei LOOKTAB)
i = 1
d = 1



Motoren = LOOKTAB(tSchritte, 1)

WITH LCD
.INIT
.CLEAR

DO

FOR i = 1 TO 25
Motoren = LOOKTAB(tSchritte, d) 'Motor bekommt Tabellenwert übermittelt
d = d + 1
IF d > 4 THEN d = 1
.PRINT d
NEXT i

d = 4

FOR i = 1 TO 25
Motoren = LOOKTAB(tSchritte, d)
d = d - 1
IF d = 0 THEN d = 4
.PRINT d
NEXT i

LOOP
'Bitmuster für Vollschritt
TABLE tSchritte
00000001b 00000010b 00000100b 00001000b
END TABLE

END WITH

Ich habe mir bereits die Beispiele aus der Code Bibliothek zu diesem Beispiel angesehen, allerdings erzeugen die Beispiele von Die Hard bei meinem Compiler(Basic++ 2006) nur unzählige Fehler.

Edit: Ich habe mittlerweile ein anderes Programm (CCBasic) auspropiert und damit laufen die Programme von Die Hard, der Motor bewegt sich allerdings noch immer nicht :/

Der Motor den ich verwende ist vom Typ KP4M2-203

Ich danke schonmal im vorraus für eventuelle Antworten

DIE HARD
19.07.2006, 11:20
Hallo.......

1) Die Beispiele von mir sind alle getestet, allerdings muss der Pfad
für die Library stimmen.
2) Das Programm, das du verwendest ist für den TMC222 überhaupt nicht
geeignet.

Das richtige Beispiel hier:
http://www.fdos.de/ccbpp/codelib.php?dir=../ccforum/codelib/basic_plus_plus/Demo_Unit_M2.0_M1.2/BEISPIELE_ZUBEH%D6R_M2.0_M1.2/IIC_STEPPERDRIVER_198266
Das File für die Library hier:
http://www.fdos.de/ccforum/codelib/basic_plus_plus/Library_Micro_M2_Station2/TMC222_GENERIC.bas

ciao.......

Reth
19.07.2006, 12:18
Danke für die Antwort.

Der Motor dreht sich auch mit diesem Programm kein bisschen, allerdings habe ich die Ausgänge des TMC222 mit dem Oszi überprüft und es kommt gar nichts heraus, weswegen ich annehme das er einfach kaputt ist :/

SIGINT
19.07.2006, 17:29
War das TMC222 ein neues Modul, oder hast du das von irgendjemanden bekommen? Im 2.Fall würde ich mal schauen, ob die Moduladresse im OTP-Speicher geändert wurde. Teste einfach alle möglichen Adressen aus und schau, ob sich irgendwas tut. Und bist du sicher, daß der IIC-Bus auch funktioniert?? Vielleicht gibts da irgendwelche Probleme.

Gruß,
SIGINT

Reth
19.07.2006, 18:35
Ich glaube kaum das da mit den Adressen herumgespielt wurde, mir wurde gesagt das ist ein halbes Jahr herum gelegen ohne Verwendung, ich hab die Daten und Takt Leitungen überprüft und auf beiden war ein Signal. Morgen werde ich sicher besser bescheid wissen, denn dann bekomme ich ein neues ^^

DIE HARD
19.07.2006, 20:58
Danke für die Antwort.

Der Motor dreht sich auch mit diesem Programm kein bisschen, allerdings habe ich die Ausgänge des TMC222 mit dem Oszi überprüft und es kommt gar nichts heraus, weswegen ich annehme das er einfach kaputt ist :/


Den TMC222 kann man eigentlich nur mutwillig kaputt machen.
Zeigt das Programm die Statusregister des TMC222 beim Start an?
Bzw. Findet das Programm den TMC222 überhaupt?

Reth
20.07.2006, 12:08
Ich hab es jetzt mit einem neuen Treiber Modul probiert... und es geht immernoch nicht :/

ER zeigt die Register denke ich an (Ich schätze mal das sind die 2 Byte die er anzeigt) wenn ich den Strom einschalte gibt er beim ersten versuch 1111 0000 0001 1111 und bei den weiteren 0010 0000 0001 0010

Ich denke schon dass das Programm den TMC222 findet.

DIE HARD
20.07.2006, 12:18
Ich hab es jetzt mit einem neuen Treiber Modul probiert... und es geht immernoch nicht :/

ER zeigt die Register denke ich an (Ich schätze mal das sind die 2 Byte die er anzeigt) gerade eben waren es nur einser... ist immer unterschiedlich und ob das Programm ihn findet, da bin ich mir nicht sicher, bei der aktuellen Position steht bei dem neuen jetzt -1, beim alten war es immer 0


Guck erst mal ob die IIC-Bus Adresse richtig eingestellt ist.
http://www.fdos.de/ccforum/codelib/basic_plus_plus/Demo_Unit_M2.0_M1.2/Tools_M2.0_M1.2/IIC_BUS/IIC_DEVICE_SEEK%2B%2B.bas
Das Programm muss den TMC auf 192 finden, ansonsten ist der Jumper
falsch gesteckt.
Ausserdem muss die Spannung am Modul 12-15V sein.
und der Motor muss natürlich richtig angeschlossen sein.
Wenn du kein Application-Board hast, braucht der IIC-Bus
Pullup Widerstände !

Reth
20.07.2006, 12:26
Er hat ihn auf 192 gefunden, die Spannung habe ich auf 14 V eingestellt, also von daher stimmt alles... der Motor ist schon richtig angeschlossen, ausserdem wäre das ja kein so großes Problem... ich habe ja mit dem Oszi nachgeschaut und habe an keinem Ausgang des TMC 222 ein Signal gefunden, besser gesagt gesehen, es kommt also gar nichts raus aus ihm hier :/

Application Board habe ich

DIE HARD
20.07.2006, 12:38
Gib mir mal den Inhalt der beiden Statusregister, die das LCD
am Anfang anzeigt.
Übrigens, hier das Datenblatt wenns dich interessiert:
http://www.c-control-support.net/downloads/tmc222.pdf

Reth
20.07.2006, 12:45
Das Display zeigt 1111 0000 0001 1111 wenn ich das Programm das erste mal starte nachdem ich die Versorgung des Moduls eingeschaltet habe und bei jedem weiteren Programm start 0010 0000 0001 0010.

DIE HARD
20.07.2006, 12:57
0010 0000 0001 0010.
die erste 1 signalisiert einen el. Defekt im Motor, die anderen sind belanglos.
Mit el. Defekt meint der TMC er kann den eingestellten Strom
nicht erreichen.
---> falsch angeschlossen
---> Wicklungswiderstand zu gross
(mehr Spannung geben, oder anderen Strom einstellen)

Reth
20.07.2006, 13:02
Ouch.... gut ^^ ich hab wirklich bei den Anschlüssen blödsinn gemacht.... ich schäme mich wirklich -.-

Danke für die Hilfe... und entschuldigung für meine Dummheit...

DIE HARD
20.07.2006, 13:06
Ouch.... gut ^^ ich hab wirklich bei den Anschlüssen blödsinn gemacht.... ich schäme mich wirklich -.-

Danke für die Hilfe... und entschuldigung für meine Dummheit...

ja, kann passieren.
ciao..........

Ludwig100
30.06.2007, 18:27
Ich krieg hier meine Motoren nämlich auch nicht zum laufen...