Control del motor con un Arduino Uno ... ¿Es posible (y seguro)?

2

Tengo un Arduino Uno y un jeep RC con un motor de CC funcional y un servo de giro delantero. , pero no tengo un escudo Ardumoto para controlarlo (todavía).

Realmente me gustaría saber si es posible y seguro para mi Arduino Uno (de back-EMF ) para construir un circuito para controlarlo con el Arduino Uno, utilizando algún mecanismo de conmutación para alimentar el motor por separado de los 5 V del Arduino Uno.

Descubrí que el motor toma (creo) un máximo de 6.8 V conectándolo a una batería de 9 V (su etiqueta dice que toma 9.6 V para todo el vehículo, incluido el servo de la rueda delantera y algunos LED). Conecté la batería a través de mi placa de pruebas con un mini interruptor SPST y leí el voltaje con mi medidor. El motor tiene 8 ohmios de resistencia, así que me imagino que está tirando de 0.85 A / 5.78 W.

Tengo algunos amplificadores operacionales 741 y LM324, algunos diodos 1N4001 y Zener, una variedad de transistores NPN y PNP, incluidos algunos transistores Darlington TIP120 y varios capacitores.

¿Puedo usar alguna combinación de ellos para alimentar el motor y el servo al mismo tiempo que protege el Arduino Uno de la parte trasera de EMF? Si no, pediré el Ardumoto.

Si ayuda, las imágenes del jeep con los primeros planos etiquetados del motor / servocontrolador de valores están aquí:

enlace

He buscado esto en Google y también he preguntado al respecto en Reddit . Sin faltarle el respeto a esos tipos, porque sus respuestas fueron asombrosas. Pero había información tanta entre varios sitios y diferentes publicaciones en el subreddit, que era un poco abrumadora y, en ocasiones, conflictiva. Solo estoy tratando de aprender e identificar la mejor solución.

    
pregunta tommytwoeyes

2 respuestas

7

Dado que puede reemplazar el arduino por menos de $ 30 (o por alrededor de $ 5-6 si el chip atmega está conectado, o solo $ 3.50 por un atmega en blanco, puede inicializar en una placa de pruebas usando el bosquejo arduinoISP antes de fríe el actual), si está más interesado en aprender sobre las cosas, diría que siga adelante y construya algunos circuitos de conducción. Por otro lado, si solo quieres "ponerlo en marcha", compra el escudo del conductor de alguien o el módulo de controlador controlado en serie.

Además, las baterías "9v" tienen una capacidad de corriente muy pequeña y no están diseñadas para motores; el uso de una con un motor hará que su voltaje se hunda y se agote rápidamente. La mayoría de los componentes de su juguete están conectados en paralelo: la batería de 9.6v (que probablemente consiste en 8 celdas NiCd o NiMH de tamaño AA) probablemente alimenta el motor de transmisión directamente, y el servo y la electrónica a través de un regulador de voltaje de aproximadamente 5 voltios (Al menos si son piezas estándar). Probablemente deberías mantener ese esquema.

Hay algunas cosas que puede hacer para "proteger" al arduino, como el uso de optoaisladores (esencialmente un LED y un fototransistor moldeado en un paquete similar a IC: puede hacer su propio elemento con partes discretas y tubos de encogimiento de calor) para transferir señales entre el arduino (o receptor de radio) y el servo y el motor de accionamiento sin que haya ninguna conexión eléctrica entre los dos, cada uno en ese caso que requiere su propia batería. Sin embargo, la mayoría de los equipos de presupuesto simplemente se basan en un diseño cuidadoso y filtros para eliminar los picos, el ruido de suministro y la RFI. Entre las cosas que verá en los vehículos de R / C:

  • pequeños condensadores a través de los terminales de los motores, y / o entre cada terminal y la caja del motor

  • si el motor es unidireccional, un diodo invertido a través de los terminales, si es bidireccional cuatro diodos invertidos entre los dos terminales del motor y los dos terminales de la batería.

Lo más probable es que pueda encontrar una solución que funcione con la misma batería si alimenta el motor directamente, ejecuta el servo con su propio regulador de 5v y el arduino con su regulador de a bordo de 5v. Alternativamente, puede darle al arduino su propia batería (tal vez 3 AAA si pasa por alto el regulador) y establecer una conexión a tierra común entre eso y el motor / servo batería.

En términos de circuitos de controlador para el motor principal, la gran pregunta es si está de acuerdo con el avance solamente, o si necesita avanzar y retroceder. Las preguntas relacionadas son el control de velocidad del ciclo de trabajo de PWM, el frenado electrónico y la eficiencia.

Para un juguete pequeño con solo hacia adelante, simplemente puede usar un transistor NPN de tamaño mediano como interruptor en el cable negativo (emisor a batería, colector a motor), con la base conectada a través de una resistencia a un arduino alfiler. Un enfoque pragmático sería comenzar con una resistencia grande como 10K ohmios y reducir la resistencia hasta que la caída de tensión en el transistor se reduzca a aproximadamente .6v, lo que implica que está completamente "encendida" y que la mayor parte del voltaje de la batería está disponible para el motor.

Hacer el control de avance / retroceso es más complicado: generalmente se logra con un "controlador de puente H" en el que cada tramo del motor se puede conectar al terminal negativo de la batería a través de un transistor NPN o al terminal positivo a través de un PNP. Se requieren dos pasadores de control: 01 es un sentido de rotación, 10 el otro, mientras que 00 y 11 detienen el motor. La construcción de puentes H es un poco complicada: debe asegurarse de que la polarización es tal que el transistor NPN y PNP en un lado no puede estar encendido al mismo tiempo y cortocircuitar la fuente de alimentación, pero existen soluciones empaquetadas como la L293 y L298 (que maneja dos motores).

Los transistores bipolares tienen pérdidas sustanciales a bajos voltajes, por lo que los vehículos de mayor rendimiento normalmente usan MOSFET, pero es más difícil trabajar con ellos (especialmente en una configuración de puente H) y manejar (están sujetos a daños por estática o sobretensión).

    
respondido por el Chris Stratton
3

Será seguro hacer lo que quiera para una amplia gama de valores de seguridad :-).
 es decir, controlar un motor utilizando un controlador de construcción propia y un Arduino básico no es técnicamente difícil, pero a lo largo del proceso se está aprendiendo lo que usted necesitará estar dispuesto a hacer. Comprar una pieza si el hardware que ya funciona facilitará su tarea. Irás más rápido (probablemente) pero aprenderás menos o mucho menos. La decisión es tuya.

Algunos de sus conceptos e ideas básicos "necesitan mejorar", y la gente aquí estará dispuesta a ayudar en esta área. No voy a entrar en un tutorial sobre áreas en las que se necesita más información todavía. Veamos cuál es tu primera opción.

Como se muestra a continuación, si el Ardumoto hará lo que usted quiere, puede hacerlo usted mismo de manera razonablemente fácil. Si esto vale la pena es TBD. Esto NO utiliza la retroalimentación del motor de la cámara trasera para permitir que el procesador controle la velocidad. Esto es factible. Si desea hacerlo puede determinarse "en el camino".

Es "bastante fácil" controlar los motores como usted lo menciona sin explotar su Arduino, y también lo suficientemente sencillo como para hacer estallar las cosas si insiste en no tener suficiente cuidado :-).

Tenga en cuenta que el L298 puede controlar motores hasta aproximadamente 4A. Lo que realmente necesita el motor actual es TBD, esa es una de las interpretaciones erróneas que deben resolverse.

El L298 en un paquete de orificios pasantes cuesta $ 4.67 en 1 en Digikey. ¿Cuánto es un Ardumoto o equivalente?

El Ardumoto se ve como se muestra a continuación y está basado en el controlador de motor de puente completo ST L298
hoja de datos aquí

Uncircuitocompletodecontroldelmotorpuedesertansimplecomosemuestraacontinuación,yajuzgarporlaimagenanterior,probablementesetratedeestesimpleenestecaso:

Eso debería hacer por ahora. ¿Comentarios?

El control del motor mediante una placa controladora TB661FNG disponible aquí desde Sparkfun está muy bien cubierto en hoja de experimento de laboratorio referenciada por tommutwoeyes en respuesta a su propia pregunta. Está todo allí. Ahora es cuestión de pasarlo todo punto por punto y hacer lo que dice.

Como guía, que realmente no debería ser necesaria, ya que todas las conexiones ya están nombradas, el diagrama a continuación, tomado de la hoja de laboratorio, proporciona pautas de conexión.

Tenga en cuenta que están utilizando 7.5V para el motor y 5V para el IC. Se puede hacer funcionar un motor adecuado desde 5V CC PERO utilizando una fuente separada de la fuente IC, pero con las conexiones a tierra unidas. significa que es más fácil mantener el ruido del motor fuera del IC.

    
respondido por el Russell McMahon

Lea otras preguntas en las etiquetas