Köra Bi-Polar stegmotor med Keyes L298N (4 / 5 steg)
Steg 4: Arduino skiss
/*
* Kör en 5V stegmotor med Keyes L298N dubbla Motor Driver;
* Chienline
*/
CONST int ENA = 7.
CONST int IN1 = 6;
CONST int IN2 = 5;
CONST int ENB = 8.
CONST int IN4 = 9.
CONST int IN3 = 10;
CONST int ledPin = 13.
void setup()
{
pinMode(ENA,OUTPUT);
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(ENB,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
pinMode(ledPin,OUTPUT);
digitalWrite (ledPin, låg);
dröjsmål används för att styra hastighet, ju lägre desto snabbare.
Reverse(Step,Delay);
Reverse(80,20);
Forward(Step,Delay);
Forward(80,20);
}
void loop()
{
}
void omvänd (int i, int j) {
ange båda motorer på
digitalWrite (ENA, hög);
digitalWrite (ENB, hög);
samtidigt (1) {
digitalWrite (IN1, 0);
digitalWrite (IN2, 1);
digitalWrite (IN3, 0);
digitalWrite (IN4, 1);
Delay(j);
Jag--;
om (jag < 1) bryta;
digitalWrite (IN1, 0);
digitalWrite (IN2, 1);
digitalWrite (IN3, 1);
digitalWrite (IN4, 0);
Delay(j);
Jag--;
om (jag < 1) bryta;
digitalWrite (IN1, 1);
digitalWrite (IN2, 0);
digitalWrite (IN3, 1);
digitalWrite (IN4, 0);
Delay(j);
Jag--;
om (jag < 1) bryta;
digitalWrite (IN1, 1);
digitalWrite (IN2, 0);
digitalWrite (IN3, 0);
digitalWrite (IN4, 1);
Delay(j);
Jag--;
om (jag < 1) bryta;
}
kvitta båda motorer
digitalWrite (ENA, låg);
digitalWrite (ENB, låg);
} / / end reverse()
utan laga kraft framåt (int i, int j) {
Ange båda motorer på
digitalWrite (ENA, hög);
digitalWrite (ENB, hög);
samtidigt (1) {
digitalWrite (IN1, 0);
digitalWrite (IN2, 1);
digitalWrite (IN3, 0);
digitalWrite (IN4, 1);
Delay(j);
Jag--;
om (jag < 1) bryta;
digitalWrite (IN1, 1);
digitalWrite (IN2, 0);
digitalWrite (IN3, 0);
digitalWrite (IN4, 1);
Delay(j);
Jag--;
om (jag < 1) bryta;
digitalWrite (IN1, 1);
digitalWrite (IN2, 0);
digitalWrite (IN3, 1);
digitalWrite (IN4, 0);
Delay(j);
Jag--;
om (jag < 1) bryta;
digitalWrite (IN1, 0);
digitalWrite (IN2, 1);
digitalWrite (IN3, 1);
digitalWrite (IN4, 0);
Delay(j);
Jag--;
om (jag < 1) bryta;
}
kvitta båda motorer
digitalWrite (ENA, låg);
digitalWrite (ENB, låg);
} / / end forward()