BlackBroom
27.04.2007, 18:27
Hallo
Ich habe das RN-Control 128 Funkboard, daran habe ich ein Servoboard. Dieses ist über I2C angeschlossen. Am Servoboard habe ich ein Kontronik Jazz 55-6-18 Drehzahlsteller. Wenn ich diesen an ein normales RC Empfänger anschliesse und dann per Fernsteuerung ihn ansteuere läuft dieser. Über das Servoboard läuft er aber nicht.
Richtig angeschlossen ist alles. Über ein C-Control 2 habe ich den Drehzahlsteller schon einmal angesteuert aber über den PLM Anschluss.
Ich benutze folgenden Code:
'################################################# ##
'microservoboard.bas
'für
'RoboterNetz Board RN-CONTROL ab Version 1.1
'und das Micro Servo Board
'Aufgabe:
' Dieses Testprogramm bewegt ein Servo das am Anschluss SERVO7
' des Micro Servo Board steckt, hin und her.
' Der Jumper am Servoboard muss gesteckt sein, da der MINI SSC MODE
' zur Ansteuerung von Servos genutzt wird
'Autor: Frank
'Weitere Beispiele und Beschreibung der Hardware
'unter http://www.Roboternetz.de oder robotikhardware.de
'################################################# ######
$regfile = "m128def.dat" ' Bei Mega 128 "
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000 'Quarzfrequenz
$baud = 19200 'Baudrate für Funkmodul
$baud1 = 9600
Sound Portg.2 , 400 , 450
Sound Portg.2 , 400 , 250
Sound Portg.2 , 400 , 450
Dim Servonummer As Byte
Dim Servodevice As Byte
Dim Servocommand As Byte
Dim Servodata1 As Byte
Dim Servodata2 As Byte
Dim Servodrehbereich As Byte
'Erweiterter Drehbereich des Servos
Servodevice = 1 'Jedes Servoboard hat eine Device-Nummer
Servonummer = 7 'Servonummer 0 bis 7
Servocommand = 0 'Befehl: Setze verschiedene Parameter (siehe Doku)
Servodrehbereich = 255 'Servo Drehbereich 0 bis 31 (Vorgabe 15)
Servodata1 = &B01000000 Or Servodrehbereich 'Richtung, Servo Drehbereich etc. festlegen
Print Chr(128) ; Chr(servodevice) ; Chr(servocommand) ; Chr(servonummer) ; Chr(servodata1)
'Hier wird die Position in Bytes angegeben, das High Bit wird im ersten Databyte (Bit0)übertragen
Servodevice = 1 'Jedes Servoboard hat eine Device-Nummer
Servonummer = 7 'Servonummer 0 bis 7
Servocommand = 3 'Befehl: Setze Position (0 - 256 in 2 Byte)
Servodata1 = 1 'Position High (Bit0 = Bit8 der Position)
Servodata2 = 254 'Position Low Bit0 bis 7
Print Chr(128) ; Chr(servodevice) ; Chr(servocommand) ; Chr(servonummer) ; Chr(servodata1) ; Chr(servodata2)
End
Er ist auch richtig am servo7 Anschluss des Servoboards. Woran könnte das liegen? Brauche dringend Hilfe!
Ich habe das RN-Control 128 Funkboard, daran habe ich ein Servoboard. Dieses ist über I2C angeschlossen. Am Servoboard habe ich ein Kontronik Jazz 55-6-18 Drehzahlsteller. Wenn ich diesen an ein normales RC Empfänger anschliesse und dann per Fernsteuerung ihn ansteuere läuft dieser. Über das Servoboard läuft er aber nicht.
Richtig angeschlossen ist alles. Über ein C-Control 2 habe ich den Drehzahlsteller schon einmal angesteuert aber über den PLM Anschluss.
Ich benutze folgenden Code:
'################################################# ##
'microservoboard.bas
'für
'RoboterNetz Board RN-CONTROL ab Version 1.1
'und das Micro Servo Board
'Aufgabe:
' Dieses Testprogramm bewegt ein Servo das am Anschluss SERVO7
' des Micro Servo Board steckt, hin und her.
' Der Jumper am Servoboard muss gesteckt sein, da der MINI SSC MODE
' zur Ansteuerung von Servos genutzt wird
'Autor: Frank
'Weitere Beispiele und Beschreibung der Hardware
'unter http://www.Roboternetz.de oder robotikhardware.de
'################################################# ######
$regfile = "m128def.dat" ' Bei Mega 128 "
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000 'Quarzfrequenz
$baud = 19200 'Baudrate für Funkmodul
$baud1 = 9600
Sound Portg.2 , 400 , 450
Sound Portg.2 , 400 , 250
Sound Portg.2 , 400 , 450
Dim Servonummer As Byte
Dim Servodevice As Byte
Dim Servocommand As Byte
Dim Servodata1 As Byte
Dim Servodata2 As Byte
Dim Servodrehbereich As Byte
'Erweiterter Drehbereich des Servos
Servodevice = 1 'Jedes Servoboard hat eine Device-Nummer
Servonummer = 7 'Servonummer 0 bis 7
Servocommand = 0 'Befehl: Setze verschiedene Parameter (siehe Doku)
Servodrehbereich = 255 'Servo Drehbereich 0 bis 31 (Vorgabe 15)
Servodata1 = &B01000000 Or Servodrehbereich 'Richtung, Servo Drehbereich etc. festlegen
Print Chr(128) ; Chr(servodevice) ; Chr(servocommand) ; Chr(servonummer) ; Chr(servodata1)
'Hier wird die Position in Bytes angegeben, das High Bit wird im ersten Databyte (Bit0)übertragen
Servodevice = 1 'Jedes Servoboard hat eine Device-Nummer
Servonummer = 7 'Servonummer 0 bis 7
Servocommand = 3 'Befehl: Setze Position (0 - 256 in 2 Byte)
Servodata1 = 1 'Position High (Bit0 = Bit8 der Position)
Servodata2 = 254 'Position Low Bit0 bis 7
Print Chr(128) ; Chr(servodevice) ; Chr(servocommand) ; Chr(servonummer) ; Chr(servodata1) ; Chr(servodata2)
End
Er ist auch richtig am servo7 Anschluss des Servoboards. Woran könnte das liegen? Brauche dringend Hilfe!