Help using Arduino to control motorized potentiometers

Hi all - I'm new to Arduino and looking for some advice on how best to implement the following:

I'm looking to control three motorized rotary potentiometers. Data Sheet: https://www.bourns.com/docs/product-datasheets/PRM16.pdf

These rotary pots are dual gang with one track for - in my case - analog audio signal control and the other for position control of the motor. The motor is built into the unit and runs on 4.5 VDC (100mA mx).

I wish to be able to manually turn knobs on each pot - then press a 'record' button to save the postions of all three, and assign it to one of five presets. Then, be able to click an individual switch on a seperate external interface to recall each preset and to return the knobs to relevant positions as saved. So I'm looking to be able to save and then recall 5 positions of the knobs as presets.

Yes, being able to see the knobs magically move to their new positions after a preset is selected is important for this project. The pots I'm using also allow for the user to manually override the current postions to anything desired on the fly and then they should be able to click a preset to return them to a previously saved position.

I wish these presets to endure after power is switched off to the device and would like to add a simple LED display to highlight which preset is currently selected. This can be very simple like a number: 1-5 for example.

I'm thinking a basic microcontroller should be able to handle this task - which would you recommend from the Arduino range?

I also need a power supply to feed the pot motors - what would be a useful board for this task?

And then the biggie: how do I hook them all up and program them?

What other pieces of Arduino kit am I likely to need to complete the task?

I'm sure there are a bunch of questions I haven't thought to ask so please hit me up with any ideas and I'd be very grateful for any advice you may have.

Thanks!

Hello tefalcon

Welcome to the best Arduino forum ever :slight_smile:

My advice:

Start by designing a system block diagram.
This block diagram contains all hardware components and their dependencies.
The physical and logical properties of the interfaces are identified, as well as the respective energy consumption.
In the next step start with sketch design using the hardware design given.

hth

Take this example to get started:

grafik

1 Like

Thanks for the welcome @paulpaulson - good plan, will get busy with the system block diagram and add it back to this post soon for further info. Cheers!

It seems you're a beginner (how do I hook them all up and program them?).
Maybe start with an Uno R3 and an Adafruit motor shield (up to four motors).
The shield has a screw terminal for motor power.
The internal EEPROM of the Uno can be used to store the settings.
Leo..

1 Like

From the description you provided it appears you need 5 analog inputs to measure the pot positions and 5 motor drivers to control the motors. You will want the motor drivers to be speed controlled which can be accomplished with pulse width modulation (PWM). You will also need some digital inputs for the control buttons. The number of those that you need will depend on how you want to control the pots, and how clever you get at combining the switch readings.

Do you want 5 settings for each individual pot (25 switches), or do you want to set all pots at the same time (5 switches)? Note switches are most likely going to be pushbuttons.

As you can see there are many decisions to be made before we can recommend a processor. It would seem that the job could be accomplished using an Uno or a Nano. You may have to add some shift registers depending on the total switch and LED count.

The choice will also be influenced by your budget and how much ingenuity you want to use up. You can spend more money and use a Mega which will require less thinking than a solution using a(n) Uno/Nano.

So as you build your block diagram the processor can be considered as an unknown. Just draw lines to that box with labels such as analog input, digital input, etc.

1 Like

Leo..

1 Like

That cuts dow the complexity.

1 Like

Yep, I'm an Arduino beginner:) The Uno R3 was what I'd been looking at and that Adafruit motor shield looks the business too for my application. Thanks!

Very cool info thank you. There will be three motors so looks like I need 3 analog inputs and drivers. But 5 preset positions - with each preset recording the current position of the three motors. Each preset has it's own switch, so there will be 5 individual switches and each time a switch is activated, it'll move all three motors at once. An LED indicator for each switch to indicate which is currently active would definately be useful. I'll add this to the block diagram. Cheers!

Ok, thanks for all the info thus far. Here's my current block diagram as a starting point:

@paulpaulson @Wawa

Are you missing the bit with the touch sensors that allow you to release the power to the motor when you touch them, allowing you to manually move them? Or are you going to cut the power to each of the sliders once the move is complete?

I once did a very similar thing with slider pots.

1 Like

That looks very cool @Grumpy_Mike ! I'm planning to cut power to the motors once the pots had been moved to their desired setting. They're stiff enough to turn that they're not going to wander once in position - unless you manually adjust them when you want to. These are the motorised pots I'll be using:

Thanks.

The project was a bit more complex than yours because it had to respond to messages (I2C) sent from a master Mac Mini and yet still be able to control the addressable LEDs. As you might know when the LEDs are being refreshed then the interrupts are disabled so you can miss external messages.

To counter that I used an ATtiny85 to drive the LEDs, and sent the data to it using an SPI like protocol that could stand being interrupted by messages.

I used two SN754410 chips to drive four motors. Also the motors were powered from 12V, in fact the whole system was. And so I used a switching regulator (buck converter) to derive the 5V for the system.

If it helps I could send you a schematic of this system, but maybe this is a bit more complex than you need for your project.

1 Like

Thanks @Grumpy_Mike would be great to see your schematic. Def a bit more complex than what I'm doing but I'm sure there will be things I can learn from it. Are you able to forward via the forum?

No problem this is it:-

Any questions about it, just ask.

1 Like

This is very cool, thanks for sharing! I'm going to digest this and will sing out with any queries on what's doing what. Cheers!