Sabertooth 2x25 arranca los motores al iniciarse

Hola amigos!
Estoy utilizando un controlador Sabertooth 2x25 para mover dos motores con una placa Arduino UNO y el siguiente programa:

#define PWM1            6
#define PWM2            5


void setup() {
  pinMode(PWM1, OUTPUT);
  pinMode(PWM2, OUTPUT);
  analogWrite(PWM1, 127);
  analogWrite(PWM2, 127);
}

void loop() {
for(int i=0; i<=30; i++)
{
  analogWrite(PWM1, 127+i);
  analogWrite(PWM2, 127+i);  
  delay(500);
}
delay(500);

for(int i=30; i>=0; i--)
{
  analogWrite(PWM1, 127+i);
  analogWrite(PWM2, 127+i);  
  delay(500);
}
delay(500);
}

El problema es que mientras se está realizando la inicialización los motores empiezan a acelerar solos y después paran de golpe para empezar ha hacer lo que les manda la placa Arduino. ¿Sabe alguien como evitar esto?
Un saludo y muchas gracias de antemano.

Tal vez sea que en el setup() haces analogWrite(PWM1, 127); Prueba a cambiarlo por analogWrite(PWM1, 0);

Hola Cheyenne!
Hago eso porque los motores están parados a 2,5v (127) y en marcha hacia un sentido u otro en función de si el voltaje sube o baja de este punto, es decir, si tengo 0v (0) voy a tope en un sentido y con 5v (255) a tope en el otro.
Muchas gracias y un saludo.

Ok, no sabía que ese controlador tenía cambio de giro.

He estado mirando un poco por encima la documentación y no entiendo cómo controlas este módulo Sabertooth 2x25. ¿Estás utilizando dos salidas PWM de Arduino con un filtro RC en cada una?

Así es utilizo dos pwm con filtros RC. El error parece como si ocurriera mientras arduino se está inicializando. Una vez que se empieza a ejecutar el programa funciona perfectamente.

Tu problema seguro que no tiene nada que ver con lo que te explico a continuación pero te lo comento de todos modos. En la documentación de ese módulo recomiendan que si se controla mediante PWM con filtro RC (Mode 1: Analog Input) la frecuencia del PWM sea como mínimo 1 kHz. Si no has hecho ningún cambio de frecuencia por defecto ésta es de 490 Hz (la mitad del mínimo recomendado). Si quisieras también podrías controlar el módulo con el "Mode 2: R/C Input" mediante la librería servo.

Para diagnosticar tu problema, ¿has probado a ejecutar sólo el setup, eliminando todas las instrucciones del loop a ver lo que sucede?

Hola,

Mientras corre el bootloader del Arduino pasa como 1 segundo, durante ese segundo la salida del PWM va a ser 0, y eso es lo que esta causando que se muevan.

Creo que como solución puedes colocar algún arreglo eléctrico que mande 2.5V mientras el arduino se inicializa, o que a traves de un relé/transistor manejes la energizacion de los motores luego de que el arduino inicialice, o no se si quieras considerar usar alguno de los modos serial.

Saludos.

Hola!

Tu problema seguro que no tiene nada que ver con lo que te explico a continuación pero te lo comento de todos modos. En la documentación de ese módulo recomiendan que si se controla mediante PWM con filtro RC (Mode 1: Analog Input) la frecuencia del PWM sea como mínimo 1 kHz. Si no has hecho ningún cambio de frecuencia por defecto ésta es de 490 Hz (la mitad del mínimo recomendado). Si quisieras también podrías controlar el módulo con el "Mode 2: R/C Input" mediante la librería servo.

En un principio he probado así mismo simplemente por verlo funcionar, pero si que tengo pensado cambiar el prescaler del timer para hacer que el PWM funcione con otra frecuencia. ¿Todos los PWM de arduino funcionan a 490Hz? Tenía entendido que en el arduino UNO los PWM de las salidas 5 y 6 funcionaban a 976HZ.

http://playground.arduino.cc/Main/TimerPWMCheatsheet
http://forum.arduino.cc/index.php/topic,16612.0.html

El problema será lo que cuenta Luis_AM3C. Probaré a poner otro interruptor y darle marcha a los motores una vez arduino se haya inicilizado. Si esto funciona pondré un relé para evitar el problema.

Un saludo y muchar gracias por las respuesta.

esnal88:
¿Todos los PWM de arduino funcionan a 490Hz? Tenía entendido que en el arduino UNO los PWM de las salidas 5 y 6 funcionaban a 976HZ.

Pues es la primera noticia que tengo. No quiero decir que no sea así, si lo has consultado seguro que será. Simplemente que cada vez que he leído del tema sólo había visto lo de los 490 Hz.