You are on page 1of 6

https://www.tinkercad.

com/things/4vRGMRDXQSC

// Basic sketch for trying out the L293D by www.Electropeak.com

#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() {

direcshen=forward; // choose forward or backward


speeed=fast; // choose slow, normal or fast
stepping=half_step; // choose single, power or half step
for (int i=0;i<=60;i++)
{stepp();}

direcshen=backward; // choose forward or backward


speeed=normal; // choose slow, normal or fast
stepping=power_step; // choose single, power or half step
for (int i=0;i<=50;i++)
{stepp();}

direcshen=backward; // choose forward or backward


speeed=slow;; // choose slow, normal or fast
stepping=single_step; // choose single, power or half step
for (int i=0;i<=30;i++)
{stepp();}

You might also like