Motor with fixed frequency but changing amplitude

Hello everyone,

I need to design a circuit and code that allows a vibration motor to operate at a fixed frequency and its amplitude can be changed at a rate of 1 micro meter per second.

I was wondering if anyone could help me out with this. I already bought a haptic motor driver to operate with an ERM motor but the PWM control cannot allow the frequency and amplitude to operate independently. I then bought an LRA motor, hoping I would be able to control the frequency and amplitude independently but still could not.

If anyone could provide me some sort of guidance on this it would be super helpful!

Thank you :slight_smile:

Hello @layla12345

Please can you take a moment to read How to get the best out of this forum.

Some things missing from your question, which make it hard to answer:
What your level of knowledge and experience is.
Details of what parts you have, such as links to where you bought them and exactly what they are.
Information about what you have tried yourself already; what worked, what didn't work and why.
Exactly what kind of help you want people to give you.

Thank you.

Do some research about how vibration motors work. In the text You mix PWM, amplitude, frequency. It makes no sense.

You need a motor with an adjustable excentric.

Of course, the only thing you can control is the speed.

Probably because "R" means resonance (AKA "tuned" to a particular frequency).

There are bass shakers that run from an audio power amplifier and they operate over a range of frequencies but they are designed to vibrate a chair or the floor so they might be too big for what you need (and they need a "big" amplifier). And, you need a real analog signal (not PWM) so the regular Arduino won't work.

Hi @PerryBebbington, thanks for the welcome!

My knowledge level isn't too bad but I'm definitely not an expert. I have used arduino before and am familiar with C++ coding. I would classify my knowledge level as intermediate.

Here's a link to the things I have tried
-Haptic Driver: SparkFun Haptic Motor Driver - DRV2605L - ROB-14538 - SparkFun Electronics

Each motor was paired with the haptic driver above and used a code similar to what is shown here: Haptic Motor Driver Hook-Up Guide -

I was unable to control the frequency and amplitude independently with all these items. I'm hoping to just get some guidance.


Here's a link to the things I have tried
-ERM motor: Vibration Motor - ROB-08449 - SparkFun Electronics
-LRA motor: SparkFun Qwiic Haptic Driver Kit - DA7280 - ROB-18247 - SparkFun Electronics (without the motor driver just the LRA motor)

Sorry had to put these in 2 comments - I was unable to add more than 2 links in the reply.

Thanks for replying to my initial question!

I was worried about the electronics needed to operate this would be too bulky for the project. A design restriction is that the device needs to be small and compact :confused:

Could you please elaborate a bit more on this?

Thanks :slight_smile:

You change the amplitude by changing the voltage of the signal. The best example is when you use a variable transformer, a variac, to change the mains voltage from zero up to the maximum. The frequency does not change, but the AMPLITUDE is adjusted by the contact on the transformer.
You will have to design something similar for your project.