Go Down

Topic: Ayuda con mis motores (Read 1 time) previous topic - next topic

esnal88

Hola amigo!

Tengo que controlar dos motores y estoy intentando realizar una prueba para ponerlos en funcionamiento hacia un sentido, después pararlos, ponerlos hacia el otro, volverlos a parar así sucesivamente. El código es el siguiente, pero los motores no funcionan como deberían. ¿Alguna idea de porque puede ser?

Code: [Select]
#define InA1            10                  // INA motor pin
#define InB1            11                  // INB motor pin
#define PWM1            6                   // PWM motor pin (A)
#define PWM2            5                   // PWM motor pin (B)
#define Enable          12                  // Habilitación de motores


void setup() {
  pinMode(InA1, OUTPUT);
  pinMode(InB1, OUTPUT);
  pinMode(PWM1, OUTPUT);
  pinMode(PWM2, OUTPUT);
  pinMode(Enable, OUTPUT);
  digitalWrite(Enable, LOW);
  delay(5000);
}

void loop() {
  motorForward(10);                        //(25%=64; 50%=127; 100%=255)
  delay(5000);

  motorStop();
  delay(2000);

  motorBackward(10);
  delay(5000);
 
  motorStop();
  delay(2000);
 
}

void motorForward(int PWM_val)  {
  analogWrite(PWM1, PWM_val);
  analogWrite(PWM2, PWM_val); 
  digitalWrite(InA1, LOW);
  digitalWrite(InB1, HIGH);
}

void motorBackward(int PWM_val)  {
  analogWrite(PWM1, PWM_val);
  analogWrite(PWM2, PWM_val);
  digitalWrite(InA1, HIGH);
  digitalWrite(InB1, LOW);
}

void motorStop()  {
  analogWrite(PWM1, 0);
  analogWrite(PWM2, 0); 
  digitalWrite(InA1, LOW);
  digitalWrite(InB1, LOW);
}


Un saludo de antemano y muchas gracias.

Jukar


... pero los motores no funcionan como deberían.


Hola. Si explicas que hacen te podrán ayudar más fácilmente.

Un saludo!!!

esnal88

Hola Jukar!

Pues primero se enciende un motor en un sentido, después se encienden los dos en ese mismo sentido y paran durante un rato hasta que vuelven ha hacer lo mismo. No se si el problema será de lo programado o si vendrá del controlador de los motores, pero juraría que este hace pocos días funcionaba bien, así que me extraña mucho.

Un saludo.

Luis_AM3C

Hola,

      Te falto especificar que puente H o equivalente estas usando o el esquematico electrico, por que el que yo he usado tiene IN1 IN2 ENA, y en IN1 o IN2 puse el PWM, mientras tu tienes eso mas dos PWM en otros pines que no me imagino como van.

       Bueno, en mi caso hace falta que pongas enable en HIGH para que funcione, y tu en tu codigo lo tienes en LOW.

Code: [Select]
digitalWrite(Enable, HIGH);

        En mi caso yo use el L298, y para forward use ENA en HIGH, IN1 al PWM, IN2 a LOW, y para backward use ENA en HIGH, IN1 a LOW, IN2 al PWM. Para ellos escogi como IN1 e IN2 pines que soporten PWM. Pero no se cual puente H usas tu, asi que puede ser diferente.

Saludos.

esnal88

Hola!
Muchas gracias por responder. El controlador que yo utilizo el el siguiente:
http://www.wawerko.de/selbstbalancierender-elektroroller-im-eigenbau-segway-klon+3199/schritt-30.html
Aunque al final he decidido cambiarlo por un Sabertooth 2x25 que al parecer es un controlador que funciona bastante bien. Aún así sigo mosqueado con el que tengo porque hace cosas raras. El LOW es el modo de activación de estos motores. En el HIGH no se mueven pero en el LOW no hacen lo que yo les pido. Trataré de ponerlos bien en marcha aunque tal vez el cambio final al sabertooth sea la mejor soludión.
Un saludo.

Luis_AM3C

Hola,

         Prueba usar valores de PWM mas altos, si usas valores muy bajos puede que no tenga la capacidad de mover el motor, a medida que lo subes puedes escuchar un zumbido, y luego llegaras a un valor a partir del cual se moverá.

Saludos.

XarlyX

#6
Aug 06, 2013, 09:24 pm Last Edit: Aug 06, 2013, 09:31 pm by XarlyX Reason: 1
Hola!! yo quiero hacer algo mas o menos parecido pero en concreto como lo que sale en este video:

http://www.youtube.com/watch?v=3ZVQVJARwsc

llevo queriendo hacer esto desde que vi unas "torretas" que disparaban unos cohetes de gomaespuma y que se usaban con un ordenador pero lo que quiero hacer es EXACTAMENTE lo del video y la verdad es que no se como montarmelo, por lo del codigo me daria un poco igual por que ya tengo pequeños trozos hechos

esnal88 tu que me aconsejarias que hiciera gracias

ah oye que se me olvidaba para el control de motores lo que quiero usar es un joystick de un mando de playstation y que el boton (R3) tambien tenga utilidad

esnal88

Hola XarlyX!
Parece que lo que utiliza son dos servomotores que necesitarán de un controlador por cada uno de ellos. Los hace funcionar independientemente el uno del otro según la tensión que recibe cada una de las direcciones del joystick.
Lo de hacerlos funcionar por el joystick ya es cuestión de ver como funciona este. Yo nunca he utilizado uno pero supongo que tendrán salidas para indicar adelante y hacia atrás y a los lados. Habrá que ver cual indica que y según esto hacer las conexiones. Depués, dependiendo de la intensidad con la que se gire el joystick los motores tendrán que moverse a una u otra velocidad.
Esto es más o menos lo que habría que hacer pero pregunta tranquilamente y si puede ser concretando un poco más para que te podamos ayudar mejor.
Un saludo.

Go Up