-         

Ergebnis 1 bis 9 von 9

Thema: Servoanschluss an C-Control Unit

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    20.03.2007
    Beiträge
    10

    Servoanschluss an C-Control Unit

    Anzeige

    Hallo nochmal
    kann mir jemand sagen, wie ich ein Servo an der Unit 2.0 anschliesse.
    Das Servo hat ja 3 Kabel, plus, minus und Impuls. Welche Leitung schließe ich an welchen Stift auf der Unit an. Wo wird der Plus und wo wird der Minus an der Unit angeschlossen.
    Es gibt jede menge Programme, aber niemand kann mir sagen, wie ich die Servo dann an der Unit anstöpsle

    Für eine Darstellung wäre ich sehr dankbar!
    viele Grüße

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    29.01.2006
    Beiträge
    101
    Hallo (auch in diesem Thread)

    Zugegeben habe ich noch nie mit einem Servo gearbeitet, aber man kann die PWM ports der Unit (mit DA1 und DA2 bezeichnet) über die config Register in den Servo Mode schalten.

    Auszug aus dem CC manual:

    Das CONFIG MODULE
    Das Konfigurations-Register bietet folgende Optionen.
    Bit 0 Schaltet beide PWM-DACs in den SERVO-Mode
    Bit 1 Schaltet den Frequenzzähler 1 in den EREIGNISZÄHLER Mode
    Bit 2 Schaltet den Frequenzzähler 2 in den EREIGNISZÄHLER Mode
    Bit 3 Aktiviert die PULLUP-Widerstände an PORT 1 bis 8
    Bit 4 Aktiviert die PULLUP-Widerstände an PORT 9 bis 15
    Bit 5 Zeigt an wenn die interne Uhr mit DCF77 synchronisiert wurde
    Bit 6 Signalisiert einen Fehler bei der I2C-Kommunikation
    Bit 7 Zeigt den Zustand der Start-Taste

    Bit 0 dürfte für dich interessant sein

    Welche Umgebung nutzt du?

    Gruß
    Jörn

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    20.03.2007
    Beiträge
    10
    Hallo Jörn,
    vielen Dank für deine Antwort.
    Ich will die C-Control I in einen Modellhubschrauber einbauen. Mit Hilfe des Programmes will ich ein Geschütz drehen und heben lassen. Für die Dreh- und Heberichtung soll jeweils ein Servo zu Einsatz kommen.
    Ich habe mit C-Control erst angefangen und habe folgende Ausstattung.
    C-Control - I Schnittstellen und Progr,Modul 2.0 und eine C-Control 1 M2.0
    Als Programmierumgebung verwende ich die Workbench++
    Leider bringe ich nicht einmal ein einfaches LED-Blinkprogramm zu laufen, da ich nicht weiss, wie ich die Unit-M 2.0 versorgen soll. Ich habe gelesen, dass über den Port DA1 und DA2 direkt Servo (Impuls) angeschlossen werden kann.
    Aber auch ein testprogramm funktioniert nicht. Wenn ich in der Workbench++ dann den RUN Befehl absetze, wird zwar das Programm übertragen, allerdings funktioniert dann nichts.
    Was mache ich verkehrt?

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    29.01.2006
    Beiträge
    101
    Hallo

    Also da du das programm in die Unit laden kannst, hast du sie auch richtig versorgt. die M2 kannst du übrigends auf 2 arten versorgen:
    Entweder mit stabilen 5 V am 5V Eingang (Achtung wirklich satblie 5V, andernfalls ist die Unit hin) oder am 12 V Eingang mit 12V, der %V pin wird dann automatisch zum Ausgang. Der Regler auf der C-Control kann bis zu 100mA Strom ab.

    Am besten du postest mal dein Blink und Servo Programm, dann können wir uns den Sourcecode anschauen.

    Achja, du muss die C-Control natürlich auch starten, den Pin Start auf GND ziehn

    Gruß
    Jörn

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    20.03.2007
    Beiträge
    10
    Hallo Jörn,

    vielen Dank, dass du bereit bist, mir bei meinen Problem zu helfen.
    Kannst du mir sagen, wie ich den Pin Start auf GND ziehe?
    Hier das kleine Programm:
    '-----------------------------------------------------------------------
    ' THEMA: DA-PORTS ZUR ANSTEUERUNG VON Servos
    '
    '-----------------------------------------------------------------------
    ' Die Periode ist 20ms, also passend für Servos. Die Periode ist in 255 Schritte
    ' unterteilt, so dass ein Schritt etwa 78us dauert. Der Ansteuerpuls eines Servo
    ' hat einen festen Anteil von ca. 1ms und einen gleich grossen variablen Anteil.
    ' Eine DA Einstellung zwischen 12 (1ms) und 24 (2ms) liefer einen Einstellbereich
    ' vo 12 Stufen am Servo, was für viele Fälle ausreichend ist
    ' Das Programm fährt den DA1 durch den nutzbaren Servobereich
    '----------------------------------------------------------------------------------
    ' Stecken Sie bitte die Jumper JP2 und JP1 (auf Position 1-2)damit die Demo korrekt
    ' funktioniert.
    '-----------------------------------------------------------------------------------
    '--------------------------
    '------ I/O PORTS ---------
    '--------------------------
    define DAC1 da[1]
    '--------------------------
    '---- SYSTEM MEMORY -------
    '--------------------------
    define COUNTER byte[1]
    '--------------------------------------------------
    ' USING THE AD-CONVERTERS -
    '--------------------------------------------------
    #LOOP
    for COUNTER= 12 to 24
    DAC1=COUNTER
    pause 1
    next
    goto LOOP

    attributes

    end attributes

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    20.03.2007
    Beiträge
    10
    Hallo Leute,

    ich bin kurz vor dem Verzweifeln. Es will mir einfach nicht gelingen, einen Servo so anzusteuern, das er im kontrolliert durch Programmanweisung durch seinen Arbeitsbereich fährt. Sobald ich das Servo an den Port DA1 anschließe, fährt das Servo auf Anschlag und das wars. Die Stromversorgung (+ und -) für das Servo habe ich aus einer ext. Stromquelle.
    Vielleicht kann mir einer von Euch sagen, was ich verkehrt gemacht habe.
    Hier das Programm:
    ----------------------------------------------
    '--------------------------
    '------ I/O PORTS ---------
    '--------------------------
    define SERV1 da[1]
    '--------------------------
    '---- SYSTEM MEMORY -------
    '--------------------------
    define WERT1 byte[1]
    define COUNTER byte[1]

    goto MAIN
    '-------------------------------------------------
    '-- SERVO MODE AKTIVIEREN -
    '-------------------------------------------------
    FUNCTION SERVOMODE()
    CONFIG.INIT
    CONFIG.PUT 00000001b
    CONFIG.OFF
    END FUNCTION

    '-------------------------------------------------
    '-- DISPLAY DATA LOOP -
    '-------------------------------------------------
    #MAIN
    SERVOMODE()
    wert1 = 1
    '--------------------------------------------------
    ' USING THE AD-CONVERTERS -
    '--------------------------------------------------
    #LOOP


    for COUNTER= 12 to 24
    SERV1=COUNTER
    pause 25
    next

    goto LOOP

    attributes

    end attributes
    --------------------- Programmende -----------------------------------

    Einstweilen vielen Dank für Euere Hilfe

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    29.01.2006
    Beiträge
    101
    Hallo

    Wie bereits erwähnt von Servos verstehe ich leider nicht viel, deshalb kann ich dir über das program nicht viel sagen.
    Die Konfiguration scheint OK zu sein (Wofür die Variable wert1?)

    Die Unit startest du, indem du den PIN start (Bezeichnet mit ST) kurzeitig auf masse setzt, hast du eionen Schallwandler? Damit könnest du dann prüfen ob die Unit anläuft, oder du hängst noch eine LED rein

    define LED as port[1]

    Verfasst am: 25.03.2007, 13:13 Titel:

    --------------------------------------------------------------------------------

    Hallo Leute,

    ich bin kurz vor dem Verzweifeln. Es will mir einfach nicht gelingen, einen Servo so anzusteuern, das er im kontrolliert durch Programmanweisung durch seinen Arbeitsbereich fährt. Sobald ich das Servo an den Port DA1 anschließe, fährt das Servo auf Anschlag und das wars. Die Stromversorgung (+ und -) für das Servo habe ich aus einer ext. Stromquelle.
    Vielleicht kann mir einer von Euch sagen, was ich verkehrt gemacht habe.
    Hier das Programm:
    ----------------------------------------------
    '--------------------------
    '------ I/O PORTS ---------
    '--------------------------
    define SERV1 da[1]
    '--------------------------
    '---- SYSTEM MEMORY -------
    '--------------------------
    define WERT1 byte[1]
    define COUNTER byte[1]

    goto MAIN
    '-------------------------------------------------
    '-- SERVO MODE AKTIVIEREN -
    '-------------------------------------------------
    FUNCTION SERVOMODE()
    CONFIG.INIT
    CONFIG.PUT 00000001b
    CONFIG.OFF
    END FUNCTION

    '-------------------------------------------------
    '-- DISPLAY DATA LOOP -
    '-------------------------------------------------
    #MAIN
    SERVOMODE()
    wert1 = 1

    '---------------
    LED = ON
    ' oder beep 30,5,0
    '---------------

    ....


    Gruß
    Jörn

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    20.03.2007
    Beiträge
    10
    Hallo Jörn,

    ja, die Unit läuft. Ich habe einmal ein kleines Testprogramm geschrieben, mit dem man eine LED blinken lassen kann. Nach den Compilieren, der Übertragung und anschließend des Setzen der Autostartjumpers läuft dieses Programm - Das heißt, das die Unit funktioniert.
    Leider nicht mit der Ansteuerung der Servos.

    Der Wert1 ist nur von einen Test über geblieben und hat weiter keine Bedeutung.

    mfg
    karlheinz

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    29.01.2006
    Beiträge
    101
    Gut freut mich, dass die Unit soweit anläuft. Was die Servos angeht, da kann ich dir leider nicht weiterhelfen, habe selbst nur Steppermotoren, sonst würd ich hier einen Testaufbau machen
    Tut mir leid...

    Gruß
    Jörn

Berechtigungen

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