584,857 active members*
4,245 visitors online*
Register for free
Login
IndustryArena Forum > Hobby Projects > Hobby Discussion > Dual Stepper Motor shield [ITEAD]. Trouble shooting (Buzzing Only)
Results 1 to 12 of 12
  1. #1
    Join Date
    Apr 2011
    Posts
    73

    Dual Stepper Motor shield [ITEAD]. Trouble shooting (Buzzing Only)

    I bought a Dual Stepper Motor shield (ITEAD). It is plugged into an Arduino Mega 2560.
    I have hooked it up, checked and re-checked the wiring but I just get buzzing from both X and Y, when I use the test program. I set the pin call outs for X and then change them for Y. I get about the same thing for both of the two different stepper motors. I know that the extension wiring and motors work fine with other driver boards.

    I tried to tune the pot on the Y axis but that didn't help. There doesn't seem to be any difference when I plug in a 2 amp, 30 volt power supply either. It does not run any better or buzz louder. I just get the same rhythmic buzzing sound as it cycles through the three step modes, only the pitch changes from low to medium to high.

    I tried reversing the 2A and 2B on each channel. I get the same buzz when I do but it is not as strong. I also verified that the power select switch is on 5V.

    The X motor is a Stepper Motor: Bipolar, 200 Steps/Rev, 28×32mm, 3.8V, 0.67 A/Phase
    Pololu - Stepper Motor: Bipolar, 200 Steps/Rev, 28×32mm, 3.8V, 0.67 A/Phase

    The Y motor is a 57byg stepper motor:
    Attachment 192134
    Click image for larger version. 

Name:	steppermotorspecs.jpg 
Views:	0 
Size:	20.4 KB 
ID:	192140
    No. of phase 2
    Voltage 1.5 current 2.2
    resistance 5.2
    Holding Torque (Kg cm) 6.4
    size LO 2.09" Lf 1.61"

    I just bought this dual driver shield because I wanted to consolidate and simplify the project.

    In light of what I have done so far, what should I check first?


    I added a picture of the wiring, minus the extensions. I have tested the continuity of the wiring with the meter and each of the two motors (with the extension wiring) run fine with either of two other stepper motor drivers.

    I have added this for reference but I tried other code as well.
    Code:
    // ******************************************************
    // Micro Robotics
    // Test Procedure to test Y channel 
    // www.robotics.org.za 
    // written by : Frikkie du Toit
    // For Stepper Shield ver 1.0
    // 
    //  To test Y Channel         To test X Channel 
    //  STEP_PIN 6                STEP_PIN 2 
    //  DIR_PIN 7                 DIR_PIN 3
    //  YMS1 8                    YMS1 4
    //  YMS2 9                    YMS2 5
    // ******************************************************
    
    #define STEP_PIN 2        
    #define DIR_PIN 3          
    #define YMS1 4             
    #define YMS2 5            
    
    void step_mode(byte yms1, byte yms2)
    {
      // Set the pins to select the step mode
      
      digitalWrite(YMS1, yms1); // Set pin YMS1 to the parameter given
      digitalWrite(YMS2, yms2); // Set pin YMS2 to the parameter given
    }
    
    void step(int steps, float speed)
    {
      // Take the amount of steps specified
      // Negative value for opposite direction
      
      byte dir;
      float micro_sec_delay;
      
      if (steps > 0) // If steps are positive
      {
        dir = HIGH; // Set direction
      }
      else // If steps are negative
      {
       dir = LOW; // Set direction 
      }
    
      steps = abs(steps); // Set steps to absolute value
      digitalWrite(DIR_PIN, dir); // Set the direction pin to dir
    
      micro_sec_delay = 1 / (speed / 100) * 70; // Calculate delay between  step pin toggles
    
      for (int i = 0; i < steps; i++)
      {
        // Takes all the steps in the specified direction
        
        digitalWrite(STEP_PIN, HIGH);
        delayMicroseconds(micro_sec_delay); 
    
        digitalWrite(STEP_PIN, LOW);
        delayMicroseconds(micro_sec_delay);
      }
    }
    
    void setup()
    {
      // Set all the pin modes
      
      pinMode(STEP_PIN, OUTPUT);
      pinMode(DIR_PIN, OUTPUT);
      pinMode(YMS1, OUTPUT);
      pinMode(YMS2, OUTPUT);
    } 
    
    void loop()
    { 
      step_mode(HIGH, HIGH); // Set step mode to Eighth Step mode
      
      step(1600, 25); // Take 1600 steps (1 revolution) with speed set to 25
      delay(1000); // Delay one second
      
      step_mode(LOW, HIGH); // Set step mode to Quarter Step mode
      
      step(800, 25); // Take 800 steps (1 revolution) with speed set to 25
      delay(1000); // Delay one second
      
      step_mode(HIGH, LOW); // Set step mode to Half Step mode
      
      step(400, 25); // Take 400 steps (1 revolution) with speed set to 25
      delay(1000); // Delay one second
    }

  2. #2
    Join Date
    Jan 2010
    Posts
    2141
    How about checking the step and direction signals from the Arduino to the stepper driver shield to make sure that they're showing up?

    Do you have an oscilloscope? If not, you could use a multimeter (on the DIR pins - and if you greatly increase the step delay value, on the STEP pins as well).

    You should also test the voltages of the two step mode pins.

    But slowing down all of the timing-related delays would be a good idea if you're using a multimeter.

    Also - your link to the second stepper motor does not identify which model it is - what is the current rating of that motor? What is the Vref set to for each of the drivers?

  3. #3
    Join Date
    Apr 2011
    Posts
    73
    Thank you,
    I edited my original post to update the information on the Y motor.
    I have not been able to get home to see how much of what you suggested, I can actually do. I don't have an oscilloscope but I do have a meter.

  4. #4
    Join Date
    Jan 2010
    Posts
    2141
    Your photo shows a 57BYG084 (0.6A per phase) but the data that you included was for a 57BYG048 (2.2A per phase). I am guessing that the photo is of the actual motor, but please confirm that.

    According to the datasheet at http://www.jameco.com/Jameco/Products/ProdDS/162027.pdf the 57BYG084 is a 6-wire motor with a high inductance of 25 mH per phase. To use it with a bipolar driver such as the one that you have chosen, you will have to wire up 4 of the wires (and ignore two of the wires). You could wire it up in "full coil" mode or "half coil" mode. It would be best to choose the "half coil" hookup, but that motor may not be the best match for your driver.

  5. #5
    Join Date
    Apr 2011
    Posts
    73
    Like I said, I haven't gotten home yet to work on the project but I was curious. What are the benefits and drawbacks of full and half coil hookups?

  6. #6
    Join Date
    Jan 2010
    Posts
    2141
    The full-coil hookup would have the highest winding inductance (IIRC, it would perhaps be four times the inductance of the half-coil hookup). A high inductance would mean that either your available torque would drop off rapidly as you tried to increase the motor speed, or else you would need to use an extremely high voltage on the motor (in excess of 100 volts, which would be much greater than the driver could handle). So the half-coil hookup would be the better way to go. Even with the half-coil hookup, you will not be able to maximize the torque from the motor at high speeds with the voltage that you will be using with the driver electronics.

    But then I'm not sure what kind of apparatus you are planning to drive with those motors - a pen plotter or a Dremel tool or a 3D printer extruder or something else... The motors do not have a lot of torque to begin with, but would probably be suitable for a small machine, and so maybe "high" speed is not a critical factor.

  7. #7
    Join Date
    Apr 2011
    Posts
    73
    The wiring was set to this:
    1B->GREEN
    1A->BLACK
    2A->RED
    2B->BLUE
    It was suggested by a tech for this board that I change the wiring to the following:
    1B->BLACK
    1A->GREEN
    2A->BLUE
    2B->RED

    He also gave me this new code to use.
    Code:
    int dirPin1 = 3;
    int stepperPin1 = 2;
    int dirPin2 = 7;
    int stepperPin2 = 6;
    void setup() {
      pinMode(dirPin1, OUTPUT);
      pinMode(stepperPin1, OUTPUT);
      pinMode(dirPin2, OUTPUT);
      pinMode(stepperPin2, OUTPUT);
    }
    
    void step(boolean dir,int steps){
      digitalWrite(dirPin1,dir);
      digitalWrite(dirPin2,dir);
      delay(50);
      for(int i=0;i<steps;i++){
        digitalWrite(stepperPin1, HIGH);
        digitalWrite(stepperPin2, HIGH);
        delayMicroseconds(100);
        digitalWrite(stepperPin1, LOW);
        digitalWrite(stepperPin2, LOW);
        delayMicroseconds(100);
      }
    }
    
    void loop(){
      step(true,1600*5);
      delay(500);
      step(false,1600*5);
      delay(500);
    }
    Both motors do the same think. The buzzing is coming from the motors not the board. There as some resistance to manual turning when the buzzing is activated. It feels like it is oscillating, pushing and pulling but not going anywhere. Then when it stops, the resistance goes up until the next cycle starts again.

  8. #8
    Join Date
    Jan 2010
    Posts
    2141
    I would not expect the rewiring of the motor leads to have any effect on the problem.

    The wire color codes are for the Pololu motor, right? The other motor should be hooked up according to the color codes shown in the datasheet linked above, for half-coil wiring.

    Are you running 30 volt power to the motors? It would be good if you could adjust Vref for each of the motors according to the formula for setting the desired motor current.

    It is possible that even the revised program is sending steps too quickly for the motors to respond, so you might consider modifying the program to slow things way way down (you can keep the step pulse the same length, but do not repeat the step pulses as quickly). Also, the new program does not appear to be setting the microstep mode, so I'm not sure what mode it is being set to.

    Also note - if you do not have a mechanical "load" connected to the stepper motors, it might be a good idea to put some kind of load on the shafts - sometimes without a load, the stepper shaft may just oscillate in place.

  9. #9
    Join Date
    Apr 2011
    Posts
    73
    Mis-type

  10. #10
    Join Date
    Mar 2004
    Posts
    261
    Good Morning Herring_Fish,

    This appears to be a chopper driver. Chopper drives buzz. I have a PC driven HobbyCNC board that buzzes and hisses. When driven by EMC2, the 3 motors sound like a calliope. If you are unable to command the motor(s) to turn, then you have a problem. If buzzing is the only thing you see/hear to be wrong, then there is no problem at all.

    Hope this helps you.

  11. #11
    Join Date
    Dec 2007
    Posts
    2134
    Quote Originally Posted by rippersoft View Post
    When driven by EMC2, the 3 motors sound like a calliope.
    I had to look that one up, I wasn't sure if you maybe miss-spelled cantaloupe ( a musical fruit?), or antelope, or you were talking about a town in Queensland!

    Seems none of the above!

    cheers, Ian
    It's rumoured that everytime someone buys a TB6560 based board, an engineer cries!

  12. #12
    Join Date
    Apr 2011
    Posts
    73
    I tried a bunch more wire combinations per product support but it did not help. I'm just going to send it back.

Similar Threads

  1. Trouble shooting
    By PlasmaCraft in forum CNC Plasma / Oxy Fuel Cutting Machines
    Replies: 3
    Last Post: 08-16-2011, 08:18 AM
  2. NEED HELP WITH TROUBLE SHOOTING MANUALS
    By salvador781 in forum Bridgeport / Hardinge Mills
    Replies: 1
    Last Post: 02-07-2010, 04:43 AM
  3. looking for help with UNIDEX 12 trouble shooting
    By mad application in forum Want To Buy...Need help!
    Replies: 0
    Last Post: 01-28-2008, 09:21 PM
  4. Trouble Shooting Help
    By Outlaw6700 in forum Milltronics
    Replies: 10
    Last Post: 08-21-2007, 03:22 AM
  5. Need some trouble shooting advise. (Master 5)
    By Beezer in forum Mach Software (ArtSoft software)
    Replies: 2
    Last Post: 05-30-2004, 09:51 PM

Posting Permissions

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