Arduino+Controlador+Motor DC

Buenas tardes a todos.
Hace mucho tiempo que no me paso por aqui devido a mi poco tiempo libre.
Porfin he hecho una gran compra(solo una parte de mi proyecto)
la cual mas engorrosa por mi parte ahora mismo es el tema relacionado con los motores DC.

he comprado este controlador:

y estos motores:

aparte ya tengo arduino mega.

1 parte demi proyecto es con 1 arduino mega con su xbee y un joystick hacer que los motores giren hacia un lado o hacia otro. y con unos pulsadores que dispongan de 1 limite de giro.
Es decir
Ejemplo:
pulso boton1+joystick para alante= motor DC1->x velocidad o x vueltas
pulso boton2+joystick para alante= motor DC1->2x velocidad o 2x vueltas
o semejante.

Espero haberme explicado bien

Esa es una parte, y mi problema es el siguiente, Como se programa algo semejante?
(la verdad hay que decir que mi nivel de programacion es decente o en segun que casos muy limitado)

Ahora con que eso me funcione con un arduino en 1 protoboard me conformo.

y luego necesito eso pero con xbee.
es decir en 1 arduino abra el pulsador y el joystick
y en el otro arduino abra el controlador y el motor

Alguna duda?
me he podido explicar bien para haceros la idea?

Alguna sugerencia o aporte?

Cordiales saludos

No creo que sea muy complicado programarlo. Pero porque varias velocidades en botones? los Joystick suelen tener unos potenciómetros, por lo que puedes saber cuanto se ha movido en los dos ejes, así que podrías simplemente simplemente, dar mas o menos velocidad según el giro del Joystick.
Seria algo asi, cada eje estará enganchado a un potenciómetro, por un lado le das 5V, por otro lado a masa, y en el centro lo enganchas en una entrada analógica, supongo que si no mueves el joystick te tendrá que dar unos 2,5v, luego usas la función map() para ajustar la lectura analógica que son 1024 posiciones con la señal PWM que permite 256 cambios. Y para complicarlo mas, mejor seria tener un puente en H para cada motor y asi puedes controlar para que gire en un sentido u en otro según muevas para un lado el joystick.

Igual no me he explicado bien, asi que si tienes alguna duda , dímelo.
Suerte!!

Wow jejej la verdad que algo perdido me he quedado jeje.
Respecto lo del tema puente en H
para eso ya tengo el controlador, es 1 controlador que controla 2 motores indistintamente. 1 del otro, o eso me han dicho, xP

El joystick es este modelo.

haber mi idea era lo de los botones en plan. 1º,2º,3º,4º una parida pero nose me hizo gracia, puede ser útil en el momento según la velocidad máxima que desees, ya que dar una velocidad según la "inclinación" del joystick no siempre es muy fiable diría yo.

Mas adelante, estoy esperando a que renueven el stock, comprare una pantalla lcd, donde ahí salga la velocidad en km/h o m/min ejje nolose.

Pero ahora lo mas importante que digamos que es la base del proyecto es ese.
el tema de los motores y su programación.

el siguiente paso sera hacer lo mismo pero por xbee y ya el siguiente lo mismo pero con el lcd.

Cordiales saludos

Me acorde que también tengo un joystic parecido al tuyo pero sin pulsador, y he hecho un programita pero al no tener los mosfet para el puente en H lo he simulado con unos led, pero habrá que hacer algo mas para adaptarlo al puente en H. Seria algo asi:

//Control de un Joystick

int ejexpin = 4;    
int ejexmpin = 3; 
int ejexm2pin = 5;
int ejexd;

int ejeypin = 5;    
int ejeympin = 6; 
int ejeym2pin = 9
int ejeyd;


void setup(){
  Serial.begin(9600);
  pinMode(ejexmpin, OUTPUT);
  pinMode(ejexm2pin, OUTPUT);
 
  pinMode(ejeympin, OUTPUT);
  pinMode(ejeym2pin, OUTPUT);
}

void loop(){
  ejexd = analogRead(ejexpin);
  ejeyd = analogRead(ejeypin);
  Serial.println(" ");
  Serial.print("X:");
  Serial.print(ejexd);
  Serial.print(" Y:");
  Serial.print(ejeyd);
  
 //Serial.println(" ");
  
  // Control del Eje X
  if (470 > ejexd) {
      ejexd = map(ejexd, 0, 470, 255, 0);
      analogWrite(ejexm2pin,ejexd);
      Serial.print(" PWM x- ");
      Serial.print(ejexd);  
  }
  else {
    analogWrite(ejexm2pin,0);
  }
  if (ejexd > 530) {
      ejexd = map(ejexd, 530, 1023, 0, 255);
      analogWrite(ejexmpin,ejexd);
      Serial.print(" PWM x+ ");
      Serial.print(ejexd);
  }
  else {
    analogWrite(ejexmpin,0);
  }
  
  // Control del Eje y
  if (470 > ejeyd) {
      ejeyd = map(ejeyd, 0, 470, 255, 0);
      analogWrite(ejeym2pin,ejeyd);
      Serial.print(" PWM y- ");
      Serial.print(ejeyd);
  }
  else {
    analogWrite(ejeym2pin,0);
  }
  if (ejeyd > 530) {
      ejeyd = map(ejeyd, 530, 1023, 0, 255);
      analogWrite(ejeympin,ejeyd);
      Serial.print(" PWM y+ ");
      Serial.print(ejeyd);
  }
  else {
    analogWrite(ejeympin,0);
  }
  
 // delay(500);

Y aquí un vídeo de como me ha quedado xdD

Los SerialPrint() los uso para testear el funcionamiento.
El puente en h que tienes es el L298?
Suerte!

Wow ejjej majo el vídeo.

Y jeje no conocía el juego ese de worldofgoo XP ya esta descargándose.

Si el puente es el L298.

el que esta en el link del primer comentario.

y nada, ahora haber si tengo un poco de tiempo y haber si consigo hacer algo.

Merci por todo

Hola que tal,tengo una pregunta.
si tu controlador soporta una intensidad de 2A maximo por cada salida y tiene dos salidas ,como manejaras un motor de 5A carga maxima sin quemar el controlador?????
Yo estoy en un proyecto parecido....
un saludo :slight_smile:

No se si se podrán usar en paralelo, los dos puentes en h del L298, o sino pues te compras 4 mosfet de 5A, los diosos para proteccion y te montas un puente en h es facil.

Ese controlador si se puede usar en paralelo pero aun asi no llegarias a los 5a que necesitas.
Un saludo. :slight_smile:

MMmmmm
buenas a todos y perdon talvez porque discuta segun lo que deciis, pero ami Oscar de bricogeek me dijo que este motor:

funciona perfectamente con este controlador:

Aun no los e probado, pero los tengo en mi casa.

Que me deciis? me ha mentido? tengo que devolverlo?

Cordiales saludos

no te ha mentido, dice que funciona bien con 6V pero que se recomienda 12v y 5A con 4A te va a funcionar seguramente mas que de sobra para lo que quieras hacer.

Entonces?
Así para saber, en que caso no me funcionaria?
es para saber si no funcionaria en el caso que le diera mucha caña o el que.

Gracias

Cordiales saludos

Por si quereis ir mirando mis pocos avances,
roma0712.blogspot.com

me imagino que cuando le metas mucha caña, pero el motor ese con la reductora que tiene, tiene que tener mucha fuerza. En la web pone:

Potencia: 16kg/cm (12V/5A)
Velocidad: 100RPM (12V/300mA sin carga)

Hola.
A maxima potencia el motor consume una intensidad mayor que la que ofrece el puente por lo que a mi parecer el puente se acabara quemando, y aunque el voltaje sea menor no disminuye la intensidad sino que aumenta.

a menor voltaje = mayor intensidad.

ya se que el motor no va a estar siempre con un funcionamiento a plena carga pero seguro que acorta la vida util del puente si no llega a quemarlo.

De todas formas es mi opinion,si en la tienda te dicen que vale yo no les voy a llevar la contraria pero en las especificaciones del motor te lo pone bien claro.

Un saludo.