Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Schrittmotoren mit Frequenz-Generator ansteuern? Kategorie: Programmierung Basic (von kami89 - 22.10.2009 19:33)
Als Antwort auf Re: Schrittmotoren mit Frequenz-Generator ansteuern? von kami89 - 22.10.2009 19:31
Ich nutze:
C-Control Pro Mega128, CC-Pro 128 Application Board, Pro-Bot128
> > > > > Hallo zusammen,
> > > > >
> > > > > Ich bin gerade dabei, eine kleine Graviermaschine zu bauen, die mit dem PC gesteuert werden kann.
> > > > > Die Maschine hat 3 Achsen mit je einem Schrittmotor und einem Schrittmotortreiber.
> > > > > Die Befehle vom PC werden ĂŒber die RS232 an mein C-Control Pro 128 geschickt,
> > > > > welches dann die Schrittmotoren ansteuert.
> > > > >
> > > > > Ich habe nun eigentlich schon das ganze Ding zum laufen gebracht,
> > > > > allerdings habe ich die Schrittmotoren (das Taktsignal) "von Hand" Ein- und Ausgeschaltet
> > > > > also immer mit Port_WriteBit() im Programmablauf drin gearbeitet.
> > > > > Das Problem an der ganzen Sache ist nun aber,
> > > > > dass man so einfach keine anstÀndige Geschwindigkeit zu Stande bringt.
> > > > >
> > > > > Dann hab ich gesehen, dass man ja auch FrequenzausgÀnge nutzen kann. Hab ich mal probiert,
> > > > > funktioniert bestens, habe Geschwindigkeiten erreicht von denen ich vorher trÀumte ;-)
> > > > >
> > > > > Nun muss ich aber natĂŒrlich (weil es ja Schrittmotoren sind) immer die genaue Position der Graviermaschine
> > > > > wissen (X, Y, Z). Mit dem manuellen Taktsignal war das natĂŒrlich keine grosse Sache,
> > > > > eifach bei jedem Schritt eine Variable vergrössern oder verkleinern ( +1 oder -1).
> > > > >
> > > > > Beim Frequenzausgang ist das aber ja nicht so einfach ;-)
> > > > > Ich habe schon Antworten gefunden wie "Frequenz-Ausgans-Pin auf ZÀhler-Eingangs-Pin legen und zÀhlen",
> > > > > aber das macht das Programm ja wieder einiges langsamer und ist auch relativ "unschön" gelöst finde ich.
> > > > > Und ich bin mir nichtmal sicher, ob ich auch 3 ZÀhler-EingÀnge nutzen kann,
> > > > > da das Application-Board auch einige Pins beansprucht.
> > > > >
> > > > > Ein Kumpel hat mir mal gesagt, fĂŒr sowas könne man hĂ€ufig irgendwelche Register auslesen,
> > > > > aber ist das bei der C-Control auch möglich?
> > > > >
> > > > > Ich muss ĂŒbrigens nicht bei jedem einzelnen Puls wieder die Variable anpassen,
> > > > > es genĂŒgt wenn ich bei jeden zehnten Pulsbenachrichtigt werde,
> > > > > dass 10 Pulse ausgegeben wurden (aufgrund der Mechanischen Übersetzung).
> > > > >
> > > > > Bin fĂŒr alle Antworten sehr dankbar!
> > > > >
> > > > > Gruss kami89
> > > >
> > > >
> > > > Hallo,
> > > >
> > > > ich wĂŒrde mir die Schritte berechnen.
> > > > Teiler und die dazugehörige Tickdauer ist ja bekannt,
> > > > somit kannst du auf die Schritte rĂŒckschließen.
> > > >
> > > > GrĂŒĂŸe Ulli
> > >
> > > Hallo Ulli,
> > >
> > > Ich verstehe jetzt nicht so ganz wie du das meinst ;-)
> > > Nur aus Teiler und Tickdauer kann ich ja nicht berechnen wie viele Schritte gemacht wurden?
> > > Oder meinst du ich soll die Zeit messen, und dann die Schritt-Anzahl berechnen? Wird das auch genau?
> > >
> > > Gruss kami89
> >
> > Hallo Kami89,
> >
> > schau dir das mal an:
> >
> >     Timer_T1FRQ(Frequenz,PS_64)
> >     AbsDelay(Periode)
> >     Timer_T1Stop
> >
> > Einmal kannst du die Taktfrequenz festlegen und einmal die die Dauer wie lange
> > die Frequenz anliegt.
> >
> > Nur so eine Idee, ich habe es nicht ausprobiert!
> >
> > GrĂŒĂŸe Ulli
> >
> >
>
>
> Hallo Ulli,
>
> Ich bin mir nicht so sicher wie genau das auch wirklich funktioniert. Das Problem dabei ist eben noch,
> dass sich auf diese Weise der Fehler stÀndig aufaddiert.
>
> Aber ich mach es halt sonst wirklich so, dass ich die AusgÀnge mit den EingÀngen verbinde und dann ZÀhler verwende.
> WÀr halt schön gewesen wenn das einfacher gegangen wÀre...
>


Hoppla, bin aus Versehen auf den "Abschicken"-Button gekommen^^

Wollte dir noch fĂŒr die Antworten danken und Gruss
kami89


    Antwort schreiben


Antworten: