Pages: [1]   Go Down
Author Topic: Control de Velocidad Motor CC  (Read 3415 times)
0 Members and 1 Guest are viewing this topic.
Chile
Offline Offline
Newbie
*
Karma: 0
Posts: 42
Arduino Chile
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola Foreros que tal. Bueno mi consulta de esta vez, es que estoy tratando de controlar 4 motores con arduino. y necesito controlar sus velocidades de giro. Ocupo como driver un SN754410 para controlar el sentido de giro y la corriente.
Se que se hace con PWM, pero lo que no se si se hace directamente en las entradas de control del driver, o en la alimentacion de los motores.
Si es asi, diecimila tiene solo 6 salidas PWM, se pueden generar otras mas?.. o se puede hacer manualmente en cualquier salida, EJ

pinMode(7,HIGH);
delayMicroseconds(100);
pinMode(7,LOW);
delayMicroseconds;(50);

cual es la frecuencia maxima que puede tener una salida (NO-PWM) del arduino?..

Son varias preguntas, espero puedan ayudarme.
Gracias!
Logged

Donostia
Offline Offline
God Member
*****
Karma: 3
Posts: 744
elektronikadonbosco
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Nunca he usado este ya que suelo usar el L293D (600mA) o L293B (1A pero requiere diodos adicionales) por lo que veo el SN754410 suministra hasta 1A. Con cada integrado SN754410 puedes controlar hasta 2 motores independientemente. La madre del cordero es mirar en el datasheet la tabla

Creo que le falta información ya que tengo un documento que busque en internet que dice que el funcionamiento del SN754410=L293

Te adjunto un documento (hay que estar registrado para verlo) y mira la tabla de la página 9. Puedes mirar el resto del documento pero esta un poco desordenado.
Segun la tabla:
A1=L A2=H gira  derecha
A1=H A2=L gira izquierda
aunque para controlar la velocidad de giro de 4 motores habría que usar 8 PWM se puede controlar con 4 PWM haciendo un pequeño truco y comiendote un poco la cabeza. Haber si no me lio y lo explico bien.

para que gire a la derecha A1=L y A2=PWM (cuando los pulsos sean anchos irá a más velocidad y cuando los valles sean anchos irá a poca)

aquí está el truco:
para que gire a la izquiera A1=H y A2=PWM (cuando los pulsos sean anchos irá a poca velocidad y cuando los valles sean anchos irá a mucha)
Todo el rato jugamos con la combinación A1=H y A2=H que es parar y A1=H y A2=L que es girar a izquierda.

* Documentacion.rar (960.44 KB - downloaded 53 times.)
« Last Edit: August 24, 2011, 04:05:39 am by ionhs » Logged

Chile
Offline Offline
Newbie
*
Karma: 0
Posts: 42
Arduino Chile
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ohh.. exelente muchas gracias ya lo probé y funciona exelente, lo que si, no se puede fijar una variable para velocidad general, por que una velocidad tiende a ser maxima al acercarse a 255, y la otra tiende a ser maxima al acercarse a 0.
Funciona excelente. Muchas gracias !
Logged

Donostia
Offline Offline
God Member
*****
Karma: 3
Posts: 744
elektronikadonbosco
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Si eso me hace volverme un poco loco, yo lo que hice fue crear 2 funciones una para ir adelante y otra para ir a tras. De esa manera cuando quiero ir adelante llamo a esa función y si quiero ir hacia atrás llama a la otra.


int adelante()
{
  digitalWrite(DchaDelante, HIGH);
  analogWrite(DchaVelocidad, 0);
}

int atras()
{
  digitalWrite(DchaDelante, LOW);
  analogWrite(DchaVelocidad, 255);
}


Para enviar a la velocidad que quieres ir sería enviar a la función una variable con la velocidad y que la función convierta esa velocidad a la escala correspondiente. Te vas a comer un poco la cabeza creando la función pero si la haces bien luego la función será trasparente y no tendrás que pensar como hacen el trabajo. SAlu2
Logged

Pages: [1]   Go Up
Jump to: