-
        

Ergebnis 1 bis 5 von 5

Thema: RN-Control I2C Servozucken!

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Dennis2006
    Registriert seit
    12.01.2006
    Beiträge
    166

    RN-Control I2C Servozucken!

    Anzeige

    Hi!

    Ich habe das RN-Control 1.4 und dazu ein Servoboard Anx-S20 über den I2C Port verbunden.

    http://www.roboternetz.de/wissen/index.php/RN-Control
    http://www.autonomics.de/pd1123341209.htm?categoryId=1

    Die Boards und die Servos werden über einen zweizelligen Lipo Akku versorgt.

    Schaltet man nun die Versorgungsspannung ein, so fahren die Servos willkürlich in eine Position und bleiben dort stehen!

    Entfernt man nun das I2C Kabel so passiert dies nicht mehr!

    Ich habe auch schon versucht eine seperate Logikspannung anzulegen. Jedoch blieb das Problem bestehen.

    Nun bei der Ansteuerung spreche ich immer nur ein Servo an welches die Position wechseln soll immer wieder von Position 80 auf 180...

    Die anderen Servos bekommen keine Befehle, zumindest nicht vom Programm her!

    Habt ihr eine Idee wie ich das Problem lösen kann?

    Danke!

    Gruß

    Dennis

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Dennis2006
    Registriert seit
    12.01.2006
    Beiträge
    166
    Hi!

    Hier noch mein Programmcode:

    Code:
    $regfile = "m32def.dat"                                     'Die Anweisung bestimmt Ccntrollertyp, hier AVR Mega 32
    $crystal = 16000000
    
    $baud = 9600
    
    ' I2C SETUP
    Config Scl = Portc.0
    Config Sda = Portc.1
    Config Twi = 100000
    
    'LED AUS
    Config Portc.2 = Output
    Config Portc.3 = Output
    
    Portc.2 = 0
    Portc.3 = 0
    
    ' CONSTANTS                                                   'Anx-S20 Board Slave Adresse
    Const Anx = &HC2
    
    ' FUNCTIONS
    Declare Sub Anxwrite(byval Servo As Byte , Byval Pos As Byte)
    
    Call Anxwrite(4 , 80)
    Wait 2
    Call Anxwrite(4 , 180)
    Wait 2
    
    
    Print "Kopf rechts - links.."
    
    
    I2cinit
    'Startet den I2C Bus
    
    Sub Anxwrite(servo As Byte , Pos As Byte)
       I2cstart
       I2cwbyte Anx
       Servo = Servo + 62
       I2cwbyte Servo                                           ' 8-Bit Register ab Reg. 63
       I2cwbyte Pos
       I2cstop
       Waitms 10
    End Sub

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hi,

    ist das das ganze Programm ?
    Auf jeden Fall, denke ich, ist es besser den I2Cinit vor dem ersten schreiben auf I2C zu machen, und nicht am Programmende.

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.03.2004
    Ort
    Aachen
    Beiträge
    478
    Hi,
    ein 2zeller lipo hat 6-8.4V was idr zu viel ist für Servos(4.8-6v).

    vg

    inv

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Dennis2006
    Registriert seit
    12.01.2006
    Beiträge
    166
    Hi!

    Nee ich habe einen Spannungsregler dazwischen:

    http://www1.conrad.de/scripts/wgate/...max_results=10

    Artikel-Nr.: 230330 - 62

    Der regelt auf 6 V runter...

    Gruß

    Dennis

Berechtigungen

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