PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Positionierung mit Rückgabe



thebachelor
28.02.2007, 21:28
Hallo Freunde!

ihr habt da sicher schon mehr erfahrung als ich deswegen frag ich erst mal euch bevorich wild drauf los baue....

und zwar...

ich habe eine linearführung und einen motor der diese antreibt, warscheinlich wirds ein Fauhaber sein mit incrementalgeber.

jetzt geht es mir darum den motor so zu steuern, dass ich ihn in 250ms von punkt a nach punkt b fahren kann...

meine ideeen waren jetzt einmal mit einem motion controller wie es der LM629 ist [http://www.tumpold.at/project/DATENBL%c4TTER/OTHER%20STUFF/lm629m.pdf]

hier kann ich den incrementalgeber direkt anstecken und muss mich nur um die ansteuerung kümmern ... (diese ansteuerung ist im moment mein größtes problem, da ich keine ahnung von µC habe - wrd aber zur zeit eingelernt mit einem 16F877)

ODER ich verwende einen encoder baustein und einen up/down counter wie in dem Datenblatt beschrieben [http://www.tumpold.at/project/DATENBL%c4TTER/INKREMENTALGEBER/LS7083_LS7084.pdf]
vorteil dabei wäre denk ich mir, dass das µC programm einfacher wird

möglichweise gibt es soetwas was ich benötige ja schon fertig auch ? wäre ja auch eine möglichkeit...

also im grunde muss ich einfach sagen fahr 20cm nach links und das ding fährt dann auch 20cm und bleibt dann da stehen

die motoransteuerung an sich mach ich mit einem BTS7960 also die funktioniert schon ... mir gehts allein um den "weg" den ich benötige

ich hab zwar schon die suche benutzt, jedoch so richtig schlau bin ich noch nicht geworden - ich weis nur dass ich den Motion Controller mit bestimmten befehlen steuern muss ... naja egal erstmal

mir wäre schon mal geholfen wenn ihr mir sagt was klüger ist von der forgehensweise her....

vielen dank erstmal :mrgreen:

FelixR
12.05.2007, 01:06
Hi,

mich würde nur mal interessieren woher du den BTS7960 beziehst?
Ich hab den bis jetzt noch nirgends finden können.

Greetz, Felix

Benedikt.Seidl
12.05.2007, 08:49
also wenn du sowieso schon so einen dicken µC wie den 16F877 hast, ist es doch eigentlich gar kein problem das selber zu programmieren. du hast ja bereits schon einen inkrementalgeber. den legst du auf einen externen interrupt, und zählst dann mit wie oft sich der motor schon gedreht hat, und machst dann aus, wenn er sich weit genug gedreht hat. feddich. ich kann es auch noch ausführlicher erklären wenn du willst.

wenn du es unbedingt außerhalb vom 16f877 machen willst, kannst du dir auch noch einen kleinen 2. pic kaufen und den dann mit i2c ansteuern.

SEIDL.

Thoralf
14.05.2007, 10:19
Ich würde auch den Inkrementalgerbe auf den TMR2 legen. Da dieser nur vorwärts zählt, wird einfach 65536 - Anzahl der Inkremente, die zu erreichen sind in den TMR2 geladen. Ist die Sollinkrementezahl erreicht, wird Interrupt ausgelöst und der Motor angehalten. Da aber jeder Motor eine gewisse Trägheit hat, kann man den schon ab einem etwas kleineren Zählerstand langsamer werden lassen und dann beim Erreichen des Sollstandes ganz abstoppen. Dann düst er nicht so drüber hinaus und der Regler muß den nicht dauernd wieder zurückfahren.
Jedes Inkrement per Interrupt zählen würde ich nicht machen, da der PIC dann nur noch Interrupts bearbeitet und nicht viel anderes schafft.

Der beste Vorschlag ist der von Benedikt: einen kleinen Pic besorgen, der nur den Regler realisiert. Über I2C oder RS232 kann man dann den Sollwert rüberschieben und der Hauptprozessor kümmert sich um andere Dinge

hütti
11.06.2007, 16:37
hi

ich hätte auch starkes interesse am BTS7960.
wo kann man ihn kaufen ?

grüsse

hütti