Eche un vistazo a la Controlador de motor de alta potencia Pololu 18v15 . Parecería satisfacer (e incluso superar) sus necesidades. Compré uno de estos la semana pasada y debería llegar mañana. Editaré esta respuesta con mi comentario.
3/27/13
Lo recibí en el correo ayer por la noche. Montado esta noche. Lo probaremos mañana.
4/7/13
Mi tiempo con el interruptor fue corto pero increíblemente productivo. El barco en el que se colocó el interruptor finalmente se hundió tomando un GPS, XBee, Arduino y el interruptor con él. El cambio fue muy fácil de poner en marcha. La soldadura fue rápida y el condensador provisto funcionó muy bien para mis propósitos. El terminal positivo de mi batería se conectó al encabezado V+
y el terminal negativo se conectó al encabezado GND
. Los cables del motor conectados a los encabezados OUTA
y OUTB
. La polaridad no importa en esos dos encabezados, ya que el dispositivo es capaz de cambiarlo.
En el lado lógico conecté el pin GND
de Arduino al encabezado GND
del conmutador. No utilicé los indicadores de error FF1
y FF2
, pero leerlos es tan simple como digitalRead
una vez que están conectados al Arduino. El pin RESET
es realmente fácil de usar. Simplemente use digitalWrite(resetPin, LOW);
para poner el tablero en modo de reposo (esto también borra cualquier falla). Póngalo de nuevo en alto para reanudar el funcionamiento normal.
Hay dos formas de operar el tablero, pero solo hablaré de la que utilicé, que creo que es más simple. El pin DIR
debe considerarse digital. Así que lo configura como lo haría con cualquier pin de salida digital normal en el Arduino. Tire del pin HIGH
para una dirección y LOW
para la dirección opuesta. Esto invierte efectivamente la polaridad en los encabezados OUTA
y OUTB
. El pin PWM
debe estar conectado a un pin compatible con PWM en el Arduino. En el Arduino Uno, estos pines son 3, 5, 6, 9, 10 y 11. Asegúrese de que el pin que elija no esté ser obstruido por una interrupción del temporizador. Controlar la velocidad del motor es tan fácil como usar analogWrite
en el pin con un número de 0 (detenido) a 255 (velocidad máxima). La función map
será realmente útil aquí. Puede usarlo para tomar cualquier rango sano y convertirlo al rango que necesita (en este caso, 0-255). Lo usé para tomar 0-255 hasta 0-100 para crear un porcentaje de empuje que podría mostrar, pero en ese caso podría haber dividido el número entre 2.55. ;) Echa un vistazo a este compromiso en GitHub para ver cómo lo implementé. Contrariamente a ese compromiso, no es necesario utilizar pinMode
en el pin PWM.
El único "problema" que encontré con la placa era que al ejecutar el motor crearía un tono audible en función de la velocidad. A toda velocidad no se notaba, pero a velocidades más bajas realmente se podía decir. No solucioné este problema antes de que el barco se hundiera, pero me dijeron que se puede resolver utilizando el Arduino Biblioteca de frecuencia PWM .
Espero que esto te ayude y te diviertas con el motor. Definitivamente compraría otro si una situación lo requiriera. Definitivamente, eche un vistazo a página del producto de Pololu para obtener una explicación muy detallada de todo el chipset.