Actualización: Actualmente estoy cambiando algunas cosas con el proyecto. Tomé algunos de ustedes consejos. He cambiado de un motor paso a paso a un servo RC (controlado a través de PWM) y si tengo algún problema y no puedo resolverlo, lo preguntaré. ¡Gracias por la ayuda!
Estoy trabajando en un proyecto con un amigo y es nuestra primera vez usando un Arduino. Estamos usando un Arduino para tomar datos de un sensor (acelerómetro) y luego encender el motor (6V, DC).
He estado cavando un poco y parece que la energía del Arduino podría no ser suficiente para el motor y el sensor al mismo tiempo. Tal vez un retraso de algún tipo podría funcionar (¿sería esto posible?).
Estoy pensando en usar un escudo de motor . ¿Podré seguir controlando el acelerómetro junto con el motor?
Estoy tratando de usar una sola fuente externa de energía (máx .: 6 baterías AA; estoy tratando de limitar la cantidad de baterías, ya que estamos tratando de mantenerla portátil), así que ¿hay alguna manera de usar una fuente? Arduino y motor shield necesitan dos fuentes de alimentación diferentes (según tengo entendido).
Respuestas:
Problema 1 : conducir un motor directamente desde un Arduino
No es aconsejable conducir un motor directamente fuera de los pines Arduino por múltiples razones:
Si bien cada pin Arduino para Arduinos basados en ATmega tiene una capacidad de 40 mA, personalmente prefiero mantener cualquier carga sostenida por debajo de 30 mA, su apetito de riesgo puede ser diferente. Sin ver la hoja de datos del motor en cuestión, es imposible suponer cuánta corriente requiere el motor
El EMF posterior es básicamente un voltaje inverso generado por las bobinas del motor (o cualquier carga inductiva en el apagado), transitorios (picos) que pueden superar momentáneamente el rango de voltaje aceptable que los pines del microcontrolador pueden tolerar.
Volver EMF sigue siendo un riesgo, aunque disminuido, incluso si un diodo rápido está conectado en polarización inversa a través de los cables del motor, una práctica muy recomendable.
Si se siente cómodo con la electrónica básica, esto también se puede lograr conectando directamente un IC de controlador de motor adecuado y diodos de retorno. ( Editar : Esto se describe excelentemente en la respuesta de Manishearth )
El controlador del motor, ya sea un escudo o un IC, debe alimentarse independientemente del Arduino, pero con las dos líneas de tierra de la fuente de alimentación conectadas entre sí. Ver más abajo.
Problema 2 : controlar el acelerómetro y el escudo del motor simultáneamente
Para mayor comodidad, busque un protector del motor con encabezados apilables, es decir , con los pines del encabezado Arduino replicados en el protector del motor para conectar hardware adicional, en su caso, el acelerómetro. No todos los escudos proporcionan encabezados apilables. Por lo tanto, se complica el uso de los pines no utilizados por el blindaje, ya que se necesitan cables para soldar a las almohadillas de encabezado relevantes en la PCB, o alguna disposición de este tipo.
En el caso de que el protector del motor que seleccione use todos los pines GPIO, como puede ser el caso con los protectores para conducir múltiples motores, puede tener un problema. Dado que solo se debe conducir 1 motor, evite los blindajes multimotor que no dejan suficientes pines GPIO sin usar.
Problema 3 : distribución de energía entre Arduino y el escudo del motor
fuente
La mayoría de los escudos ocupan algunos pines y dejan el resto para usted (es por eso que muchos tienen una réplica del sistema de pines Arduino encima de ellos usando encabezados apilables). Están diseñados para ser lo más sencillo posible, por lo que obtener un escudo es la forma más fácil de evitarlo.
Yo personalmente no acciono los motores directamente desde el tablero; en cambio, uso controladores de motor como el L293D para esto. Los pines no son realmente buenos para extraer corriente, y generalmente es mejor alimentar los sensores directamente en lugar de a través de los pines Arduino. Recuerde, los pines tienen un límite de corriente, y si los sobrecarga, se quemarán.
Usar un L293D es fácil:
Conecte los pines 1,9,16 a su fuente de Vcc (terminal positivo de cualquier fuente de 5V con la que alimente el Arduino. Para mí, generalmente es una línea extraída de un LM7805). Ahora conecte los pines 4,5,13,12 a su GND (terminal negativo). Ahora, conecte el pin 8 a una fuente de mayor voltaje (6V, 12V, o lo que quiera alimentar a sus motores). Tenga en cuenta que los terminales negativos de todas las fuentes de voltaje deben estar en cortocircuito a GND.
Ahora, conecte su motor a través de los dos pines de salida en un sitio (3,4 a la izquierda). Conecte los pines de entrada (2,7) a dos pines diferentes en el Arduino. Cuando da la misma señal (ALTA o BAJA) a ambos pines, el motor se detiene. Si da ALTO de un pin y BAJO del otro, el motor irá en sentido horario o antihorario, dependiendo del pin que recibió la señal.
Si desea un motor unidireccional y desea guardar los pines, acorte uno de los pines de entrada a GND. Ahora, cuando el otro pin de entrada está BAJO, el motor estará apagado, y cuando esté ALTO, el motor estará encendido.
Puede conectar otro motor utilizando el mismo procedimiento en el extremo opuesto del chip si lo desea.
El L293D extrae una pequeña cantidad de corriente del Arduino y alimenta el motor de la corriente extraída a través del pin 8, y generalmente es ideal para tales situaciones.
fuente