Motor PaP Bipolar

Hola a toda la comunidad, soy nuevo en Arduino y estoy realizando un proyecto con un Motor PaP Bipolar y he logrado que se mueva con los parametros indicados dentro del codigo, ahora lo que me gustaria es modificar este mismo codigo para poder enviar los parametros desde el puerto serie y que mueva el motor.
Espero me puedan ayudar.

String data = “M1,horario,1000,2”;
const int A8 = 8;
const int A9 = 9;

void setup()
{
pinMode(A8, OUTPUT);
pinMode(A9, OUTPUT);

Serial.begin(9600);

int values[2];
int contador;
byte prevPos;
byte currPos;
String motor;
String sentido;

prevPos = data.indexOf(’,’);
motor = data.substring(0, prevPos);
prevPos++;
currPos = data.indexOf(’,’, prevPos);
sentido = data.substring(prevPos, currPos);
prevPos=currPos+1;

for (byte i = 0; i < 2; i++)
{
currPos = data.indexOf(’,’, prevPos);
values = data.substring(prevPos, currPos).toInt();

  • prevPos=currPos+1;*
  • }*
  • if(motor=‘M1’)*
  • {*
  • if (sentido=‘horario’)*
  • {*
  • contador=0;*
  • do*
  • {*
  • digitalWrite(A8, LOW);*
  • digitalWrite(A9, LOW);*
  • delay(values[1]);*
  • contador++;*
  • if(contador>=values[0]) break;*
  • digitalWrite(A8, LOW);*
  • digitalWrite(A9, HIGH);*
  • delay(values[1]);*
  • contador++;*
  • if(contador>=values[0]) break;*
  • digitalWrite(A8, HIGH);*
  • digitalWrite(A9, HIGH);*
  • delay(values[1]);*
  • contador++;*
  • if(contador>=values[0]) break;*
  • digitalWrite(A8, HIGH);*
  • digitalWrite(A9, LOW);*
  • delay(values[1]);*
  • contador++;*
  • if(contador>=values[0]) break;*
  • }while (true);*
  • }*
  • if (sentido=‘antihorario’)*
  • {*
  • contador=0;*
  • do*
  • {*
  • digitalWrite(A8, HIGH);*
  • digitalWrite(A9, LOW);*
  • delay(values[1]);*
  • contador++;*
  • if(contador>=values[0]) break;*
  • digitalWrite(A8, HIGH);*
  • digitalWrite(A9, HIGH);*
  • delay(values[1]);*
  • contador++;*
  • if(contador>=values[0]) break;*
  • digitalWrite(A8, LOW);*
  • digitalWrite(A9, HIGH);*
  • delay(values[1]);*
  • contador++;*
  • if(contador>=values[0]) break;*
  • digitalWrite(A8, LOW);*
  • digitalWrite(A9, LOW);*
  • delay(values[1]);*
  • contador++;*
  • if(contador>=values[0]) break;*
  • }while (true);*
  • }*
  • }*
    }
    void loop()
    {
  • if (Serial.available() > 0){*
  • leido = “”;*
  • do {*
  • char caracter_leido;*
  • delay(5);*
  • caracter_leido = Serial.read();*
  • leido += caracter_leido;*
  • } while (Serial.available() > 0);*
  • }*
    }

Hilo cerrado y luego borrado por doble posteo.