548,277 active members*
595 visitors online*
Register for free
Login
IndustryArena Forum > Community Club House > General Off Topic Discussions > Closed loop stepper motor control using arduino
Results 1 to 3 of 3
  1. #1
    Member
    Join Date
    Apr 2020
    Posts
    2

    Closed loop stepper motor control using arduino

    I have a stepper motor (CS-M23480) with built in encoder for closed loop feedback which is connected to a driver CS-D1008 via a vga cable.

    I have two problems:

    1. I have no idea how to control the feedback from the motor to know its position; since there is no output connection from the driver into the arduino, so how am I supposed to know the location of the motor? Also, the driver data sheet specifically states that the R232 connection can only be using for tuning not for feedback.

    2. the vga connection that came with the driver has 7 wires coming out of it instead of 6 with two black wires, one looks the same as the rest of the wires and the other is much thicker, and according to the data sheet the black wire isn't the ground wire, either.


    any help is greatly appreciated

    PS : I tried to upload the data sheets to ease the process but the site says they are too large to be uploaded here.

  2. #2
    Registered
    Join Date
    Nov 2013
    Posts
    1441

    Re: Closed loop stepper motor control using arduino

    Hi,
    a closed loop stepper and driver is between the stepper and driver, not the Arduino.

    If the Arduino commands 1000 steps CW for instance the driver issues 1000 pulses to the stepper, plus or minus any pulses necessary for the stepper
    to arrive in the right location, the plus or minus steps are at the sole discretion of the.driver/stepper encoder combination.

    The best the Arduino can do is assume that the stepper got to its commanded location. If it did not the driver would know that for whatever reason, maybe overload,
    that the stepper cannot get to its commanded location the drive will fault 'following error'.

    To my knowledge no closed loop stepper drivers have the ability to report the current encoder count to the motion controller to monitor.

    Modern AC servos do have that feature however.

    Closed loop steppers are still cheaper than entry level AC servos but the price gap is increasingly narrow. Closed loop steppers do have some advantages
    over open loop steppers but far FAR less than the manufacturers claim, and to my mind are not worth the premium paid. If you want closed loop 'goodness'
    go for AC servos and be done with it.

    A modern AC servo will EAT any stepper, open or closed loop, ever made.

    Craig

  3. #3
    Member
    Join Date
    Apr 2020
    Posts
    2

    Re: Closed loop stepper motor control using arduino

    I believe you are missing my question.

    The driver has pins that are to be connected to the motor's encoder output, I am asking how to get a use out of these pins. specially since I said in point number 2 in my question that instead of the 6 expected wires I found them to be 7 with two black wires instead of one, with one thicker than the other.

    thanks

  4. #4
    Registered
    Join Date
    Nov 2013
    Posts
    1441

    Re: Closed loop stepper motor control using arduino

    Hi,

    I believe you are missing my question
    No, I understood your question perfectly, you did not understand my answer.
    Closed loop steppers do not reveal the encoder output for monitoring purposes.

    Craig

  5. #5
    Community Moderator Jim Dawson's Avatar
    Join Date
    Dec 2013
    Posts
    5170

    Re: Closed loop stepper motor control using arduino

    Just parallel off of the drive encoder connections. The thick wire is most likely the shield, use an ohmmeter to confirm.
    Jim Dawson
    Sandy, Oregon, USA

  6. #6

    Re: Closed loop stepper motor control using arduino

    Be aware that an encoder will only give you incremental position ie how far the motor has turned. So what you will get will be a pair of quadrature (A and B) signals that you will have to use to count up or down from a starting value. For absolute position you'd need something like a resolver.

    The connector is more likely to be a 9 pin Dsub than a VGA connector. Take the encoder apart and trace the wires to the line driver to see how they are connected up. And expect to replicate the line driver receiver at the other end of the cable, to convert the signals back to TTL for the Arduino. It's conventional stuff but if I've lost you, you may be on a learning curve here...

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •