Problema passo passo via ethernet shield

Ciao a tutti ho realizzato un codice che permette di pilotare il driver A4988 per il motore passo passo.
Il motore viene controllato dal web tramite ethernet shield, fin qua tutto bene, l’unico problema è che attraverso il modulo ethernet non mi effettua l’inversione di marcia, ho provato a farlo via seriale e il codice funziona ma in questo caso necessito della versione ethernet.
Il tutto deve fare andare un carrello es. quello della stampante.

CODICE SERIALE

const int stepPin = 3; 
const int dirPin = 1; 

 
void setup() {
  // Sets the two pins as Outputs
  pinMode(stepPin,OUTPUT); 
  pinMode(dirPin,OUTPUT);
}
void loop() {
  digitalWrite(dirPin,HIGH); // Enables the motor to move in a particular direction
  // Makes 200 pulses for making one full cycle rotation
  for(int x = 0; x < 400; x++) {
    digitalWrite(stepPin,HIGH); 
    delayMicroseconds(800); 
    digitalWrite(stepPin,LOW); 
    delayMicroseconds(800); 
  }
  delay(1000); // One second delay

  digitalWrite(dirPin,HIGH); // Enables the motor to move in a particular direction
  // Makes 200 pulses for making one full cycle rotation
  for(int x = 0; x < 400; x++) {
    digitalWrite(stepPin,HIGH); 
    delayMicroseconds(800); 
    digitalWrite(stepPin,LOW); 
    delayMicroseconds(800); 
  }
  delay(1000); // One second delay

  digitalWrite(dirPin,HIGH); // Enables the motor to move in a particular direction
  // Makes 200 pulses for making one full cycle rotation
  for(int x = 0; x < 400; x++) {
    digitalWrite(stepPin,HIGH); 
    delayMicroseconds(800); 
    digitalWrite(stepPin,LOW); 
    delayMicroseconds(800); 
  }
  delay(1000); // One second delay
  
  digitalWrite(dirPin,LOW); //Changes the rotations direction
  // Makes 400 pulses for making two full cycle rotation
  for(int x = 0; x < 1200; x++) {
    digitalWrite(stepPin,HIGH);
    delayMicroseconds(800);
    digitalWrite(stepPin,LOW);
    delayMicroseconds(800);
  }
  delay(1000);
}

CODICE DA CORREGGERE ETHERNET SHIELD

//*Controllare motore passo passo più pompe da url di internet*//

#include <SPI.h>
#include <Ethernet.h> 
boolean reading = false;
int dirPin = 1;
int stepperPin = 3;
int pompa_1 = 5;
int pompa_2 = 6;
int pompa_3 = 7;

int tastiera = 0;
int tastiera_2 = 0;
int tastiera_3 = 0;

int i=0; 

String HTTPget = "";

//configurazione in internet
byte ip[] = { 192, 168, 1, 177 };   // IP Address
byte subnet[] = { 255, 255, 255, 0 }; // Subnet Mask
byte gateway[] = { 192, 168, 1, 1 }; // Gateway
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // MAC Address
EthernetServer server = EthernetServer(80); // Port 80

void setup()
{
  Serial.begin(9600);
  // pin 10, 11, 12 and 13 are used by the ethernet shield
  Ethernet.begin(mac, ip, gateway, subnet); // setup ethernet with params from above
  server.begin();
  pinMode(dirPin, OUTPUT);
  pinMode(stepperPin, OUTPUT);
  pinMode(pompa_1, OUTPUT);
  pinMode(pompa_2, OUTPUT);
  pinMode(pompa_3, OUTPUT);
}

void step(boolean dir,int steps){
    digitalWrite(dirPin,dir);
    delay(50);
   for(int i=0;i<steps;i++){
    digitalWrite(stepperPin, HIGH);
    delayMicroseconds(800);
    digitalWrite(stepperPin, LOW);
    delayMicroseconds(800);
 }
}

void loop()
{
  // listen for incoming clients
  EthernetClient client = server.available();
  Serial.println("Connesso");
  
  if (client) 
  {
    boolean lineIsBlank = true;
    while (client.connected())
  {
    if (client.available())
    {
      char c = client.read();
      
      if(reading && c == ' ') reading = false;
      if(c == '?') reading = true; // ? in GET request was found, start reading the info
 
      //check that we are reading, and ignore the '?' in the URL, then append the get parameter into a single string
      if(reading && c != '?') HTTPget += c;
 
      if (c == '\n' && lineIsBlank) {
      client.println("HTTP/1.1 200 OK");
      client.println("Content-Type: text/html");
      client.println("Connection: close");
      client.println();
      break;
      }
      if (c == '\n')
      {
        lineIsBlank = true;
        
      }
      else if (c != '\r')
      {
        lineIsBlank = false;
      } 
    }
  }
  if(i==0){
    //creo la variabile tempo dalla stringa url
    String var_1 = HTTPget.substring(4,6);
    int tastiera = var_1.toInt();
    //creo la variabile tempo_2 dalla stringa url
    String var_2 = HTTPget.substring(13,15);
    int tastiera_2 = var_2.toInt();
    //creo varialbile tempo_3 dalla stringa url
    String var_3 = HTTPget.substring(22,24);
    int tastiera_3 = var_3.toInt();
    //
    if(tastiera != 0){
    Serial.println("Acceso");
    step(true,200);
    Serial.println("Blocco_1");
    delay(500);
    //andrà messo il relè 1 con la pompa 1
    digitalWrite(pompa_1, HIGH);
     //resta acceso fino a quando non raggiunge la capacità definita
    delay(tastiera*100);
    //spegne il relè
    digitalWrite(pompa_1, LOW);
    delay(100);
    }else{
      Serial.println("Spento");
      step(HIGH,200);
      Serial.println("Blocco_1");
      digitalWrite(pompa_1, LOW);
      Serial.println("Tempo=0");
    }
    //blocco2
    if(tastiera_2 != 0){
    Serial.println("Acceso");
    step(HIGH,200*2);
    Serial.println("Blocco_2");
    delay(500);
    //andrà messo il relè 1 con la pompa 1
    digitalWrite(pompa_2, HIGH);
     //resta acceso fino a quando non raggiunge la capacità definita
    delay(tastiera_2*100);
    //spegne il relè
    digitalWrite(pompa_2, LOW);
    delay(100);
    }else{
      Serial.println("Spento");
      step(HIGH,200*2);
      Serial.println("Blocco_2");
      digitalWrite(pompa_2, LOW);
      Serial.println("Tempo=0");
    }
    //blocco1
    if(tastiera_3 != 0){
    Serial.println("Acceso");
    step(HIGH,200*3);
    Serial.println("Blocco_3");
    delay(500);
    //andrà messo il relè 1 con la pompa 1
    digitalWrite(pompa_3, HIGH);
     //resta acceso fino a quando non raggiunge la capacità definita
    delay(tastiera_3*100);
    //spegne il relè
    digitalWrite(pompa_3, LOW);
    delay(100);
    }else{
      Serial.println("Spento");
      step(HIGH,200*3);
      Serial.println("Blocco_3");
      digitalWrite(pompa_3, LOW);
      Serial.println("Tempo=0");
    }
    delay(50);
    step(LOW , -200*6);
    Serial.println("Ritorno");
    delay(500);
    /**/
    Serial.println("Disconnesso");
    i++;
    
    
    }else{
      HTTPget = "";
      i=0;
      tastiera = 0;
      tastiera_2 =0;
      tastiera_3 = 0;
    }
  }
    delay(1); // give the web browser a moment to recieve
    client.stop(); // close connection
  }
const int dirPin = 1;

Forse funziona se usi un altro pin. I pin 0 e 1 vengono usati dalla USB.

Ciao Uwe

Grazie funziona tutto