Archiv verlassen und diese Seite im Standarddesign anzeigen : Servo an C-Control [gelöst]
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
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
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
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
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.