Pages: [1]   Go Down
Author Topic: Sabertooth 2x25 arranca los motores al iniciarse  (Read 855 times)
0 Members and 1 Guest are viewing this topic.
Donostia
Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Code:
#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.
Logged

Offline Offline
God Member
*****
Karma: 7
Posts: 635
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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


Donostia
Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Offline Offline
God Member
*****
Karma: 7
Posts: 635
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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


Offline Offline
God Member
*****
Karma: 7
Posts: 635
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
« Last Edit: August 19, 2013, 09:43:45 am by Cheyenne » Logged


Donostia
Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Offline Offline
God Member
*****
Karma: 7
Posts: 635
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged


Anaco, Venezuela
Offline Offline
Jr. Member
**
Karma: 8
Posts: 88
Electronic Engineer
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Donostia
Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola!

Quote
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.
Logged

Offline Offline
God Member
*****
Karma: 7
Posts: 635
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

¿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.
Logged


Pages: [1]   Go Up
Jump to: