Arduino uno with Ibt_2 motor control for linear actuator control

Hello Arduino world,
I am a complete newbie with Arduino. I am working on a project where I need to control a linear actuator with a built in potentiometer. Wiring and set up is not a problem for me. I need help with the sketch to make it work. I do not have the time on this project to completely learn the programing language. This is why I am reaching out. What i need to achieve is

Push button to start motion
have speed ramp in slowly to full then ramp down toward end of travel(based on pot values)
then push button again to reverse the same ramp in and out.
I can use a 2 button setup if necessary.
I also need to set up soft limits based on pot values.

Hopefully someone out there can give me an idea of how to make this work.


Push button to start motion

The state change detection example show how to do that. As long as you decide which direction the thing should start moving in, that is...

have speed ramp in slowly to full

Over what distance/time?

You will also need an external transistor to supply the motor. How do you reverse the motor?

This is easily doable with any Arduino.

You need a state machine. with at least these States:

And some sample psuedocode

pot = updatePotValue()

if (State == WaitForButton) {
if (button1 == HIGH) {
State = StartLeft
} else if (State == StartLeft) {
speed = 0
state = AccelerateLeft
} else if (State == AccelerateLeft)
speed = speed+1

if (pot == leftEnd) {
// something is wrong!
state = StopLeft
if (speed == 255) {
state = FullSpeedLeft

//... and so on

Thank you both for the responses. I will start with this and see where it gets me. the IBT_2 motor controller should be the only needed link between the UNO and the Motor. It will do the reversing based on the output from the uno.