OK , now i have the uln2803 working and conncted .
The stpr motr works but , when it is in stationary position it doesnt the torque ( i.e the holding torque )
here's my code :
char menu(void);
void drv_cw(void);
void drv_ccw(void);
void main()
{
while(1)
{
switch (menu()) {
case '1': {
drv_cw();
break;
}
case '2': {
drv_ccw();
break;
}
default: {
output_bit(PIN_A0,1);
output_bit(PIN_A1,0);
output_bit(PIN_A2,1);
output_bit(PIN_A3,0);
break;
}
}
}
}
///////User Selection Menu//////////////////////////////
char menu(void)
{
char ch;
output_bit(PIN_A0,1);
output_bit(PIN_A1,1);
output_bit(PIN_A2,1);
output_bit(PIN_A3,1);
/////////////////////////
/*output_bit(PIN_A0,0);
output_bit(PIN_A1,0);
output_bit(PIN_A2,0);
output_bit(PIN_A3,0);*/
printf ("\n\r <<<<<< Driving Stepper Motor >>>>>>>");
printf ("\n\r Press 1 to turn Clock Wise .......");
printf ("\n\r Press 2 to turn Counter Clock Wise .......");
ch = getc(); //wait for and get serial character
return ch;
}
/////////////////////////////////////////////////////////
void drv_cw(void)
{ // 1st Cycle
// Step1
output_bit(PIN_A0,1); // A1
output_bit(PIN_A1,0); // A3
output_bit(PIN_A2,0); // B1
output_bit(PIN_A3,1); // B3
delay_ms(1000);
//////////////////////////////
// Step2
output_bit(PIN_A0,1);
output_bit(PIN_A1,0);
output_bit(PIN_A2,1);
output_bit(PIN_A3,0);
delay_ms(1000);
//////////////////////////////
// Step3
output_bit(PIN_A0,0);
output_bit(PIN_A1,1);
output_bit(PIN_A2,1);
output_bit(PIN_A3,0);
delay_ms(1000);
//////////////////////////////
// Step4
output_bit(PIN_A0,0);
output_bit(PIN_A1,1);
output_bit(PIN_A2,0);
output_bit(PIN_A3,1);
delay_ms(1000);
//////////////////////////////
// 2nd Cycle/////////////////
// Step1
output_bit(PIN_A0,1); // A1
output_bit(PIN_A1,0); // A3
output_bit(PIN_A2,0); // B1
output_bit(PIN_A3,1); // B3
delay_ms(1000);
//////////////////////////////
// Step2
output_bit(PIN_A0,1);
output_bit(PIN_A1,0);
output_bit(PIN_A2,1);
output_bit(PIN_A3,0);
delay_ms(1000);
//////////////////////////////
// Step3
output_bit(PIN_A0,0);
output_bit(PIN_A1,1);
output_bit(PIN_A2,1);
output_bit(PIN_A3,0);
delay_ms(1000);
//////////////////////////////
// Step4
output_bit(PIN_A0,0);
output_bit(PIN_A1,1);
output_bit(PIN_A2,0);
output_bit(PIN_A3,1);
delay_ms(1000);
//////////////////////////////
return ;
}
/////////////////////////////////////////////////////////
void drv_ccw(void)
{ // 1st Cycle CCW //
output_bit(PIN_A0,0);
output_bit(PIN_A1,1);
output_bit(PIN_A2,0);
output_bit(PIN_A3,1);
delay_ms(1000);
//////////////////////////////
output_bit(PIN_A0,0);
output_bit(PIN_A1,1);
output_bit(PIN_A2,1);
output_bit(PIN_A3,0);
delay_ms(1000);
//////////////////////////////
output_bit(PIN_A0,1);
output_bit(PIN_A1,0);
output_bit(PIN_A2,1);
output_bit(PIN_A3,0);
delay_ms(1000);
//////////////////////////////
output_bit(PIN_A0,1); // A1
output_bit(PIN_A1,0); // A3
output_bit(PIN_A2,0); // B1
output_bit(PIN_A3,1); // B3
delay_ms(1000);
//////////////////////////////
// 2nd Cycle CCW //
output_bit(PIN_A0,0);
output_bit(PIN_A1,1);
output_bit(PIN_A2,0);
output_bit(PIN_A3,1);
delay_ms(1000);
//////////////////////////////
output_bit(PIN_A0,0);
output_bit(PIN_A1,1);
output_bit(PIN_A2,1);
output_bit(PIN_A3,0);
delay_ms(1000);
//////////////////////////////
output_bit(PIN_A0,1);
output_bit(PIN_A1,0);
output_bit(PIN_A2,1);
output_bit(PIN_A3,0);
delay_ms(1000);
//////////////////////////////
output_bit(PIN_A0,1); // A1
output_bit(PIN_A1,0); // A3
output_bit(PIN_A2,0); // B1
output_bit(PIN_A3,1); // B3
delay_ms(1000);
//////////////////////////////
return ;
}
/////////////////////////////////////////////////////////