Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Schrittmotor Kategorie: Programmierung Basic (von Martin - 12.07.2007 11:31)
 Als Antwort auf Re: Schrittmotor von Achim - 12.07.2007 2:59
Martin nutzt:  CC1-M-Unit V1.2/2.0
> > habe mir ein I2C-Stepper-Modul gekauft und die CC angeschlossen einen Schrittmotor aus  einem alten Fotokopiere angehängt, ein Beispielprogramm geladen (IIC_STEPPERDRIVE_2_TMC222.bas) und siehe da, der Motor beschleunigt und bremst wieder. Bei Neustart  wiederholt sich das ganze wieder. Das Beispielprogramm gibt Printbefehle an das LCD aus, was ich jedoch nicht besitze. Ich habe mit der CC schon verschiedene Steuerungen gebastelt, da ich jedoch kein super Programmierer bin verstehe ich ĂĽber die hälfte der Befehle in diesem Programm nicht, und komme auch nicht richtig weiter mit löschen von Befehlszeilen oder einbauen von Printbefehlen aufs Hyper Terminal.
>
> Letzteres ist recht simpel. Wenn der PC ĂĽber RS-232 angschlossen und die richtige Baudrate eingestellt ist, ergibt ein
> print "Hello World"
> die Ausgabe von "Hello World" im Hyperterminal. Probier's vielleicht zunächst in einem separaten Kurzprogramm aus (Syntax aus dem Gedächtnis, weil mir heute eine versuchte Installation vom Sch*-Norton-Internet-Security diverse Programme zerschossen und auch nach schleuniger Deinstallation Leichen (unter anderem cce.exe) übrig gelassen hat.)
>
> define i byte
> #loop
> print "Hello World, die ", i, ".te"
> pause 50 ' Eine Sekunde (50 * 20ms)
> goto loop
>
> HTH
>
> Bye
>  Achim



Hallo, ganz so schlimm stets um mich nicht. Hätte mir doch noch mehr Zeit nehmen sollen das Programm zu verstehen um präziser zu fragen. Habe mir ein paar Zeilen zusammen geschnipselt, verstehe nicht alles so genau aber immerhin kann ich in eine Position fahren und zurück sowie Reseten.

define TARGETPOS    word[1]
define COUNTER      word[2]
Define HP           word[3]

define ACTPOSH      byte[1]
define ACTPOSL      byte[2]
define TARGETPOSH   byte[3]
define TARGETPOSL   byte[4]

define DATA1        byte[22]
define DATA2        byte[23]
define DATA3        byte[24]
define DATA4        byte[25]
define DATA5        byte[26]
define DATA6        byte[27]
define DATA7        byte[28]
define DATA8        byte[29]
define COMMAND      byte[30]

define TMC222 192
#INIT
print"#INIT#";

#START
Print "START"
gosub INIT_MOTOR
gosub RESET_POSITION
gosub S1REQUEST

#LOOP
INPUT HP
IF HP =   0 Then COUNTER = 0                 ' auf Position 0 zurĂĽck
IF HP =   1 Then GOSUB RESET_POSITION        ' RESET
IF HP =   2 Then Print "COUNTER = "; COUNTER ' Position anzeigen
IF HP >   2 Then COUNTER = hp                ' Positon eingeben

TARGETPOS = COUNTER
gosub GOTO_TARGET
goto loop

#INIT_MOTOR
print"#ON_IIC#";"#START#";:put TMC222:put &H89:put&HFF:put&HFF
put&H55  ' Iru Ihold
put&H88  ' Vmax Vmin
put &H10 ' Status
put 0    ' secpos
put 0    ' stepmode
print"#STOP#";:print"#OFF#";
goto IIC_STATUS

#RESET_POSITION
Print "RESET_POSITION"
COUNTER = 0
COMMAND=&H86:gosub PUTCOMMAND:return

#GOTO_TARGET
print"#ON_IIC#";"#START#";:put TMC222:put&H8B:put&HFF
put&HFF:put TARGETPOSH:put TARGETPOSL:print"#STOP#";:print"#OFF#";
goto IIC_STATUS

#S1REQUEST
COMMAND=&H81:gosub GETSTAT:return

#GETSTAT
print"#ON_IIC#";"#START#";:put TMC222:put COMMAND:print "#STOP#";
print"#START#";:put TMC222+1:get DATA1:get DATA2:get DATA3
get DATA4:get DATA5:get DATA6:get DATA7:get DATA8:print"#STOP#";"#OFF#";
goto IIC_STATUS

#PUTCOMMAND
print"#ON_IIC#";"#START#";:put TMC222:put COMMAND:print "#STOP#";"#OFF#";
goto IIC_STATUS

#IIC_STATUS
print"#ON_CONFIG#";
print"#OFF#";
return

Nun meine Fragen: kann mir jemand von euch sagen wie ich die Drehzahl (Frequenz) verändere damit ich eine Position schneller oder langsamer anfahren kann und wie ich den Positionszähler am Modul auslesen bzw. verwenden kann, ich bauen einen Linearantrieb und möchte mit einem Endschalter bei Programmstart in die Grundposition fahren.  
Danke fĂĽr eure Hilfe

 Antwort schreiben

Bisherige Antworten: