Extisten diferentes opciones para el desplazamiento de robots: Motores Paso a Paso, Motores DC, Servos de Rotación Contínua…
En nuestro caso hemos utilizado los Servos de Rotación Contínua dado que poseen su propia circuitería y permiten ser utilizado directamente con cualquier microcontrolador por PWM sin necesidad de componentes externos.
Conectaremos la señal de cada Servo a un Pin PWM (9 y 10 en el ejemplo), utilizando el siguiente Código:
#define SERVO1 9
#define SERVO2 10
#define CEN 0
void setup()
{
}
void loop()
{
throttle(100,-100);
}
// Maneja el avance o retroceso, recibe la velocidad desde -100 a 100 %
void throttle(int Mot1, int Mot2)
{
analogWrite(SERVO1,(Mot1> CEN || Mot1<-CEN) ? map(-Mot1,-100,100,135,225):0);
//Giro al contrario
analogWrite(SERVO2,(-Mot2> CEN || -Mot2<-CEN) ? map(Mot2,-100,100,135,225):0);
}

















julio 2nd, 2009 at 19:02
Muy bien,el codigo a sido probado en una placa seeduino,y una motors shield v1.
muchas gracias
saludos
Jose Manuel Arrabal
enero 21st, 2012 at 21:43
[...] Bloqueamos el potenciómetro para que se quede fijo en esta posición Si no realizamos esto, el motor sólo girará hacía un lado, perdiendo la inversión de giro que queremos. Una vez que ya tenemos nuestro servo operativo, podemos usar el código que nos facilita Discovery en su blog: [...]