This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to controll Stepper Motor with Keypad

I am using the MTS-51 microcomputer trainer and I have to implement a project which contains
the stepper motor(unipoler stepper motor) and the keypad which are included onboard.

The project might be simple but something is amiss with my thought propably so I would like
any advice if is possible.
The objectvies are the following.
1. When key "1" from keypad is pressed the motor performs one step clockwise.
2. When key "2" from keypad is pressed the motor performs one step counter clockwise.
(The motor performs a step everytime you press one of the keys. For example if you spam
any of the keys it will step for each time you pressed the key.)

My code was the following:

#include <reg51.h>

void main()
{ for(;;) { if(P1=0x00)//counter clockwise step { P2=0x33; P2=0x66; delay();//I have made my own delay function for space's sake I won't include it here } if(P2=0x01) { P2=0x33; P2=0x99; delay(); } }
} My main idea was when one of the conditions where met I would change the value of P1 with a value assignment so it won't meet the condition again so when I would press one of the buttons(0 or 1) it would meet again the condition and the step would be performed. But I failed to achieve this thought.

  • Please read the posting instructions for source code, it might then be readable.

    Define where your buttons are attached, define where the motor is attached, I don't have your board, and don't want to seek/review the manual.

    You presumably want a delay after each change in the pins so they are driven for a minimum period, not instantaneously changed.

    Your first test looks for a button on P1, your second on P2, but you are also overwriting P2, is that what you want?

    Can you not discuss this with your project supervisor or teacher?