Treadmill motor in lathe using MC-2100 PWM

Discussion in 'The Projects Forum' started by olduhfguy, Mar 7, 2011.

  1. olduhfguy

    Thread Starter New Member

    Mar 6, 2011
    2
    1
    I'm looking at re-purposing a PWM controller and motor from a treadmill to drive a mini-lathe. The MC-2100 board which was originally designed for this motor lacks the PWM circuitry to drive the mosfet, as this originally seems to come from the console. Is there a good spot to connect a 555 used as a pwm generator to this board without major surgery ? It seems as though it might be as simple as connecting the 555 to the blue 'speed control' on HD2, but I suspect the little on-board microprocessor may have other ideas. Does anyone have the actual print on the MC-2100 board ?
     
  2. olduhfguy

    Thread Starter New Member

    Mar 6, 2011
    2
    1
    I found some additional info on this board - It will control the motor in stand-alone mode if a PWM signal is generated externally. However the period of the pulse must be 51 msec +/- 1 msec. I am going to look around for a circuit that can generate this type of signal, perhaps a 555 timer driving a comparator ? Any ideas would be appreciated, thanks !
     
    rajeshgautam likes this.
  3. wayneh

    Expert

    Sep 9, 2010
    12,156
    3,063
    I think you'll need to divide down a crystal oscillator in order to hit that precise window. Drift will kill you otherwise.
     
  4. rajeshgautam

    New Member

    Apr 8, 2011
    3
    0
    Hi,

    I have treadmill with same board. Apparently the control panel of tradmill has gone bad. I am trying to supply PWM signal externally to control the speed.

    I tried PWM signal by programming arduino board. However, default frequency of Arduino is 500Hz (http://www.arduino.cc/en/Tutorial/PWM). I read elsewhere also that motor controllers require specific frquencies to function, similar to what you have mentioned about 51msec. However, the motor did not move at all, and the diagnostic LED on board remained solid red, indicating it did not recognize the PWM signal. I tried with different duty cycles but the motor did not move. So I guess the PWM signal's frequency mismatch might be the cause.

    A post here mentiones that some motor requires 50KHz. Now arduino's 500Hz means 2ms duration pulse, this translates to 20 Hz, this is very different from what the other guy is seeking (50KHz). Can you post the link where you found this figure. I'll any try to change arduino's frequency and give it a try.

    During experimentation my arduino board has gone bad, and I am trying to fix that first.

    Thanks
     
  5. rajeshgautam

    New Member

    Apr 8, 2011
    3
    0
    The information about 51 msec is correct. Although arduino does not support that timing in a standard way (as mentioned here) I generated the PWM with desired frequency in the main loop using digitalWrite HIGH/LOW at appropriate times using this:

    void loop()
    {
    digitalWrite(ledPin, HIGH);
    delay(30);
    digitalWrite(ledPin, LOW);
    delay(21);
    }

    By changing the HIGH/LOW durations and keeping total time at 51, the motor runs as different speed. Thanks for all who took time to post.

    Arduino is powered externally from MC2100 wires. A slight doubt is that the MC2100's voltage is around 13 VDC, that is on the higher side of recommended (12 VDC), although its well under safe limits (20 VCD). I hope it does't damage the ardiuno board. An earlier arduino board had stopped responding, god only knows the region.

    Next action item is adding buttons to change this duty cycle and speed. I have attached a 16x2 LCD display to arduino, and now plan to process speed pulses from motor and show its speed. The incline mechanism will be similar as mentioned by MC2100's documentation.

    Cheers.
     
  6. rajeshgautam

    New Member

    Apr 8, 2011
    3
    0
    The information about 51 msec is correct. Although arduino does not support that timing in a standard way (as mentioned here) I generated the PWM with desired frequency in the main loop using digitalWrite HIGH/LOW at appropriate times using this:

    void loop()
    {
    digitalWrite(ledPin, HIGH);
    delay(30);
    digitalWrite(ledPin, LOW);
    delay(21);
    }

    By changing the HIGH/LOW durations and keeping total time at 51, the motor runs as different speed. Thanks for all who took time to post.

    Arduino is powered externally from MC2100 wires. A slight doubt is that MC2100's voltage on connector's red wire is around 13 VDC, which is different from what is mentioned in specs (9 VCD). My multimeater is a cheapo (3 $) so might be that reading is incorrect. 12 VCD is on the higher side of recommended (12 VDC) for arduino's operation, although its well under safe limits (20 VCD). I hope it does't damage the ardiuno board. An earlier arduino board had stopped responding, God only knows the region.

    Next action item is adding buttons to change this duty cycle and speed. I have attached a 16x2 LCD display to arduino, and now plan to process speed pulses from motor and show its speed. The incline mechanism will be similar as mentioned by MC2100's documentation.

    Cheers.
     
Loading...