-
-
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // 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