Hi there,
I am trying to control a unipolar Stepper motor(34KM-K221-00W) using 2 UC3770 ICs with an arduino mega. The datasheet for UC3770 is available at http://www.ti.com/lit/ds/symlink/uc3770a.pdf. I have attached the datasheets for the uc3770 and the stepper motor. I found that there is virtually no other documentation for uc3770 but found that it is a copy of another IC NJM 3770 http://semicon.njr.co.jp/eng/product/motor_ic/stepper/NJM3770A.html.
I build the circuit using the schematic attached but am unable to drive the motor. The motor would just twitch/vibrate a little or give a humming sound. The majority of times the IC would get really hot but only one would get hot while the other one would be just warm. I thought it was a problem with the IC initally but after having used 3 different ICs and built the circuit multiple times, I cant figure out what I am doing wrong. I am trying to run the motor using a 12V battery. I dont think it is a problem with the motor because i can hear the humming and sometimes some internal vibration. Does anyone had any prior experience with this IC or can figure out where I am going wrong?
int phase1=52;
int I_1_0=51;
int I_1_1=50;
int phase2=32;
int I_2_0=31;
int I_2_1=30;
int delayTime=300;
void setup()
{
pinMode(phase1,OUTPUT);
pinMode(phase2,OUTPUT);
pinMode(I_1_0,OUTPUT);
pinMode(I_1_1,OUTPUT);
pinMode(I_2_0,OUTPUT);
pinMode(I_2_1,OUTPUT);
digitalWrite(I_1_0,HIGH);
digitalWrite(I_1_1,LOW);
digitalWrite(I_2_0,HIGH);
digitalWrite(I_2_1,LOW);
// This code will only run once, after each powerup or reset of the board
}
void loop()
{
delay(delayTime);
digitalWrite(phase1,LOW);
digitalWrite(phase2,LOW);
delay(delayTime);// This code will loops consecutively
digitalWrite(phase1,HIGH);
digitalWrite(phase2,LOW);
delay(delayTime);// This code will loops consecutively
digitalWrite(phase1,HIGH);
digitalWrite(phase2,HIGH);
delay(delayTime);// This code will loops consecutively
digitalWrite(phase1,LOW);
digitalWrite(phase2,HIGH);
}
Hi Terry,
Thank you for the quick reply. The three inputs are connected to the arduino at pins:
phase- pin 32 and 52
I0- pins 31 and 51
I1- pins 30 and 50
Phase input determines the direction of current in the coil eg Ma to Mb when high and Mb to Ma when low
I0 and I1 determines the magnitude of the current in the coil with
Motor current I0 I1
High level 100% L L
Medium level 60% H L
Low level 20% L H
Zero current 0% H H
My main issue is that I cant figure out why the IC gets very hot and why only one gets hot (of course I want the motor to turn too). The motor driver is for a 2 phase motor and my stepper motor is a single phase motor. Would that cause a problem ? I tried the basic stepper motor code where we only activate one coil at a time by driving I0 and I1 high for the other coil but didn't have any luck there either.
Hi Terry,
It is an unipolar stepper motor with 6 wires(Hybrid Stepper - 34KM-K221-00W) . It takes 2amps at 9.8 v (4.9ohms) and its datasheet can be found here http://www.nmbtc.com/motors/part-numbers/Hybrid-Stepper/34KM-K221-00W/4805 . I had attached the datasheet with my first post and have reposted it here. Since the ic is a bipolar motor driver I am not using the center taps for each coil. I identified the leads using an ohmmeter and attached the leads from the same coil to each 3770.
Hi again,
I tried swapping the Ics and found that now the other IC gets hot. I guessed that part of the circuit wasnt assembled correctly and did it again. No luck. It still heats up. One more thing, whenever i first assemble the circuit on my breadboard, the motor first gives a humming sound or i can feel some vibration or sometimes on a good try, it twitches but I have never got it to turn. It all starts to go bad when i try to upload a new code to the arduino then nothing happens and one IC heats up.It doesnt change however number of times i try.I tried changing the resistors, capacitors, cables but no luck.
I also tried to run one winding using the IC which doesnt heat up. The motor only gives some vibration, which is felt by touching the motor. I measured the current for each coil. .8A and .6A . The shaft never turned. I expected the motor to atleast give a twitch. Is my motor bad or am I doing something wrong? Is it because I am using a breadboard?
The motor just "twitching" and not rotating usually means the right sequence of pulses is not going to the motor. You need to find out if the sequence is right.
I suggest making 4 LEDS with series resistors of 1000 ohms, and regular silicon diodes in reverse direction across LEDS. Now you have indicators that will work OK even with larger voltages.
I would first test the LDED "networks" on plain 5V or 12V to ground so you are sure they work in one polarity and are OK in the reverse polarity.
I would then put two of the "LED networks" back-to-back (opposite polarity) in place of each motor winding. Now run your circuit and see what direction current is flowing and in what sequence. You should run the simple 4-step "full step" sequence. Run it VERY slowly, like 1 step per second.
When that is correct, then connect the motor, with the networks still in place to make sure currents still flow OK in the correct sequence and direction. THEN does the motor turn??
Hi Terry,
yeah that's what I felt too that the pulses weren't right but each time, I changed the code, the IC would heat up. I will try it again with an LDED network this time and let you know what I get. Thank you so much for helping me out here
Rahul
I am really embarrassed to say this but I have finally found what my problem was. I was using a MUR1520 rectifier diode in a TO-220 package and had inserted it the wrong way in. The 2nd lead was the +ve end and the 1st the -ve. It is a wonder that the motor even twitched. The motor is working well now. I apologize for the trouble caused.