- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 3 von 3

Thema: Ansteuern über I2C

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.02.2004
    Beiträge
    131

    Ansteuern über I2C

    Anzeige

    LiFePo4 Akku selber bauen - Video
    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:

    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!

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.02.2007
    Beiträge
    210
    ist die masse des frehzahlstellers mit dem board verbunden

    ansonsten kann das signal nicht durchkommen

    wenn du einen oszilografen bei der hand hast kanst du auch das servo signal
    am port überprüfen ob da auch was ankommt
    sollte zwischen 0.5 und 2.5ms liegen mit minimum 10ms zum nächsten signal

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    24.07.2005
    Ort
    18km südl. Lutherstadt Wittenberg
    Alter
    47
    Beiträge
    142
    Zitat Zitat von magic33
    sollte zwischen 0.5 und 2.5ms liegen mit minimum 10ms zum nächsten signal
    Hi,

    Ich weiß nicht, was für Servos du benutzt, aber die die ich verwende brauchen eine PWM bei der die Impulsdauer zwischen 1,0 und 2,0ms liegt (1,5ms ist Mittelstellung), und einer Pause von normalerweise 20ms. Aber die Pause kann man auch verkürzen - ja bis zu 10ms. (verlängern der Pause geht zwar auch, aber das kostet Genauigkeit und Stellkraft.

    Grüße Dani.
    MfG Dani.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen