INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Suche Idee - Trapezgewindespindel Position finden
05.11.2015, 14:54
Beitrag #1
Suche Idee - Trapezgewindespindel Position finden
Hallo,
ich möchte eine 200cm lange Gewindespindel TR16x4 mit einem DC-Getriebemotor NIDEC (von Pollin) und Arduino antreiben. Der Motor liefert 1 Impuls pro Umdrehung.
Die Spindel wird vertikal Positioniert und an dieser soll die Position der Trapezmutter Millimetergenau ermittelt werden.
Mehrere Positionen sollen per Tastendruck gespeichert und auf Wunsch wieder angefahren werden.
Wie würdet Ihr die Position ermitteln?Huh

Gruß mario
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.11.2015, 15:37 (Dieser Beitrag wurde zuletzt bearbeitet: 05.11.2015 15:43 von inspiron.)
Beitrag #2
RE: Suche Idee - Trapezgewindespindel Position finden
(05.11.2015 15:28)Lötzinnerhitzer schrieb:  interessant wäre, herauszufinden wieviel Weg die Trapezmutter bei einer Umdrehung des Motors zurücklegt - ist doch eine schöne Rechenaufgabe für einen angehenden Maschinenbau-Ingenieur - Tongue

warum nutzt Du keinen Stepper ?
Das Gewicht wird ungefähr 30Kg betragen welches dann bewegt wird.
Für den Anfang sollte der Getribemotor reichen.

Ich glaube das bei einer TR16x4 die Steigung 4mm = pro Umdrehung 4mm zurückgelegt werden. Bin mir aber nicht sicher.
Momentan schwirrt mir die Idee, die Position mit einem Potentiometer zu ermitteln durch den Kopf. Weil dort nach einschalten immer ein definierter Wert zur Verfügung steht. zBsp. bei 147 KOhm ergibt 147 cm.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.11.2015, 17:24 (Dieser Beitrag wurde zuletzt bearbeitet: 05.11.2015 17:30 von ardu_arne.)
Beitrag #3
RE: Suche Idee - Trapezgewindespindel Position finden
(05.11.2015 14:54)inspiron schrieb:  Hallo,
ich möchte eine 200cm lange Gewindespindel TR16x4 mit einem DC-Getriebemotor NIDEC (von Pollin) und Arduino antreiben. Der Motor liefert 1 Impuls pro Umdrehung.
Die Spindel wird vertikal Positioniert und an dieser soll die Position der Trapezmutter Millimetergenau ermittelt werden.
Mehrere Positionen sollen per Tastendruck gespeichert und auf Wunsch wieder angefahren werden.
Wie würdet Ihr die Position ermitteln?Huh

Gruß mario

Hallo Mario,
ein paar mehr Informationen wären schon schön gewesen. So muss man sich alles zusammen suchen und kann doch nur vermuten.

Ich vermute die Gewindespindel ist diese.
  • Steigung 4mm
  • Länge 2000mm

Ich vermute der Motor ist dieser.
  • Leerlauf-Drehzahl: 66 U/min
  • Getriebeübersetzung 1:69
  • Hallsensor 1 Impuls pro Umdrehung der Ankerwelle

Daraus kann man jetzt einiges berechnen.
  • Umdrehungen der Spindel für den vollen Weg vom 2m - Länge/Steigung 2000/4 = 500
  • Umdrehungen des Motors = Anzahl der Impulse für den vollen Weg vom 2m - Umdrehungen der Spindel*Getriebeübersetzung 500*69 = 34500

Es bietet sich also an den Hallsensor für die Bestimmung der Position der Trapezmutter zu verwenden.
Die Auflösung beträgt dann 2000mm/34500 = 0,057971mm.
Zusätzlich braucht man dann noch mindestens einen Endlagenschalter an einem der beiden Enden der Spindel der dem Arduino die 0-Position signalisiert.

Mit einem Poti am Analogeingang des Arduinos erreichst du maximal eine Auflösung von 2000mm/1024 = 1,953mm.

Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.11.2015, 18:47
Beitrag #4
RE: Suche Idee - Trapezgewindespindel Position finden
(05.11.2015 17:24)ardu_arne schrieb:  
(05.11.2015 14:54)inspiron schrieb:  Hallo,
ich möchte eine 200cm lange Gewindespindel TR16x4 mit einem DC-Getriebemotor NIDEC (von Pollin) und Arduino antreiben. Der Motor liefert 1 Impuls pro Umdrehung.
Die Spindel wird vertikal Positioniert und an dieser soll die Position der Trapezmutter Millimetergenau ermittelt werden.
Mehrere Positionen sollen per Tastendruck gespeichert und auf Wunsch wieder angefahren werden.
Wie würdet Ihr die Position ermitteln?Huh

Gruß mario

Hallo Mario,
ein paar mehr Informationen wären schon schön gewesen. So muss man sich alles zusammen suchen und kann doch nur vermuten.

Ich vermute die Gewindespindel ist diese.
  • Steigung 4mm
  • Länge 2000mm

Ich vermute der Motor ist dieser.
  • Leerlauf-Drehzahl: 66 U/min
  • Getriebeübersetzung 1:69
  • Hallsensor 1 Impuls pro Umdrehung der Ankerwelle

Daraus kann man jetzt einiges berechnen.
  • Umdrehungen der Spindel für den vollen Weg vom 2m - Länge/Steigung 2000/4 = 500
  • Umdrehungen des Motors = Anzahl der Impulse für den vollen Weg vom 2m - Umdrehungen der Spindel*Getriebeübersetzung 500*69 = 34500

Es bietet sich also an den Hallsensor für die Bestimmung der Position der Trapezmutter zu verwenden.
Die Auflösung beträgt dann 2000mm/34500 = 0,057971mm.
Zusätzlich braucht man dann noch mindestens einen Endlagenschalter an einem der beiden Enden der Spindel der dem Arduino die 0-Position signalisiert.

Mit einem Poti am Analogeingang des Arduinos erreichst du maximal eine Auflösung von 2000mm/1024 = 1,953mm.

Gruß
Arne

Hallo Arne,

Genau das ist das Ausgangsmaterial!
Ich bedanke mich für die präzise Ausführung. Smile

Nagut, für die Positionierung der Mutter werden von der Nullposition n-Impulse gezählt. Sobald der Arduino Stromlos gemacht wird, ist aber n-Impulse = 0.
Wie kann ich nach dem Einschalten wieder die aktuelle Position ermitteln OHNE den Endlagenschalter anzufahren?

Gruß mario
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.11.2015, 19:14 (Dieser Beitrag wurde zuletzt bearbeitet: 05.11.2015 19:18 von ardu_arne.)
Beitrag #5
RE: Suche Idee - Trapezgewindespindel Position finden
(05.11.2015 18:47)inspiron schrieb:  ...
Nagut, für die Positionierung der Mutter werden von der Nullposition n-Impulse gezählt. Sobald der Arduino Stromlos gemacht wird, ist aber n-Impulse = 0.
Wie kann ich nach dem Einschalten wieder die aktuelle Position ermitteln OHNE den Endlagenschalter anzufahren?

Gruß mario

Hallo,
du könntest mit einem Taster an einem Eingang des Arduinos diesen veranlassen die aktuellen "n-Impulse" in das EEPROM zu speichern.
Dann kann die Spannung abgeschaltet werden.
Wenn die Spannung wieder kommt wird in setup() das EEPROM ausgelesen und mit diesem Wert weiter gearbeitet.

Wenn vor dem ausschalten aber vergessen wir den Taster zu betätigen steht das Teil im Wald. Das passiert auch bei einem ungewollten Spannungsausfall.
Ich würde zur Sicherheit auf jeden Fall an beiden Enden der Spindel einen Endschalter anbringen der den Motor sicher abschaltet. Gleichzeitig kann man diese Endschalter dazu nutzen eine Synchronisierfunktion zu realisieren welche dem Arduino ermöglicht eine 0-Stellung (oben oder unten ist egal) zu finden.
Mit einem weiteren Taster könnte man diese Synchronisierfahrt dann starten.

Du solltest auf keinen Fall jede Änderung vom Zählerstand in das EEPROM schreiben weil das nur eine begrenzte Anzahl von Schreibzyklen pro Speicherzelle zulässt.

Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.11.2015, 19:28 (Dieser Beitrag wurde zuletzt bearbeitet: 05.11.2015 19:38 von inspiron.)
Beitrag #6
RE: Suche Idee - Trapezgewindespindel Position finden
(05.11.2015 19:14)ardu_arne schrieb:  Hallo,
du könntest mit einem Taster an einem Eingang des Arduinos diesen veranlassen die aktuellen "n-Impulse" in das EEPROM zu speichern.
Dann kann die Spannung abgeschaltet werden.
Wenn die Spannung wieder kommt wird in setup() das EEPROM ausgelesen und mit diesem Wert weiter gearbeitet.

Wenn vor dem ausschalten aber vergessen wir den Taster zu betätigen steht das Teil im Wald. Das passiert auch bei einem ungewollten Spannungsausfall.
Ich würde zur Sicherheit auf jeden Fall an beiden Enden der Spindel einen Endschalter anbringen der den Motor sicher abschaltet. Gleichzeitig kann man diese Endschalter dazu nutzen eine Synchronisierfunktion zu realisieren welche dem Arduino ermöglicht eine 0-Stellung (oben oder unten ist egal) zu finden.
Mit einem weiteren Taster könnte man diese Synchronisierfahrt dann starten.

Du solltest auf keinen Fall jede Änderung vom Zählerstand in das EEPROM schreiben weil das nur eine begrenzte Anzahl von Schreibzyklen pro Speicherzelle zulässt.

Gruß
Arne
...mein Gott, warum habe ich so kompliziert nachgedacht!
Naja, dazu sind ja Foren da um gemeinsam Gedanken auszutauschen. Smile
Das ist ein Ansatz mit dem ich was anfangen kann und werde es als Notizen in den nächsten Tagen zu Papier bringen.
Die Spindel ist unterwegs, den Motor werde ich am WE mal am Arduino testen.

Zum Speichern:
Ist es möglich, automatisch den letzten Wert n-Impuls in den EEprom schreiben zu lassen? Also ohne betätigen einer Taste.

Gruß mario

PS: Frage hat sich erledigt, habe gerade den Absatz mit den Schreibzyklen gesehen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.11.2015, 20:21
Beitrag #7
RE: Suche Idee - Trapezgewindespindel Position finden
Es wäre auch möglich den Stand von "n-Impuls" automatisch in das EEPROM zu schreiben, wenn sich der Wert z.B. seit 5 Minuten nicht geändert hat.
Das hängt aber von der Anwendung ab, die ich nicht kenne.
Vielleicht findet sich auch ein anderes greifbares Kriterium.

Dann mal frohes "zu Papier bringen" Smile

Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.11.2015, 20:46
Beitrag #8
RE: Suche Idee - Trapezgewindespindel Position finden
Hallo

Ich würde beide Seiten per Endlagenschalter sichern.
Motoranschluss über je eine Diode, parallel zum Endschalter.
So ist in jedem Fall sichergestellt, das die Hardware nicht zu weit läuft.
Endschalter brauchen nicht am Arduino angeschlossen werden
(Endschalter erreicht = Motor hält = keine Pulse am Hallgeber)
Zwei Relais zum ein/aus/um -schalten des DC Motors
PWM+ Leistungsstufe (Transistoren, H-Bridge oder Schield) wäre eleganter, klar.

Programmierung:
Entweder ist es egal, wenn nach Stromausfall, erst ein Nullpunkt angefahren werden muss, oder man muss permanent die aktuelle Position speichern, was aufwendig wird.

Also Setup:
Anfahren eines Endschalters, bei erreichen POS=0;
Interrupt anlegen für den Hallsensor

Loop:
Soll > POS = Motor läuft hoch
Soll < POS = Motot läuft runter


Interrupt:
If hoch then POS = POS+1
If runter then POS = POS-1


Das war ein schmales Grundgerüst.
In dieser Form wird der Motor oft übers Ziel hinausgehen / zittern.
Um das präzise zu treffen braucht es wohl doch PWM.

Ein paar Taster noch um soll zu ändern...

Das sollte im Groben aber laufen.

Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Benötige Hilfe bei der Projektumsetzung - Dosierung durch Trapezgewindespindel MadMaetz 19 3.319 14.12.2015 18:54
Letzter Beitrag: Binatone
  Suche Hilfe: Arduino + Raspberry +RGB LED + Funk wuast94 7 2.567 13.08.2015 23:27
Letzter Beitrag: wuast94
  Berlin: suche Hilfe für Studentenprojekt Keith 18 3.787 28.02.2015 08:58
Letzter Beitrag: dqb312
Question Abschlussprüfungs-Idee Timeofsand 2 1.476 05.02.2015 07:34
Letzter Beitrag: alpenpower

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste