Motor a pasos y sensor ir

Estoy trabajando en un proyecto de la escuela y quiero que un un Stepmotor (28BYJ-48) de media vuelta y repita el proceso en dirección contraria. Lo logre, para el siguiente paso quiero que al activar un control infrarrojo empiece el proceso y poder pararlo en cualquier momento ya tengo todas las conexiones correctamente (No fue tan complicado), pero el código me da muchos problemas

Me echan la mano??

include "IRremote.h"

int Paso [ 8 ][ 4 ] = { {1, 0, 0, 0}, {1, 1, 0, 0}, {0, 1, 0, 0}, {0, 1, 1, 0}, {0, 0, 1, 0}, {0, 0, 1, 1}, {0, 0, 0, 1}, {1, 0, 0, 1} };

define IN1 12

define IN2 11

define IN3 10

define IN4 9

int steps_left=2047.5; boolean Direction = true; int Steps = 0;

int receiver = 6; // Signal Pin of IR receiver to Arduino Digital Pin 6

/-----( Declare objects )-----/ // Setup of proper sequencing for Motor Driver Pins // In1, In2, In3, In4 in the sequence 1-3-2-4

IRrecv irrecv(receiver); // create instance of 'irrecv' decode_results results; // create instance of 'decode_results'

void setup() { irrecv.enableIRIn(); // Start the receiver pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); }

void loop() {

if (irrecv.decode(&results)) // have we received an IR signal?

switch(results.value)

{ case 0xBA45FF00: // UP button pressed while(steps_left>0) { stepper() ; // Avanza un paso steps_left-- ; // Un paso menos delay (1) ; } delay(50); Direction =! Direction; // Invertimos la direceccion de giro steps_left = 2047.5;

} } void stepper() //Avanza un paso { digitalWrite( IN1, Paso[Steps][ 0] ); digitalWrite( IN2, Paso[Steps][ 1] ); digitalWrite( IN3, Paso[Steps][ 2] ); digitalWrite( IN4, Paso[Steps][ 3] );

SetDirection(); } void SetDirection() { if(Direction) Steps--; else Steps++;

Steps = ( Steps +8) % 8 ; }