Joystick DC motor PWM speed control with quadratic or cubic ramp

Is it better to obtain the PWM values 0 - 255 via a quadratic (or cubic) equation like so PWM = 0.00097 joystick^2 - 0.99707 joystick + 255 with joystick ranging from 0 - 1023

Or would it be better to use Timer 1 on pin 9 with a pre-computed lookup-table?

I want a quadratic or cubic ramp to avoid starting the motor forwards or backwards with a too-high initial speed.

What does a real test show?

No test yet, because I would first like to find out if/when an equation or lookup-table is better, or if it doesn't matter.

I could analogWrite the below to an L293D's 1,2EN pin. Maybe that is better than permanently calculating an equation.

const unsigned int dutyCycleValues[256] = {
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,
    1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,
    2,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  5,  5,  5,
    5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,  8,  9,  9,  9, 10,
   10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16,
   17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25,
   25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,
   37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50,
   51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68,
   69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89,
   90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114,
  115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142,
  144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175,
  177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213,
  215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };

I don't think a non-linear ramp will help.

The motor has a minimum power input below which it will not start. The ramp will just change the position where the PWM value reaches that point and the motor will start at the same speed.

Pulley tension and weight of the lazy Susan it shall rotate may help a bit. I can see that after the motor starts (not from zero, as you say), that a non-linear ramp with lookup table feels smoother compared to a linear speed increase. Do you have some other ideas how to ramp up a standard DC gearmotor in a non-linear fashion?

@johnwasser Weight and pulley tension help quite a bit, but a DC motor is not the right type of motor as you suggested. I found a suitable low-cost stepper motor. Much better control, and super flat, too.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.