Skip to content

Instantly share code, notes, and snippets.

@DonEduardo
Forked from samirsogay/BYJ48-Bipolar
Last active August 29, 2022 18:23
Show Gist options
  • Select an option

  • Save DonEduardo/cb343f3909a706c0328403bb383bbf6e to your computer and use it in GitHub Desktop.

Select an option

Save DonEduardo/cb343f3909a706c0328403bb383bbf6e to your computer and use it in GitHub Desktop.
Attempting code for L298N motor driver and an Arduino board to convert BYJ48 stepper motor from Unipolar to Bipolar
// L298N
// Jumper enable pins to always high
/*
L298N Motor Controller 28BYJ-48 Stepper Motor
OUT1 1. Blue
OUT2 3. Yellow
OUT3 4. Pink
OUT4 5. Orange
*/
int IN1 = 4; //IN1
int IN2 = 5; //IN2
int IN3 = 6; //IN3
int IN4 = 7; //IN4
long del = 2000;
void setup() {
pinMode(IN2, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN3, OUTPUT);
}
void one() {
digitalWrite(IN1, LOW);
digitalWrite(IN4, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN2, HIGH);
delayMicroseconds(del);
}
void two() {
digitalWrite(IN1, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN4, HIGH);
delayMicroseconds(del);
}
void three() {
digitalWrite(IN2, LOW);
digitalWrite(IN1, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
delayMicroseconds(del);
}
void four() {
digitalWrite(IN2, LOW);
digitalWrite(IN4, LOW);
digitalWrite(IN1, HIGH);
digitalWrite(IN3, HIGH);
delayMicroseconds(del);
}
// the loop routine runs over and over again forever:
void loop() {
for (int i = 0; i <= 500; i++) {
one();
two();
three();
four();
}
for (int i = 0; i <= 500; i++) {
four();
three();
two();
one();
}
delay(2000);
}
// another sketch has this sequence instead. ?? Don't know until I get a chance to try it.
void reverse(int i, int j) {
while (1) {
digitalWrite(IN1, 0);
digitalWrite(IN2, 1);
digitalWrite(IN3, 0);
digitalWrite(IN4, 1);
delay(j);
i--;
if (i < 1) break;
digitalWrite(IN1, 0);
digitalWrite(IN2, 1);
digitalWrite(IN3, 1);
digitalWrite(IN4, 0);
delay(j);
i--;
if (i < 1) break;
digitalWrite(IN1, 1);
digitalWrite(IN2, 0);
digitalWrite(IN3, 1);
digitalWrite(IN4, 0);
delay(j);
i--;
if (i < 1) break;
digitalWrite(IN1, 1);
digitalWrite(IN2, 0);
digitalWrite(IN3, 0);
digitalWrite(IN4, 1);
delay(j);
i--;
if (i < 1) break;
}
} // end reverse()
void forward(int i, int j) {
while (1) {
digitalWrite(IN1, 0);
digitalWrite(IN2, 1);
digitalWrite(IN3, 0);
digitalWrite(IN4, 1);
delay(j);
i--;
if (i < 1) break;
digitalWrite(IN1, 1);
digitalWrite(IN2, 0);
digitalWrite(IN3, 0);
digitalWrite(IN4, 1);
delay(j);
i--;
if (i < 1) break;
digitalWrite(IN1, 1);
digitalWrite(IN2, 0);
digitalWrite(IN3, 1);
digitalWrite(IN4, 0);
delay(j);
i--;
if (i < 1) break;
digitalWrite(IN1, 0);
digitalWrite(IN2, 1);
digitalWrite(IN3, 1);
digitalWrite(IN4, 0);
delay(j);
i--;
if (i < 1) break;
}
} // end forward()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment