Forum: Mikrocontroller und Digitale Elektronik Spindeltrieb mit Positionsauswertung


von Fabian W. (hs-drifter)


Lesenswert?

Hallo,
ich möchte hier mal mein erstes (wirkliches) AVR Projekt vorstellen und 
dabei auch gleich um ein wenig Hilfestellung bitten.

Ich habe in einem RC-Modell eine Gewindestange von 200mm länge, die von 
einem DC-Motor Angetrieben wird.
Auf der Spindel möchte ich je nach PPM Signal meines Empfängers eine 
Platte hin und her fahren (1ms= Platte hinten, 2ms= Platte vorne) die 
Platte soll aber auch an jeder anderen Position der Spindel Stehen 
bleiben.

Nun meine Vorstellung, wie ich das umsetzen möchte.

- 2 Endlagentaster (vorne und hinten) welche dafür sorgen, dass in keine 
Richung zu weit gefahren wird

- Wenn Spannung angelegt wird fährt die Spindel gegen den hinteren 
Taster (Initialisierungsschritt). Ab da werden die Umdrehungen mittels 
einer Gabellichtschranke gezählt (bei M6 Gewinde Habe ich eine 
Genauigkeit von +-1mm).

- Die Länge der Spindel beträgt 200mm also muss die Steuerung das PPM 
Signal auf 200 Impulse der Gabellichtschranke aufteilen.

Nun mein Problem... ich kenne mich mit der AVR Programmierung leider 
nicht gut genug aus, um das Programm komplett selber zu erstellen.
Ich habe zwar einige Übungen usw. gemacht, aber ich weis noch nicht so 
richtig, wie ich das ganze an gehen soll.
(Hardware sollte kein Problem sein)

Würde mich sehr freuen, wenn mir jemand auf die Sprünge helfen könnte.

MFG Fabian

von Stephan K. (dustpuppy)


Lesenswert?

Hi,
ich wuerde keinen DC-Motor nehmen. Sinnvoller waere ein Schrittmotor. 
Dann brauchste nur einen Taster, damit du die Ausgangsposition bestimmen 
kannst. Die Anzahl der Schritte bestimmt dann die Position. Prinzip wie 
bei einer CNC-Maschine.

Gruesse

Dusty

von Floh (Gast)


Lesenswert?

Fabian Wunderlich schrieb:
> Nun meine Vorstellung, wie ich das umsetzen möchte.

Also du hast ein Eingangssignal, das ergibt deine Sollposition.
Deine Ist-Position ist dir ja durch Zählen /Endanscläge bekannt.
Also brauchste ja nur noch:
if sollposition < istposition
  rückwärts fahren
if sollposition > istposition
  vorwärts fahren
ansonsten stehenbleiben

Es kann natürlich sein, dass du dann noch eine Toleranz oder eine 
Anfahr-/Abbremsrampe implementieren musst, falls dein Schlitten um die 
Sollposition pendelt.
:-)

von Floh (Gast)


Lesenswert?

PS: Programmieren würd ich das ganze so:
Dein PPM-Signal misst du mit der ICP-Einheit deines Timers, Die 
Lichtschranke wird in einem Interrupt ausgewertet (Pinchange oder 
externer interrupt), je nach aktiver Drehrichtung wird die Istposition 
erniedrigt oder erhöht.
Bei den Endanschlägen wird die Istposition auf betimmte Werte gesetzt.
In der Hauptschleife dann nur noch die Motoransteuerung.
:-)

von Gustav K. (hanibal)


Lesenswert?

ist das von Floh beschriebene Verfahren dann eigentlich schon eine 
Regelung? Man vergleicht ja ist mit sollwert.

von Floh (Gast)


Lesenswert?

Gustav K. schrieb:
> ist das von Floh beschriebene Verfahren dann eigentlich schon eine
> Regelung? Man vergleicht ja ist mit sollwert.

Jap, ein sogenannnter Dreipunktregler. :-)

von Fabian W. (hs-drifter)


Lesenswert?

Vielen Dank erstmal an alle für die schnellen Antworten.

Die Idee das mit einem Schrittmotor zu machen finde ich garnicht 
schlecht. Ich habe allerdings leider schon alle Frästeile für einen DC- 
Motor hier und habe auf die Schnelle noch keinen kostengünstigen 
Schrittmotor gefunden, der in meine Halterung passt.

Die Vorgehensweise wie Floh sie beschrieben hat hört sich ganz gut an... 
ich werde mal versuchen das so hin zu bekommen.

MFG Fabian

von Micha E. (Firma: privat) (bmsr-techniker)


Lesenswert?

Hallo,

wenn Du schon Empfängerimpulse auswerten willst, warum nimmst Du nicht 
gleich eine Servoelektronik?
In Abhängigkeit von Deinem DC-Motor brauchst Du evtl. eine stärkere 
Brücken-Endstufe.
An die Spindel kommt ein Untersetzungsgetrieb an dem dann das Poti der 
Servoelektronik montiert ist. Fertig!

Gruß Micha

von Udo S. (urschmitt)


Lesenswert?

Micha E. schrieb:
> An die Spindel kommt ein Untersetzungsgetrieb an dem dann das Poti der
> Servoelektronik montiert ist. Fertig!
Na ja besonders genau ist anders. Und das zusäzliche Getriebe mit 1:150 
oder 1:200 braucht man auch erst mal.
Wenn die Steigung von M6 etwa 1mm ist bekommt er mit der einfachen 
'Lichtschrankenimpulse messen' Methode eine Genauigkeit von locker unter 
1% Mit dem Endanschlag kann er sauber den Zähler initialisieren.
Mit der Poti Methode hat er größeren Aufwand und eine Genauigkeit von 
10% oder schlechetr. Wozu also.

@Fabian:
Falls notwendig kannst du mit 2 oder 4 Löcher auf deiner 
Lichtschrankenscheibe auch halbe oder viertel Umdrehungen messen - falls 
das interessant sein sollte.

von Matthias L. (Gast)


Lesenswert?

>- Wenn Spannung angelegt wird fährt die Spindel gegen den hinteren
>Taster (Initialisierungsschritt). Ab da werden die Umdrehungen mittels
>einer Gabellichtschranke gezählt (bei M6 Gewinde Habe ich eine
>Genauigkeit von +-1mm).


Fährst du auch immer blind über die Autobahn und sagst dir, lt. 
Karte/Tacho muss ich nach 34,9454322345424km an der Abfahrt sein und 
rechts raus?

Oder guckst du permanent, wo du bist um zu entscheiden?


Mein Vorschlag, bau ein Positionssensor dran und lass die 
Endlagenschalter weg. Damit meine ich zB ein Schiebepoti mit 200mm 
Stellweg.

Oder sowas:
http://www.novotechnik.de/fileadmin/user_upload/novotechnik/pdfs/deutsch/PTP_2011_01.pdf

oder sowas:
http://www.megatron.eu/SMC3/plugin-transformer?trafo=live&plugin=doc&mode=designin&method=LoadDocument&tp_subRulesID=1206567953264&webdavID=1219130821250&language=de&objType=doc

Ich denke, das Proinzip ist klar.

von Harald W. (wilhelms)


Lesenswert?

Matthias Lipinsky schrieb:

> Mein Vorschlag, bau ein Positionssensor dran
> Damit meine ich zB ein Schiebepoti mit 200mm Stellweg.

ACK.

> ...und lass die Endlagenschalter weg.

Nicht ACK. Ich würde beides einbauen. Den Positionssensor für
den Normalbetrieb und die Endlagenschalter für den Notfall.
Mit denen würde ich auch direkt den Motorstrom unterbrechen,
denn bei einer elektronischen Steuerung kann immer mal wieder
was kaputtgehen und dann muss man nicht zusätzlich seine
Mechanik auch noch ruinieren.
Gruss
Harald

von Fabian W. (hs-drifter)


Lesenswert?

Hallo Micha,
die Überlegung einfach eine Servoelektronik zu nehmen hatte ich auch 
schon.
Ich habe das aber aus den selben Gründen wie Udo genannt hat wieder 
verworfen.

@ Udo:
Danke, aber die Genauigkeit mit einem Loch reicht mir völlig aus.

MFG Fabian

von ... (Gast)


Lesenswert?

Matthias Lipinsky schrieb:
> Mein Vorschlag, bau ein Positionssensor dran und lass die
> Endlagenschalter weg. Damit meine ich zB ein Schiebepoti mit 200mm
> Stellweg.

Und für was hälst du die Lichtschranke, die die Spindeldrehung 
auswertet?

von Matthias L. (Gast)


Lesenswert?

>Und für was hälst du die Lichtschranke, die die Spindeldrehung
>auswertet?

Das sagt dir nur, dass du x mm in eine Richtung gefahren bist. Das ist 
nur eine relativ-Aussage. Damit weisst du immernoch nicht wo du mit der 
Spindel stehst.

Das ist so, als sage ich dir: "Ich bin jetzt eine Ortschaft weiter 
gefahren. In welcher bin ich?"

...



@Harald Wilhelms (wilhelms)
>Nicht ACK.

Wäre denkbar. Ich bin aber der Meinung, dass der Sensor am Rand Reserve 
haben sollte. Also für seine 200mm Weg würde ich einen 250mm Sensor 
nehmen und so einbauen, dass beidseitig ca. 25mm Platz sind. Wird jetzt 
eine Sensorposition kleiner 25mm vom Rand erkannt, so ist Fehler und 
Stillstand.

Genauso versuche ich das auch hier in der Firma zu vertreten. Aber hier 
wird auch schön gefunden, die Motorwellen-inkremente zu messen, das 
Ganze einzuteachen (also einen Absolutbeitrag zu bringen), die 
Istposition über das Aus/Einschalten zu speichern ...

Warum einfach, wenns auch kompliziert geht...

von Klaus D. (kolisson)


Lesenswert?

Mal so in den Raum gestreut:
1. einen Stepper mit Getriebe.
2.  ein Scalenseil
3. Umlenkrollen
4. einen Rotaryencoder auf einer Umlenkrolle

alternativ zu 4. könnte man das seil mit schwarzen Ringen markieren und
über eine Art U-Detector die tatsächlichen Schritte Zählen.

Gruss K.

von Udo S. (urschmitt)


Lesenswert?

Matthias Lipinsky schrieb:
> Endlagenschalter weg. Damit meine ich zB ein Schiebepoti mit 200mm
> Stellweg.
Und wie genau ist dein "Schiebepoti"? Und wie linear? Und wie teuer?

Wenn du hinkende Vergleiche machst kann ich das auch: Deshalb werden 
Schiebepoties zur Positionsmessung an Fräsen eingesetzt und keine 
Incrementalgeber, oder?

von Matthias L. (Gast)


Lesenswert?

Der Vergleich hinkt nicht. Bei Fräsen geht es gewöhnlich um Mikrometer, 
zumindest fast. Deshalb sind dort Drehgeber verbaut. DIese müssen dann 
aber geteacht werden. Und das Ganze ist nur so genau, wie die Teachung.

Oder es sind Absolutdrehgeber drin. Aha, warum? Genau. Weil eine 
Absolutposition benötigt wird. Auch hier ist der Einbau des Sensors 
entscheidend.

Weiterhin sind Fräsen sehr genau gebaut, besonders die Getriebe. Stell 
dir mal vor, der Motor fängt an zu drehen, erkennt aufgrund 
Ink-Auswertung eine Lageänderung, aber wegen Spindel/Getriebespiel 
verfährt noch nichts..

Die Linearität der (von mir eingesetzten) Potis ist genau genug. Bei 
einer Betrachtung der Signalkette auf Fehlerfortpflanzung stellt man 
fest, dass es dann ein Problem gibt, wenn die Ref-spannung des ADC nicht 
als Versorgungsspannung des Potis genutzt werden kann. (Diese tritt bei 
mir an meiner SPS meist auf)

Hier gibt es das Problem nicht.

Die Auflösung des Istwertes wird somit durch den ADC-Auflösung und die 
Mechanik bestimmt.


Oder anders formuliert:

Deshalb sind Inkrementalgeber auch in der Leuchtweiteneinstellung von 
Autos verbaut. Deshalb dauert es am Anfang immer paar Sekunden, weil 
sich das ja auch erst referenziert.

von Udo S. (urschmitt)


Lesenswert?

Ähm, Matthias, der TO will für Modellbau was einfaches bezahlbares und 
auch nicht zu großes.
Mag ja sein daß bei deinen industriellen Geräten es sinnvoll ist sofort 
nach einschalten eine Absolutposition zu haben, und die Potis 
ausreichend genau sind.
Die einfache Mechanik Lochscheibe auf Gewindespindel bei 150 oder 200 
Umdrehungen und Endanschlag kannst du doch in Punkto Genauigkeit, 
Platzbedarf und Bezahlbarkeit unmöglich mit einem Linearpoti toppen.

von Matthias L. (Gast)


Lesenswert?

>unmöglich mit einem Linearpoti

Ich sage ja nicht, dass er sich unbedingt ein industrietaugliches Poti 
zulegen soll. Mit den Links wollte ich nur verdeutlichen, was ich meine.

Bei Reichelt gibt es Potis bis 100mm für kleines Geld. Was für 200mm 
müsste man suchen.

Falls man nix (bezhalbares) findet, dann würde ich überlegen, wie es 
lösen kann und direkt eine Position zu bekommen, denn die interessiert 
hier ja.

Die Lösung mit Inkrementen wäre in jedem Fall nur Notlösung.

von Harald W. (wilhelms)


Lesenswert?

Udo Schmitt schrieb:
> Matthias Lipinsky schrieb:
>> Endlagenschalter weg. Damit meine ich zB ein Schiebepoti mit 200mm
>> Stellweg.
> Und wie genau ist dein "Schiebepoti"? Und wie linear? Und wie teuer?

Nun, solche Schiebepotis hatten durchaus eine Linearität von besser
als 10e-4. Sie wurden in der "vordigitalen Zeit" oft verwendet, waren
aber auch nicht ganz billig (Mehrere hundert Mark).
Gruss
Harald

von Udo S. (urschmitt)


Lesenswert?

Wie gesagt, industriell ist was völlig anderes. Da habt ihe je nach 
Anwendung vollkommen recht.
Aber in diesem Fall:
Eine Reflex oder Gabellichtschranke für 50ct und eine Scheibe mit Loch 
oder ein einfacher Farbtupfer und du hast eine Genauigkeit von unter 1% 
ohne weiteren Aufwand (Einfache Gewindestange und Annahme 200 
Windungen).
Der TO hat NIE gesagt, daß er immer und überall auch nach dem Aus und 
Wiedereinschalten sofort die absolute Position braucht.
Eure Lösungsvorschläge kosten Geld und Platz das ist beides bei 
RC-Modellen und Basteln beschränkt.
Die Richtung weiß man weil der µC den Motor ansteuert, die Position kann 
man sich auch problemlos im CMOS speichern, so what? Das ist keine 
Notlösung sondern eher eine ziemlich optimale in bezug auf Genauigkeit, 
Aufwand, Platz und Preis.
No offend :-)

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
Noch kein Account? Hier anmelden.