PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zu Servo anssteuerung von Dirk frage



Christian3
10.06.2009, 16:43
Hallo,
Ich habe Fragen zu der Servo ansteuerung von Dirk :
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=45223&highlight=servo
Ich will den servo nach ganz rechts und dann nach link drehen und dann auf eine besimte position wo er dan stehen bleiben soll ich hab aber ihrgent wie ned verstanden wie das gehen soll
könnt ihr mir dabei helfen
seine Demo:

// Uncommented Version of RP6ControlServo.c
// written by Dirk
// ------------------------------------------------------------------------------------------

#include "RP6ControlServoLib.h"

uint16_t pos = 0;

int main(void)
{
initRP6Control();

initLCD();

showScreenLCD("################", "################");
mSleep(1500);
showScreenLCD("<<RP6 Control>>", "<<LC - DISPLAY>>");
mSleep(2500);
showScreenLCD(" Servo - Test 1 ", " Version 1.00 ");
mSleep(2500);
clearLCD();

setLEDs(0b111111);
mSleep(500);
setLEDs(0b000000);

initSERVO(SERVO1 | SERVO2);

startStopwatch2();

while(true)
{

if (getStopwatch2() > 48) {
servo1_position = pos;
servo2_position = pos;
setCursorPosLCD(0, 0);
writeStringLCD_P("Servopos.: ");
writeIntegerLCD(pos, DEC);
writeStringLCD_P(" ");

pos++;
if (pos > RIGHT_TOUCH) {pos = 0;}
setStopwatch2(0);
}

task_SERVO();

mSleep(3);
}
return 0;
}

topgunfb
16.06.2009, 12:31
Hi,

du musst die maximalen Anschläge des Servos in der RP6ConrtolServoLib.h manuell einstellen. (Musst ausprobieren, wann dein Servo an den Anschlägen ist, indem du die Werte mal maßgeblich änderst)

Wenn du nur ein Servo betreiben willst, dann würd ich bei:
initSERVO(SERVO1 | SERVO2);
das zweite Servo rausehmen. Is nciht schlimm, aber muss ja nicht sein.

Dann musst du n bissle mit der Variable "pos" rumexperimentieren. Je nachdem, wo du dein Servo hinfahren lassen willst.

Gruß

topgunfb