Robo Delta

Pessoal sou aluno do curso de mecatronica na UTFPR e preciso de uma ajuda para programar um robo delta com servo motores.

Minha duvida é como faço para fazer o incremento dos motores, por exemplo: Preciso incrementar o angulo de 3 servos motor um para cada angulo. , nao tenho muito conhecimento de programaçao.

Fiz um codigo bem basico e gostaria de saber como posso chamar funcoes em separado …

Muito obrigado desde ja .

#include <Servo.h>

Servo motor1;
Servo motor2;
Servo motor3;

void setup()
{
motor1.writeMicroseconds (2200);
motor2.writeMicroseconds (2200);
motor3.writeMicroseconds (2200);
motor1.attach(3);
motor2.attach(5);
motor3.attach(6);
}
void loop()
{
motor1.write(135);
motor2.write(135);
motor3.write(135);
delay(500);

motor1.write(100);
motor2.write(140);
motor3.write(150);
delay(500);

motor2.write(100);
motor3.write(170);
motor1.write(110);
delay(500);

motor1.write(148);
motor2.write(125);
motor3.write(148);
delay(500);

motor2.write(145);
motor1.write(145);
motor3.write(135);
delay(500);

/*motor2.write(160);
motor1.write(100);
motor3.write(150);
delay(500);
*/
motor1.write(180);
motor2.write(180);
motor3.write(180);
delay(500);

motor1.detach();
motor2.detach();
motor3.detach();
}

void mexeMotor(int angulo) {

   motor1.write(angulo);
   motor2.write(angulo);
   motor3.write(angulo);
}

Se quiseres algo ainda mais pipi...

#define MOTOR1   0b01
#define MOTOR2   0b10
#define MOTOR3  0b100

void mexeMotor(int angulo, unsigned char motores) {

   if (motores && MOTOR1 == MOTOR1) motor1.write(angulo);
   if (motores && MOTOR2 == MOTOR2) motor2.write(angulo);
   if (motores && MOTOR3 == MOTOR3) motor3.write(angulo);
}

//Para chamar motor 1 e motor 2 e mexer um angulo de 135 graus. 
mexeMotor(135, (MOTOR1 || MOTOR2))

//Para chamar os tres motores e mexer um angulo de 204 graus. 
mexeMotor(204, (MOTOR1 || MOTOR2 || MOTOR3))

Se quiseres definir um angulo para cada

void mexeMotor(int angulo1, int angulo2, int angulo3) {

   motor1.write(angulo1);
   motor2.write(angulo2);
   motor3.write(angulo3);
}

Com esses exemplos que passou ele vai incrementar o valor de angulo 1 a 1 , por exemplo estou com motor 1 no angulo 120 e quero descer até 80 ele vai decrementar 119,118,117 … até 80 ?? Preciso fazer isso para cada motor em separado .

Tentei fazer isso mas creio que fiz as funcoes erroneamente

#include <Servo.h>

Servo motor1;
Servo motor2;
Servo motor3;
void setup()
{
motor1.attach(3);
motor2.attach(5);
motor3.attach(6);
motor1.writeMicroseconds (2300);
motor2.writeMicroseconds (2300);
motor3.writeMicroseconds (2300);
}
void loop()
{
int i;
int j;
int k;
int m;
int n;
for(i=180;i>=135;i–)
{
motor1.write(i);
motor2.write(i);
motor3.write(i);
delay(25);
}
delay(500);
for(i=135;i>=100;i–)
{
motor1.write(i);
delay(25);
}
delay(500);
for(k=135;k<=140;k++)
{
motor2.write(k);
delay(25);
}
delay(500);
for(m=135;m<=130;m++)
{
motor3.write(m);
delay(25);
break;
}
delay(500);

Eu uso as mesmas funções que tu para escrever para os servomotores, porque é que dizes que vai incrementar até ao ângulo pretendido?

Experimentaste o código que passei??

Preciso incrementar para movimentar o servo motor lentamente pois preciso desenhar um circulo .

pesquisa pela função millis para criar temporizações.