PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Servoanschluss an C-Control Unit



karlheinzk
23.03.2007, 18:05
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

Jörn Arne
24.03.2007, 12:46
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

karlheinzk
24.03.2007, 20:15
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?

Jörn Arne
24.03.2007, 21:48
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

karlheinzk
24.03.2007, 22:07
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

karlheinzk
25.03.2007, 13:13
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

Jörn Arne
25.03.2007, 14:00
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

karlheinzk
25.03.2007, 15:04
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

Jörn Arne
25.03.2007, 15:37
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