Can any body give me a good source code for controlling the 12 volt stepper motor speed .I am using Atmel's 89C52 controller.I am just using 4 pins of my port-1 to energize the motor's windings. this is the the code unit which i work for but its not wotking some how, ********************************************* int i,j; unsigned char STEP[4] = {0x0A,0x09,0x05,0x06}; //these r my switching sequence for my unipolar stepper motor// while(1) { for(i =0;i<4; i++) { P1 = STEP[i]; for(j=0;j<5;j++) { _nop_(); } } }
I have not actually tried out the code that I suggested, it is just there to give a general idea. The reason for the code block that you highlight is to ensure that delay cannot get too short - cannot be less than 5 in this case. The minimum delay needs to corespond with the maximum possible speed of your stepper motor. You should be able to look up the maximum speed of your stepper motor on its data sheet. The maximum possible acceleration will depend on the power of the motor versus the load you have to drive. Unless your system is very simple, you might want to think about driving the stepper motor from an interrupt function so that the processor can do other things while the motor is being driven. Please let me know how you get on.
Thanx Mr. Cole.... I tied out with your suggestion of increasing tthe delay.....but still some times it just gets stucked up..... I don't know why.... can you please suggest me as you have suggested me for the previous problem... thanx again Regards Saurabh
In what way does the motor get stuck? Timing is everything, so are you either driving the motor past its maximum speed or acceleration? I might help to start with a single phase driver just to verify that there are no fundemental problems with you driver circuit. Driving stepper motors should be fairly straightforward, but the details of the characteristics of a particular motor and its load are very important. There is loads of information on the internet. There is some basic information here: http://209.41.165.153/stepper/Tutorials/UniTutor.htm