-         

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 33

Thema: Modelcraft Servos gehen nicht an M32

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.01.2010
    Ort
    Bielefeld
    Beiträge
    101

    Modelcraft Servos gehen nicht an M32

    Anzeige

    Hallo,

    Ich habe mir 2 neue Servos (Modelcraft vsd 5e hs) geholt und sie angebaut.
    hatte vorher auch 2 dran die aber kaputt gegangen sind. nun reagieren sie nicht einmal obwohl die alten so funktioniert haben. woran kann es liegen?

    Danke schonmal

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    Das sind DIGITALE Servos. Wahrscheinlich hattest du vorher "normale" analoge Servos.
    Gruß
    Dirk

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.01.2010
    Ort
    Bielefeld
    Beiträge
    101
    das voher waren auch digitale Servos wie diese. sie müssen doch digital sein um sie per I/O (zb. PC6) anzusteuern?

    also eingebaut sind sie richtig wenn ich mit dem finger auf den kontakten rumstreiche reagieren diese auch. weis einfach nicht woran es liegen kann.

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    Die normalen Servos werden alle 20ms mit einem Impuls von 1..2ms angesteuert.
    Die "digitalen" Servos müßten eigentlich so auch funktionieren, arbeiten aber auch mit Impulsen alle 3..4ms (bis sogar 0,4ms).

    Meist verbrauchen die digitalen Servos mehr Strom als die normalen.
    Bist du sicher, dass du die Signalleitung richtig an den µC-Pin gelegt hast (mögliche andere Steckerbelegung als bei deinen alten Servos)?
    Gruß
    Dirk

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.01.2010
    Ort
    Bielefeld
    Beiträge
    101
    Ja das wusste ich soweit muss mal einen anderen Ausgang probieren. Also du meinst denn ich sie mit einer höheren Frequenz ansteuer dann müsste es gehen? Mal seh'n aber die Servos sind doch richtig oder?

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    Mit welchem Programm steuerst du denn die Servos an?
    Eigentlich müßten die Digitalservos auch mit konventioneller Ansteuerung funktionieren.
    Die Servos sind schon ok.
    Gruß
    Dirk

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.01.2010
    Ort
    Bielefeld
    Beiträge
    101
    Ich steuere sie halt über das m32 modul und programmers notepad:

    void servo1(int pos)//rechter Servo
    {
    PORTC |= IO_PC4;
    sleep(pos);
    PORTC &= ~IO_PC4;
    sleep(200-pos);
    }

    void servo2(int pos)//linker Servo
    {
    PORTC |= IO_PC6;
    sleep(pos);
    PORTC &= ~IO_PC6;
    sleep(200-pos);
    }

    und aufrufen in main:

    for(x=3;x<25;x++)
    {
    servo1(x);
    servo2(x);
    setCursorPosLCD(1,5);
    writeIntegerLCD(x, DEC);
    mSleep(350);
    clearLCD();
    }

    so hat es vorher ja auch immer funktioniert.

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    Für die normalen Servos war ja sleep(200-pos) für die ~20ms Pause (18..19ms) zwischen den Impulsen gedacht.
    Deine digitalen Servos schaffen auch (100-pos), (50-pos) und (10-pos) und sollten keine längeren Pausen haben.

    Das ist also vielleicht das erste Hauptproblem (wenn der elektrische Anschluss stimmt!):
    Deine Pause zwischen den Servo-Impulse wird durch ...
    setCursorPosLCD(1,5);
    writeIntegerLCD(x, DEC);
    mSleep(350);
    clearLCD();
    ... extrem verlängert,- möglicherweise kommen die digitalen Servos damit nicht klar.

    Vorschläge:
    1. Ich würde mal den ganzen Anzeigekram probeweise rausnehmen.
    2. Auch dann werden noch die 2 Servofunktionen nacheinander abgearbeitet, so dass sich der Impuls + Pause des einen Servos zu der Pause des jeweils anderen Servos dazu addiert (2. Hauptproblem). Also haben deine Servos jetzt (ohne Anzeigezeugs) noch eine Pause nach jedem Impuls von [18-19ms eigene Pause + Impuls des anderen Servos + dessen Pause (18-19ms)]. Das müßtest du so umschreiben, dass JEDES Servo MINDESTENS alle 20ms (besser alle 5-10ms) einen eigenen Impuls bekommt.
    3. In der x-Schleife gibt es viel zu wenig Zeit für die Positionsänderung: Gib den Servos pro Position mindestens 5-10 Impulse in der jeweiligen Stellung.
    Gruß
    Dirk

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.01.2010
    Ort
    Bielefeld
    Beiträge
    101
    So habe deine aussagen umgesetzt.
    habe die zeiten ausprobiert mit niedrigeren sleep zeiten aber eine frage wenn ich 10-pos mache soll ich dann trotzdem pos mit zb. 20 anfahren?
    zu 1: kein unterschied.
    zu 2 und 3: wenn ich in der schleife servo1(x); aufrufe habe ich die funktion so abgeändert:
    void servo1(int pos)//rechter Servo
    {
    PORTC |= IO_PC4;
    sleep(pos);
    PORTC &= ~IO_PC4;
    sleep(50-pos);
    PORTC |= IO_PC4;
    sleep(pos);
    PORTC &= ~IO_PC4;
    sleep(50-pos);
    PORTC |= IO_PC4;
    sleep(pos);
    PORTC &= ~IO_PC4;
    sleep(50-pos);
    PORTC |= IO_PC4;
    sleep(pos);
    PORTC &= ~IO_PC4;
    sleep(50-pos);
    PORTC |= IO_PC4;
    sleep(pos);
    PORTC &= ~IO_PC4;
    sleep(50-pos);
    }

    so werden mehrere signale ausgeführt und ohne unterbrechung hintereinander abgerufen.

    wenn ich mit dem finger auf der unterseite an den kontakten herstreiche (an den I/O ports) erreiche ich ab und zu ein drehn der servos. also muss die verbindung bis auf die m32 platine gut sein.

    - - - Aktualisiert - - -

    ist es vllt möglich ob die I/O ports kaputt gegangen sind? muss mal einen anderen probieren. ist das denn möglich?

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    copcom-weber:
    ... muss mal einen anderen probieren. ist das denn möglich?
    Ja, es gibt auf der M32 die freien Portpins PC2..PC7. Sie heissen IO_PC2..IO_PC7. Da kannst du einen nehmen für den IO_PC4.
    Alle Pins findest du ja am IO-Stecker.
    Gruß
    Dirk

Seite 1 von 4 123 ... LetzteLetzte

Ähnliche Themen

  1. RP6Control M32: Library für 8 Servos
    Von Dirk im Forum Robby RP6
    Antworten: 84
    Letzter Beitrag: 12.02.2013, 22:17
  2. [ERLEDIGT] Servo Modelcraft Standard-Servo RS 2 an M32-Board
    Von dirty_bird_981 im Forum Robby RP6
    Antworten: 29
    Letzter Beitrag: 07.02.2012, 17:19
  3. [ERLEDIGT] Ansteuerung mehrerer Servos mit M32
    Von Ingo1988 im Forum Robby RP6
    Antworten: 9
    Letzter Beitrag: 14.08.2011, 18:32
  4. Fototransistoren gehen nicht.
    Von eleto im Forum Asuro
    Antworten: 2
    Letzter Beitrag: 22.10.2008, 10:51
  5. 2 Servos mit Bascom - gehen nicht richtig
    Von Jon im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 18
    Letzter Beitrag: 11.07.2006, 14:49

Berechtigungen

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