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 

Servomotor steuern mit Ni my DaQ



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

19.05.2014, 12:16
Beitrag #7

Hydrogencarbonat Offline
LVF-User
**


Beiträge: 187
Registriert seit: Apr 2014

2013,2014
2014
DE

XXXXX
Deutschland
RE: Servomotor steuern mit Ni my DaQ
Hi again,
ich habe leider kein Datenblatt, da es sich um ein altes Model handelt und ich nach langer Suche nichts im Internet gefunden habe.
Es ist ein Modelcraft S-12 Servomotor.

Ich kann mit der Software Ni Elvis ein Funktionsgenerator auswählen und den Servo über Nidaq-Karte angesteuern und der Motor steuert mit meinen Werten( oben im Beitrag genannt) bei einem Duty- Cycle von 2- 13 Rückwärts und Vorwärts.

Ich weiss nicht was ich falsch mache, ich habe zwar eine Steuerung mit LV erstellt und kann in einer Richtung jeden Winkel anfahren, jedoch ist ein Schritt von 95 auf 96 Duty Cycle ja nicht der Normalfall und ich musste es wie folgt prgrammieren, da ich auf keine andere Lösung kam.

Also habe ich den einem Vorwärts- Schritt mit 2 case-schleifen erstellt und an den Duty Eingang meines LV Baustein, in dem ich das Signal erzeuge , angeshlossen.

Im Case 1: Fall1(True) erstellt ein Zahlengenerator immer 1sen und nullen gibt die diese Werte an den Eingang des case1, damit ich Dauerhaft einen Schrit fahren kann, wenn Case 1 True ist. Bei false passiert nichts

Im Case 2:Fall 1(True): 95+1, (False)Fall 2: 96-1. Hier regel ich wie eben Beschrieben den einen Schritt.

An den Eingang vom case 1 ist dann wieder ein case angeschlossen, bei dem ich mit einem selbgebauten Zälher zb. bei Schritt 90 grad in der case-Schleife 23 Schritte hochzähle und dabei eine 1 ausgäbe, sodass diese 1 in den Case 1 gelangt und fall True aufruft.
Ist er runtergezählt so bekommt der case 1 eine 0 und nicht passiert, der Motor hält die Position von 90 grad.

Das habe ich dann in 5 grad schritten realisiert und den Eingang diese Zähler case an ein Bedienellement regler angeschlossen und kann bei einer Skala von 0-180 die 36 Positionen wunderbar anfahren.

Jedoch ist die Frage , wie realisiere ich die Steuerung in die andere Richtung, wenn der Motor nur bei 95 auf 96 Dutx Cycle einen Schritt in eine bestimmte Richtung macht?


---------------------------------------------------------------------------------------------------------------------------------------
Vlt. muss ein neuer Lösungsansatz her und ich mache etwa falsch!!!!!!!!
Oder ist mein Rechtecksignal falsch ?
---------------------------------------------------------------------------------------------------------------------------------------
Im Normalfall erstellt man doch ein Signal von Länge 20 ms und bei 1- 2ms ist entweder der High oder Lowpegel erreicht.
Die Impulsdauer in der ersten Phase eines Servosignals ist zwischen 1ms und 2ms lang. Wobei das jeweils die Endstellungen des Servos sind, an denen es noch nicht mechanisch begrenzt wird. Eine Pulslänge von 1.5ms wäre dann Servomittelstellung. Für die Positionsauswertung des Servos haben die 20ms Wiederholdauer keine besondere Bedeutung, sieht man einmal davon ab, dass ein Servo bei kürzeren Zeiten entsprechend öfter Positionsimpulse bekommt und daher auch öfter die Position gegebenenfalls korrigiert, was möglicherweise in einem etwas höheren Stromverbrauch resultiert.

Und dieses Siganl verändert man dann mit dem Duty Cycle

Muss ich mir vlt. einen PID-Regler mit Ist und Sollwert bauen.ALso den Istwert mit der Servoposition und den Sollwert der Position.

Ist es denn möglich das ich das mit nidaq read (Istwert) und nidaq write (Sollwert) realisiere?

Geht das überhaupt?
Da ich eine externe Stromquelle,Netzteil 5v verwende und ich nicht für + und - die vorhandenen vorhandenen analogports der nidaq.Karteverwende, da ansonsten der Stromverbrauch zu gross wird und ein Fehler im programm angezeigt wird.

Soll ich den Spannungsverlust eventuell mit einem Kondensator ausgleichen?

Ich hoffe mir kann geholfrn werden und ich habe es einigermassen verständlich geschrieben.

MFG HC
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Nachrichten in diesem Thema
RE: Servomotor steuern mit Ni my DaQ - Hydrogencarbonat - 19.05.2014 12:16

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Servomotor regeln johnnyP 1 4.828 25.01.2011 16:31
Letzter Beitrag: RHeil

Gehe zu: