//Declaration of Driver pins byte IN1 = 4; byte IN2 = 5; byte IN3 = 6; byte IN4 = 7; //Step sequence const int UnPaso[4] = {B1000, B0100, B0010, B0001}; //Variable indicating the number of steps int paso = 2048; // 360° a full step //Step counter int Cpaso = 0; void setup() { // Configure 4 Digital Pins as OUTPUTS for (int i = IN1; i <= IN4; i++) { pinMode(i, OUTPUT); } } void loop() { // Move forward for (int i = 0; i < paso; i++) { Cpaso++; if (Cpaso >= 4) { Cpaso = 0; } for (int j = 0; j < 4; j++) { digitalWrite(j + IN1, bitRead(UnPaso[Cpaso], j)); } delay(5); // Adjust delay for speed } // Move backward for (int i = 0; i < paso; i++) { Cpaso--; if (Cpaso < 0) { Cpaso = 3; } for (int j = 0; j < 4; j++) { digitalWrite(j + IN1, bitRead(UnPaso[Cpaso], j)); } delay(5); // Adjust delay for speed } }