¿Cómo controlar 12 motores DC simultáneamente con Arduino Uno?

Estoy usando Arduino Uno. Necesito controlar motores de 12 cc de tensión nominal 9V y corriente 150mA. definitivamente, usaré MOSFET y diodo emf trasero para cada salida PWM. Necesito saber si puedo usar un multiplexor 74HC4051 para multiplexar una sola salida PWM de Arduino a 8 canales para poder tener 2 mux (8 canales) Realizo la tarea anterior. No me quedan suficientes pines en Arduino, también necesito minimizar el uso de pines digitales de Arduino, por eso estoy buscando un método de multiplexación.

¿Es posible usar un mux 74hc4051 para multiplexar la señal PWM? La frecuencia PWM será inferior a 200 kHz

También necesito controlar varios motores al mismo tiempo

Ese es un multiplexor "analógico" . Creo que deberías usar un de-mux digital. Como un 74HCT154. PWM entra en uno de los puertos de control. A0..A3 selecciona el canal para conducir. Tienes un pin de control de repuesto para encendido/apagado.
No creo que un mux sea exactamente lo que estás buscando. Quizás necesite un decodificador en su lugar.
@Oldfart, ¿qué pasa con 74HC4067?
Eso es de nuevo un mux/demux analógico. ¿Por qué crees que necesitas uno analógico? Tu Arduino emite una señal digital, por lo que es mucho, mucho mejor permanecer en el dominio digital. Con un interruptor analógico puedes tener todo tipo de problemas (por ejemplo, ruido) que los circuitos digitales no tienen. Lamento decir esto, pero si no entiende cómo hacer esto con un circuito digital, debe estudiar un poco más el tema antes de continuar con su proyecto.

Respuestas (2)

Sospecho que lo que necesita es PCA9685, un controlador PWM de 16 canales. Está optimizado para la conducción de LED, pero debería poder almacenar en búfer las salidas para impulsar motores. Es una interfaz I2C.

¿Crees que con IC solo MOSFET y diodo bemf son suficientes para hacer el trabajo?
@oppo: si solo necesita que los motores funcionen en una dirección, seguro
Sí. Solo necesito una dirección

Podría usar un mux digital , pero solo podría PWM un motor a la vez.

Si necesita controlar 12 motores de forma simultánea e independiente, puede ser más económico usar 13 Arduinos: uno para cada motor que realmente realiza el control y un "ejecutivo" que decide qué debe hacer el conjunto y envía comandos a cada uno de los 12 esclavos.