Professional Documents
Culture Documents
Tema Control PWM
Tema Control PWM
com/things/4vRGMRDXQSC
#define EnA 3
#define EnB 5
#define In1 7
#define In2 8
#define In3 9
#define In4 10
#define forward 0
#define backward 1
#define slow 10
#define normal 5
#define fast 2
#define single_step 0
#define power_step 1
#define half_step 2
int speeed;
int direcshen;
int stepping;
void stepp(void){
digitalWrite(EnA, HIGH);
digitalWrite(EnB, HIGH);
if (direcshen==forward){
if (stepping==single_step){
digitalWrite(In1, HIGH);
digitalWrite(In2, LOW);
digitalWrite(In3, LOW);
digitalWrite(In4, LOW);
delay(speeed);
digitalWrite(In1, LOW);
digitalWrite(In2, HIGH);
digitalWrite(In3, LOW);
digitalWrite(In4, LOW);
delay(speeed);
digitalWrite(In1, LOW);
digitalWrite(In2, LOW);
digitalWrite(In3, HIGH);
digitalWrite(In4, LOW);
delay(speeed);
digitalWrite(In1, LOW);
digitalWrite(In2, LOW);
digitalWrite(In3, LOW);
digitalWrite(In4, HIGH);
delay(speeed);
}
if (stepping==half_step){
digitalWrite(In1, HIGH);
digitalWrite(In2, LOW);
digitalWrite(In3, LOW);
digitalWrite(In4, LOW);
delay(speeed);
digitalWrite(In1, HIGH);
digitalWrite(In2, HIGH);
digitalWrite(In3, LOW);
digitalWrite(In4, LOW);
delay(speeed);
digitalWrite(In1, LOW);
digitalWrite(In2, HIGH);
digitalWrite(In3, LOW);
digitalWrite(In4, LOW);
delay(speeed);
digitalWrite(In1, LOW);
digitalWrite(In2, HIGH);
digitalWrite(In3, HIGH);
digitalWrite(In4, LOW);
delay(speeed);
digitalWrite(In1, LOW);
digitalWrite(In2, LOW);
digitalWrite(In3, HIGH);
digitalWrite(In4, LOW);
delay(speeed);
digitalWrite(In1, LOW);
digitalWrite(In2, LOW);
digitalWrite(In3, HIGH);
digitalWrite(In4, HIGH);
delay(speeed);
digitalWrite(In1, LOW);
digitalWrite(In2, LOW);
digitalWrite(In3, LOW);
digitalWrite(In4, HIGH);
delay(speeed);
digitalWrite(In1, HIGH);
digitalWrite(In2, LOW);
digitalWrite(In3, LOW);
digitalWrite(In4, HIGH);
delay(speeed);
}
if (stepping==power_step){
digitalWrite(In1, HIGH);
digitalWrite(In2, HIGH);
digitalWrite(In3, LOW);
digitalWrite(In4, LOW);
delay(speeed);
digitalWrite(In1, LOW);
digitalWrite(In2, HIGH);
digitalWrite(In3, HIGH);
digitalWrite(In4, LOW);
delay(speeed);
digitalWrite(In1, LOW);
digitalWrite(In2, LOW);
digitalWrite(In3, HIGH);
digitalWrite(In4, HIGH);
delay(speeed);
digitalWrite(In1, HIGH);
digitalWrite(In2, LOW);
digitalWrite(In3, LOW);
digitalWrite(In4, HIGH);
delay(speeed);
}
}
if (direcshen==backward){
if (stepping==single_step){
digitalWrite(In4, HIGH);
digitalWrite(In3, LOW);
digitalWrite(In2, LOW);
digitalWrite(In1, LOW);
delay(speeed);
digitalWrite(In4, LOW);
digitalWrite(In3, HIGH);
digitalWrite(In2, LOW);
digitalWrite(In1, LOW);
delay(speeed);
digitalWrite(In4, LOW);
digitalWrite(In3, LOW);
digitalWrite(In2, HIGH);
digitalWrite(In1, LOW);
delay(speeed);
digitalWrite(In4, LOW);
digitalWrite(In3, LOW);
digitalWrite(In2, LOW);
digitalWrite(In1, HIGH);
delay(speeed);
}
if (stepping==half_step){
digitalWrite(In4, HIGH);
digitalWrite(In3, LOW);
digitalWrite(In2, LOW);
digitalWrite(In1, LOW);
delay(speeed);
digitalWrite(In4, HIGH);
digitalWrite(In3, HIGH);
digitalWrite(In2, LOW);
digitalWrite(In1, LOW);
delay(speeed);
digitalWrite(In4, LOW);
digitalWrite(In3, HIGH);
digitalWrite(In2, LOW);
digitalWrite(In1, LOW);
delay(speeed);
digitalWrite(In4, LOW);
digitalWrite(In3, HIGH);
digitalWrite(In2, HIGH);
digitalWrite(In1, LOW);
delay(speeed);
digitalWrite(In4, LOW);
digitalWrite(In3, LOW);
digitalWrite(In2, HIGH);
digitalWrite(In1, LOW);
delay(speeed);
digitalWrite(In4, LOW);
digitalWrite(In3, LOW);
digitalWrite(In2, HIGH);
digitalWrite(In1, HIGH);
delay(speeed);
digitalWrite(In4, LOW);
digitalWrite(In3, LOW);
digitalWrite(In2, LOW);
digitalWrite(In1, HIGH);
delay(speeed);
digitalWrite(In4, HIGH);
digitalWrite(In3, LOW);
digitalWrite(In2, LOW);
digitalWrite(In1, HIGH);
delay(speeed);
}
if (stepping==power_step){
digitalWrite(In4, HIGH);
digitalWrite(In3, HIGH);
digitalWrite(In2, LOW);
digitalWrite(In1, LOW);
delay(speeed);
digitalWrite(In4, LOW);
digitalWrite(In3, HIGH);
digitalWrite(In2, HIGH);
digitalWrite(In1, LOW);
delay(speeed);
digitalWrite(In4, LOW);
digitalWrite(In3, LOW);
digitalWrite(In2, HIGH);
digitalWrite(In1, HIGH);
delay(speeed);
digitalWrite(In4, HIGH);
digitalWrite(In3, LOW);
digitalWrite(In2, LOW);
digitalWrite(In1, HIGH);
delay(speeed);
}
}
}
void setup() {
Serial.begin(9600);
Serial.println("L293D Stepper motor test");
pinMode(EnA, OUTPUT);
pinMode(EnB, OUTPUT);
pinMode(In1, OUTPUT);
pinMode(In2, OUTPUT);
pinMode(In3, OUTPUT);
pinMode(In4, OUTPUT);
void loop() {