PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Servo an C-Control [gelöst]



Normalo
23.12.2008, 21:27
Ich habe mir gestern die C-Control I samt Applikationsboard geholt und einige Beispielprogramme getestet. Heute kam ein Servo dazu, den ich jetzt gerne betreiben möchte. Ich verstehe nur nicht, wie ich ihn mit dem Controller zusammenbringe.

Der Servo ist ein Modelcraft Digi Line, was sich nach einer Digitalvariante anhört, und hat einen dreiadrigen Stecker. Im Controller steckt die Main Unit 2.0.

Nach einiger Recherche vermute ich, dass ich die Signalleitung vom Servo direkt an einen der Ports der Main Unit anschließen kann. Die anderen beiden Leitungen sind dann wohl für die Spannungsversorgung Masse und Plus, die ich mit einem externen Netzgerät mit 6V versorge.

Ist das korrekt oder mag mir jemand ein bisschen Hilfestellung geben?

Wie muss eigentlich die Polung der Spannungsversorgung sein? Hier steht nichts von -/+. Ist das egal, oder dreht er sich beim Umpolen einfach nur in die andere Richtung? Dieser Seite nach hat mein Motor den rechten Stecker auf der Grafik: https://www.roboternetz.de/wissen/index.php/Servos

AndyTrendy
23.12.2008, 22:11
Hallo

Du musst zuerst die DA Ports in den s.g Servo-Mode umschalten.
Hier mal ein Bsp Programm.

http://www.spiketronics.com/downloads/m20_servo_p4p5.zip

Normalo
23.12.2008, 22:47
Danke Andy. Heißt das, ich kann nur zwei Servos betreiben, da nur zwei DA-Ports vorhanden sind? Und wie sieht's denn mit dem Anschluss aus, also wie muss ich den Servo mit dem Controller verbinden?

AndyTrendy
25.12.2008, 23:31
Hallo

Also um eins vorweg zu nehmen ich kenne mich nicht besonders gut mit der 2.0 Version aus.
Was ich dir aber sagen kann ist das du die Steuerleitung an den Port anschlisen musst.Du solltest auch darauf achten eine andere Spannungsquelle zu verwenden als die der CC.
Und natürlich die Gnd verbinden.

Versuchs einfach mal so wie ich gesagt habe und mit meinem Programm.
Falls das alles nicht hilft kann ich dir dieses Forum hier sehr empfehlen.

http://ccintern.dharlos.de/forum/forum.php

Normalo
26.12.2008, 11:36
Hey, Andy. Ich hab's nun geschaffft. Leider finde ich im Netz keine bebilderte Anleitung für Anfänger, die sich das erste Mal mit diesen Teilen beschäftigen.

Ich hab mir mal folgenden Code zusammengeschustert:

'--------------------------
'------ I/O PORTS ---------
'--------------------------
define servo1 da[1]
'-------------------------------------------------
'-- SERVO MODE AKTIVIEREN -
'-------------------------------------------------
function switchServoMode(pOn as Bit)
Config.Init
if pOn then
Config.Put 00000001b
else
Config.Put 00000000b
end if
Config.Off
end function

'-------------------------------------------------
'-- Servos ansteuern -
'-------------------------------------------------
switchServoMode(true) 'Servomode einschalten
servo1 = 0
pause 50
define i as byte
define servoMin as byte, servoMax as byte, delay as Temperature
servoMin = 0
servoMax = 255
delay = 0
do
for i = servoMin to servoMax
servo1 = i
pause delay
next i
if delay = 0 then pause 25
for i = servoMax to servoMin
servo1 = i
pause delay
next i
if delay = 0 then pause 25
loop

Da der Typ "Temperature" der einzige mit Kommastellen ist, habe ich ihn für die Pausenzeiten verwendet. Leider scheint "pause" eine Ganzzahl zu erwarten, denn auch ein "0.5" verhält sich wie ein "1".

Suggarman
30.12.2008, 11:29
Hallo,
eine Pause ist immer 20 ms lang und nur ganzzahlig.
Es gibt für die Unit 2.0 einen Systemtreiber um 2 weitere, insgesamt also 4 Servos zu betreiben. Sollen es noch mehr Servos werden muß ein separater Servocontroller her (Stichwort SD20 z.B.)

mfg

Stefan

Driona
12.04.2009, 12:01
Systemtreiber ? 4 Servos ? Hört sich interessant an.......
Erzähl mal mehr davon, hab ich noch nix von gehört....

Ich hab auch mal einen Analog-Eingang genommen, und damit einen Servo gesteuert.


define Pot1 AD[1] 'Analogport 1
define Pot2 AD[2] 'Analogport 2
define Servo1 DA[1] 'Servo 1
define Servo2 DA[2] 'Servo 2

define Licht Port[16] 'Port 16 (Displaybeleuchtung)

define tconfig byte 'Config als Byte

with config
.init
.get tconfig
tconfig = tconfig or 00000001b
.put tconfig
.off
end with

#start
Licht=off 'Licht AN

lcd.init 'LCD-Anzeige
lcd.clear
lcd.pos 1, 1 'Zeile 1, Position 1
lcd.print "Servo 1 = " & Pot1 'Anzeigen von Wert Servo 1
lcd.pos 2, 1 'Zeile 2, Position 1
lcd.print "Servo 2 = " & Pot2 'Anzeigen von Wert Servo 2
lcd.off

Servo1 = Pot1 'Servo 1 = Poti 1
Servo2 = Pot2 'Servo 2 = Poti 2

goto start

Für verbesserungen bin ich jederzeit dankbar.

Robotniks
12.04.2009, 22:07
Hi,

die C-Control Pro kann bis zu 18 Servos, viel. wär das was.

Grüße

jüegen15
14.04.2009, 15:34
Hallo Normalo

kannst du mit deinem C-Control dein Servo ansteuern? Mit dem C-C ist das nach meiner meinung ohne Triks nicht möglich

Robotniks
14.04.2009, 21:56
Hi,

die neue IDE Version untersützt diverse neue sachen, wie auch
Servos. Schau mal unter der Beta nach.

Grüße Ulli

jüegen15
15.04.2009, 00:33
Dann ist es OK

ich hätte sonst einen Link für dich gehabt für C-C M-Unit und ältere CC
Gruß
Jürgen

Suggarman
16.04.2009, 13:04
Ihr schmeißt hier viele C-Controls durcheinander....
Ich glaube, die alten C-Controls können Servos nicht in Basic ansteuern.
Die aktuelle Version "C-Control 1 Unit 2.0" kann 2 Servos direkt und 2 weitere mittels Systemtreiber ansteuern. Die C-Control pro ist ein komplett anderes System und hat außer dem Namen nichts gemeinsam.

Systemtreiber unter: http://www.spiketronics.com/index2.html

mfg

Stefan

jüegen15
16.04.2009, 16:04
Hi Suggarman

Ok dann habe ich das verwechselt :-$

ich selber bin noch Anfänger was CPU´s angeht ich war der Meinung es handelt sich um die C-Controls ( alte Generation ), in Basic lassen sich die alten CC auch für Servoansteuerungen verwenden „ über Umwegen „ ohne viel Aufwand ich habe noch die M-Unit und das ging gut. Ich habe jetzt zwei Atmega32 und den RN-Mini bekommen und werde mich damit mal beschäftigen :?: :?:

Gruß Jürgen