0
\$\begingroup\$

I am using Arduino Uno. I need to control 12 dc motors rated voltage 9V and current 150mA. definitely, I will use MOSFETs and back emf diode for each PWM output. I need to know whether I can use a 74HC4051 multiplexer to multiplex a single PWM output from Arduino to 8 channels so I can have 2 mux (8 channels) I get the above task done. I do not have enough pins left in Arduino also I need to minimize the usage of Arduino digital pins that's why I am looking for multiplexing method

Is possible to use a 74hc4051 mux to multiplex PWM signal? PWM frequency will less than 200kHz

I need to control multiple motors same time as well

| improve this question | | | | |
\$\endgroup\$
  • 1
    \$\begingroup\$ That is an "analogue" multiplexer. I think you should use a digital de-mux. Like a 74HCT154. PWM goes into one of the control ports. A0..A3 select the channel to drive. You have one spare control pins for on/off. \$\endgroup\$ – Oldfart Aug 26 '19 at 15:03
  • 1
    \$\begingroup\$ I don't think a mux is exactly what you're looking for. Perhaps you need a decoder instead. \$\endgroup\$ – KingDuken Aug 26 '19 at 15:03
  • \$\begingroup\$ @Oldfart what about 74HC4067 ? \$\endgroup\$ – oppo Aug 26 '19 at 16:15
  • 1
    \$\begingroup\$ That is again an analogue mux/demux. Why do you think you need an analogue one? Your Arduino outputs a digital signal so it is much, much better to stay in the digital domain. With an analogue switch you can have all kinds of problems (e.g. noise) which digital circtuis do not have. Sorry to say this, but if you do not understand how to make this with a digital circuit you should study the subject a bit more before you continue your project. \$\endgroup\$ – Oldfart Aug 26 '19 at 16:24
2
\$\begingroup\$

I suspect what you need is PCA9685, a 16-channel PWM controller. It is optimised for LED driving, but you should be able to buffer the outputs to drive motors. It's a I2C interface.

| improve this answer | | | | |
\$\endgroup\$
  • \$\begingroup\$ Do you think with IC only MOSFET and bemf diode is enough to do the job? \$\endgroup\$ – oppo Aug 26 '19 at 15:03
  • 1
    \$\begingroup\$ @oppo -- if you only need the motors to run in one direction, sure \$\endgroup\$ – Scott Seidman Aug 26 '19 at 15:45
  • \$\begingroup\$ yes. I need only one direction \$\endgroup\$ – oppo Aug 26 '19 at 15:47
1
\$\begingroup\$

You could use a digital mux, but you would only be able to PWM one motor at a time.

If you need to control 12 motors simultaneously and independently, it may be cheapest to use 13 Arduinos -- one for each motor actually doing the control, and one "executive" that decides what the assemblage should do and sends out commands to each of the 12 slaves.

| improve this answer | | | | |
\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.