Haptic Motor Driver with Arduino to control amplitude of motor

Hi,

I recently ordered the spark fun motor driver (DRV2605L) and using it with an arduino and vibration motor (ROB-08449). I am developing this for a research project that requires the motor to operate at a constant frequency of 100 or 120 Hz but the amplitude needs to be increased by increments of 1 micro meter per second.

I was wondering if this could be possible to do with the motor driver. I know I can control the frequency through the PWM input but is there anyway I can control the amplitude from the arduino?

PS - This is my first time using the haptic motor driver.

Thanks!

The motor/stator size is what will largely determine its amplitude…this model has a 60mA max

You could try to adjust your PWM code to send a full 60mA signal at varying frequencies, but going higher than the amp of the PWM voltage isn’t possible (see here https://en.wikipedia.org/wiki/Pulse-width_modulation for an explanation of how PWM works)

Unfortunately because of how ROB-08449 is designed, you can’t change amplitude without also changing the frequency. It’s just a regular motor with a off center weight mounted to the motors shaft. The faster the motor spins, the greater the amplitude, but you’re also changing the frequency with an increase in speed.

What you need to do what you’re after is a LRA type vibration motor and while we don’t sell those individually, we do carry them as a part of [ROB-18247 which also includes a driver board for the motor. :-)](https://www.sparkfun.com/products/18247)

Thank you so much for your help! Would you be able to provide information on how I would be able to independtly change amplitude and frequency with the new vibration motor and driver board? Also, am I able to change amplitude at 1 micrometer per second with this motor driver?

Thanks!!!

Looks like you can adjust the intensity of vibration via I2C and the frequency of vibration via PWM. You’d need to experiment with the two different bits of example code, I don’t think we have any example code that combines the two so you’d need to write that on your own.

Check the [hookup guide for a link to the library and some example code.

There might be a better solution out there for what you’re wanting to do but this board would be the closest thing we carry for you.](https://learn.sparkfun.com/tutorials/qwiic-haptic-driver-da7280-hookup-guide)