¿Cómo puedo usar relés y lidiar con la polaridad inversa con el Arduino?

Tengo un coche de juguete que quería hacer autónomo.

Coche impulsado por Arduino

Tiene un motor para tracción trasera (que se ve en la parte inferior de la foto escondido en la caja de cambios) y un motor para dirección de piñón y cremallera (ubicado justo encima de la cámara web en la foto). Invertir la polaridad permite que el automóvil retroceda, así como girar en la dirección opuesta.

He agregado con éxito cables de ruptura de estos dos motores, conectados además de los cables originales del juguete. Estos cables (rojo/negro para el motor de accionamiento y verde claro/oscuro para el motor de dirección en la foto) se conectaron a un Arduino. Pude controlar ambos motores con relativa facilidad usando Node.js.

Sin embargo, el carro de juguete tiene cuatro baterías de 1.5v para alimentarlo. Cuando verifico cuánta energía llega a los motores usando el Arduino, está por debajo de 1v, y el carro de juguete no puede conducir cuando se coloca en el suelo, ni puede girar las ruedas (solo escucho un clic y veo que el estante se mueve) 1 mm en cada sentido).

Si compruebo con un multímetro, las líneas parecen tener ~ 5v, pero una vez que están conectadas a los motores, caen por debajo de 1v.

Intenté desoldar las líneas originales que iban desde la placa de circuito impreso del automóvil hasta los motores, pero no pareció hacer ninguna diferencia. Si uso el control remoto original del automóvil, las ruedas vuelan y reciben los ~ 5v normales.

Me pregunto si es posible usar relés para permitir que Arduino controle la conmutación y la polaridad, pero que la fuente de alimentación original del automóvil proporcione la potencia final. Sé cómo funcionan los relés, pero tengo curiosidad si son compatibles con el cambio de polaridad. Si es posible, ¿necesitaría relés especiales o solo uno de los normales de Arduino?

En caso de que no lo supieras, soy nuevo en Arduino, con este como mi primer proyecto.

No hay suficiente corriente de accionamiento al interruptor, los MOSFET serían mejores. ¿Tienes un esquema?
@Heysoos No lo hago, por lo que he hecho hasta ahora es muy simple (simplemente ir directamente de los motores al Arduino y cambiar su polaridad allí).
El interruptor inversor o puente H es un controlador de corriente especial. No puedes simplemente XOR con lógica.
Te das cuenta de que Arduino no podrá hacer nada con la cámara web, ¿verdad? Para eso, necesitaría algo como una raspberry pi, beagle bone, un dispositivo Android basado en allwinner, etc., pero podría mantener el arduino como un supervisor de motor controlado en serie o spi.
@ChrisStratton Sí, tengo una Raspberry Pi. Desafortunadamente, no pude hacer que funcionara con la cámara web (todavía).
También podría ser un problema de alimentación con los fusibles PTC en los puertos USB, aunque ese es un tema aparte y una vez donde puede obtener más ayuda práctica en raspberrypi.stackexchange.com

Respuestas (2)

Sus puertos de salida Arduino no pueden suministrar el tipo de corriente que necesitan sus motores. Peor aún, no están preparados para soportar los picos inductivos que pueden causar los motores de CC con escobillas.

La solución a ambos problemas es utilizar un relé o un puente H (con diodos de retroceso). Desafortunadamente, la mayoría de los puentes H no están optimizados para 6 V, la mayoría prefiere 12 V o más. Para corrientes bajas, puede verificar un LD293D, aunque no funcionará tan bien a 6V.

Si usa un relé, tenga en cuenta que no puede conectar un relé directamente a los pines de Arduino. Hay muchas placas de relés para Arduino que combinan un relé con un transistor y el diodo de retroceso (que ahora se necesita para la bobina del relé).

Tenga en cuenta que puede que no sea una buena idea utilizar la misma potencia tanto para los motores como para el Arduino. Comience con dos juegos de baterías separados. Si hace que todo funcione, puede intentar combinar las baterías, tal vez con alguna supresión de picos. Si algo sale mal, sabrá la causa probable.

Un TB6612FNG probablemente brindará un rendimiento mucho mejor que un L298 que tiene una pérdida interna mucho mayor. Sin embargo, es posible que esa pérdida ya se haya tenido en cuenta en el recuento de células original del juguete. Otra opción es intentar tomar prestados los componentes de la unidad de la PCB original. Vea, por ejemplo, si puede encontrar un montón de transistores (como a la izquierda de su PCB) impulsados ​​​​por resistencias idénticas, todas conectadas a un IC.

Así es como se puede accionar un motor que consume una cantidad considerable de corriente utilizando relés