Hola, un saludo a todos .
Si no os importa voy directo al grano .
--- Uso Arduino UNO en Windows7 con Arduino 1.6.10.
--- Quiero aprender a mover un servo regulando su velocidad de giro pero manteniendo su par.
--- He descubierto la librería VarSpeedServo.
--- La librería VarSpeedServo ha sido instalada desde .zip con Arduino 1.6.10 en C:/Usuarios/Mi nombre/Mis Documentos/Arduino/libraries. Los skecthes se están guardando en C:/Usuarios/Mi nombre/Mis Documentos/Arduino/
--- He modificado VarSpeedServo.cpp cambiando 'Wprogram.h' por 'Arduino.h'.
--- He leído todo lo que he encontrado en este foro, en el estadounidense y en el de Adafruit referente a la librería VarSpeedServo.
--- He localizado este ejemplo de código ( Sample Code - one servo moving, wait for first movement to finish, then execute another movement ) que he encontrado aquí: ( GitHub - netlabtoolkit/VarSpeedServo: Arduino library for servos that extends the standard servo.h library with the ability to set speed, and wait for position to complete ).
--- Este ejemplo de código es el mismo que surbyte cita en este hilo: [SOLUCIONADO] regular velocidad de movimiento en servo - Hardware - Arduino Forum
--- Por mi parte, en las funciones myservo.write(), he cambiado los atributos metidos a capón (0, 180, etc.) por variables tipo 'int': pos1, pos2, vel1 y vel2 como constantes, declarándolas previamente.
--- Y estoy intentando compilarlo, pero me da error. Entonces para encontrar dónde falla, lo estoy compilando por partes.
--- Y hasta ahora sólo consigo compilar correctamente hasta aquí:
#include <VarSpeedServo.h>;
VarSpeedServo myservo;
const int servoPin = 9;
const int pos1 = 0;
const int pos2 = 180;
const int vel1 = 100;
const int vel2 = 30;
void setup() {
myservo.attach(servoPin);
//myservo.write(pos1,vel1,true);
}
void loop() {
//myservo.write(pos2,vel1,true);
//myservo.write(pos1,vel2,true);
delay(1000);
}
--- Pero en cuanto quito las barras 'textualizadoras' // a las líneas de código que usan la función myservo.write():
en void setup():
myservo.write(pos1,vel1,true);
en void loop():
myservo.write(pos2,vel1,true);
myservo.write(pos1,vel2,true);
e intento compilar me da un error que, básicamente, gira en torno a:
'exit status 1 no matching function for call to 'VarSpeedServo::write(int, int, bool)'.
Estoy a un año luz de ser un usuario medio de arduino, pero me parece un código claro y sencillito para que de semejante error por fallo en el código. Y los argumentos en myservo.write(int, int, bool) me parecen correctos :o , ¿no?. Pues está claro que no.
Si me podéis dar aunque sea una pistilla de qué - innegablemente - estoy haciendo mal, me ayudaréis a dormir mejor, a pesar del calor en Madrid.
Muchas gracias y feliz veraneo a los afortunados.
Engadin.
sketch_aug14d.ino (374 Bytes)