Multiplexing and controlling motors.

Hi all,

I'm currently trying to control 5 haptic actuators[1], using 5 individual DRV2605L[2] motor drivers. They have the same address so i bought the adafruit multiplexer. My concern is if i switch between the motors using the adafruit DRV2605 library, will the motor that i switched away from stop running and if so is it possible to program around that problem?

More context: theres going to be an array input of 5 elements ranging from 0 (off), 1 (medium) and 2 (max), which will change depending on an external device every 4 seconds.

So if the initial array = [ 1 1 0 0 0], when the multiplexer switches from the 1st motor to the second, will the 1st motor stop?

[1] https://www.precisionmicrodrives.com/product/307-103-005-9mm-vibration-motor-25mm-type [2] https://learn.adafruit.com/adafruit-drv2605-haptic-controller-breakout

I'm not an expert and have not used haptic motors. But from previous discussions about that driver chip on the forum, I remember it is quite an "intelligent" driver chip and can perform pre-defined sequences without intervention from the MCU. So hopefully the Arduino can send an instruction to one driver chip and then connect to another driver chip using the multiplexer and send another instruction while the first driver chip completes its task.

From what I can see the IN pin should be EN for enable. The picture appears to have a pull up resistor on that pin, which would make it work. You need to drive it low to turn it off. You can use a 74HC238 a 3 to 8 line demultiplexer. It will require three additional lines to control it. You can also use many other devices on the I2C, SPI buses as well. lf the part will program when not enabled this will not work. This response is to help you get started in solving your problem, not solve it for you. Good Luck & Have Fun! Gil