PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Servo mit Minicontrol steuern



Scarabol
24.10.2009, 20:26
Nabend,

gibt es ein Beispiel wie ich mit dem Minicontrol einen der fertigen Servo Steckplätze benutze?

MfG
Scarabol

KingTobi
24.10.2009, 20:35
C oder Basic?
http://www.rn-wissen.de/index.php/Servo

Scarabol
24.10.2009, 21:01
Ich verwende Bascom als denke ich wohl das es Basic ist.

Hier ist mein Programm:


$regfile = "m168def.dat"
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
$hwstack = 32
$framesize = 32
$swstack = 32

Dim Center11 As Byte
Dim Center21 As Byte
Dim Pos11 As Byte
Dim Pos21 As Byte
Center11 = 105
Pos11 = 5
Center21 = 125
Pos21 = 20

'Servo config
Config Servos = 1 , Servo1 = Portc.1 , Reload = 10
Config Portc = Output


'finally we must turn on the global interrupt

Enable Interrupts

'ende Servo config

Do
' Print "center"
' Servo(1) = Center11
' Waitms 1000
Print "pos1"
Servo(1) = Pos11
Wait 1000
' Print "center"
' Servo(1) = Center11
' Wait 1000
Print "pos2"
Servo(1) = Pos21
Wait 1000
Loop

Allerdings fährt das Servo in Endlage und zittert dann nur noch...

MfG
Scarabol

KingTobi
24.10.2009, 21:06
Ja das ist oft so das Servos in Endlage egal ob links oder rechts rum zittern.
Fahr einfach bis kurz vor die Endlage.

Scarabol
24.10.2009, 21:08
Wozu ist das Enable Interrupts?

MfG
Scarabol

KingTobi
24.10.2009, 21:11
Ich kenn mich mit Bascom nicht aus, aber eventuell muss es an der Stelle eingeschaltet werden, damit ein Timer gestartet wird über den die Signallänge erzeugt wird

Scarabol
24.10.2009, 21:17
Danke für die schnelle Hilfe, mein Servo funktioniert jetzt.

Hier nochmal mein Programm:


$regfile = "m168def.dat"
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
$hwstack = 32
$framesize = 32
$swstack = 32

Dim Center11 As Byte
Dim Center21 As Byte
Dim Pos11 As Byte
Dim Pos21 As Byte
Center11 = 20
Pos11 = 50
Center21 = 210
Pos21 = 190

'Servo config
Config Servos = 1 , Servo1 = Portc.1 , Reload = 10
Config Portc = Output


'finally we must turn on the global interrupt

Enable Interrupts

'ende Servo config

Do
' Print "center"
' Servo(1) = Center11
' Waitms 1000
Print "pos1"
Servo(1) = Pos11
Waitms 1000
' Print "center"
' Servo(1) = Center11
' Wait 1000
Print "pos2"
Servo(1) = Pos21
Waitms 1000
Loop

Als Servo verwende ich das "TOP-LINE STANDARD SERVO RS 2 JR" von conrad.de

Bei dem Servo ist:
orange = Port / Signal
rot = 5V
schwarz = GND

MfG
Scarabol

Suggarman
26.10.2009, 14:54
Versuche anstatt 20,50 und 210 mal 80, 100 und 120.
Mit meinem RN-Mega2560 bin ich bei deinen Werten voll am Anschlag.

mfg

Stefan

Scarabol
29.05.2010, 12:53
Hi,

kann ich die Servos auch ohne Enable Interupts ansteuern?

Ich benutze gleichzeitig eine serielle Verbindung um die Positionen für das Servo zu übermitteln, aber irgendwie kommen die sich wohl in die Quere...

MfG
Scarabol