stepper con ethernet shield

Salve volevo comandare un motore stepper (quelli che ti danno nei kit) da un ethernet shield come posso fare? nel mio progetto quando premevo il pulsante il cancello partiva...ma adesso che ho inserito la ethernet shield come posso dirgli che quando premo il pulsante sulla mia app deve partire?

perchè nel motore o 4 fili+2 per l alimentazione

parli di questo ?

Spiegati meglio. Eri arrivato a gestire lo stepper qui ?

E quindi ora che cosa hai modificato ? Aggiunto una ethernet shield ? Quale modello ?
La shield potrebbe usare uno dei pin che usi per lo stepper.

Quale kit?

Brunello: parli di questo ?

si brunello

nid69ita: Spiegati meglio. Eri arrivato a gestire lo stepper qui ? http://forum.arduino.cc/index.php?topic=392496.msg2704125#msg2704125

E quindi ora che cosa hai modificato ? Aggiunto una ethernet shield ? Quale modello ? La shield potrebbe usare uno dei pin che usi per lo stepper.

la ethernet shield w5100 per arduino ho aggiunto questa scheda ma non so come comandare lo stepper praticamente ho fatto tutto lo sketch ma se gli dico di premo il pulsante dall app non funziona... mentre per i led si..

quindi stai dicendo che hai integrato il tuo sketch di controllo del motore in uno sketch di esempio che comanda un led via Web…
io metterei lo sketch finale, per vedere come mai

matteo41996:
la ethernet shield w5100 per arduino
ho aggiunto questa scheda ma non so come comandare lo stepper
praticamente ho fatto tutto lo sketch ma se gli dico di premo il pulsante dall app non funziona…
mentre per i led si…

ma se premo il pulsante*

#include <SPI.h>
#include <String.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 2};
EthernetServer server(80);
int led1 = 7;
int led2 = 8;
String readString = String(30);
String statoLed;
String statopulsante;
const int IN1=1;
const int IN2=2;
const int IN3=3;
const int IN4=4;
const int pulsante=5;
const int finecorsa=6;
const char tab1[] =
{
  0x01, 0x03, 0x02, 0x06, 0x04, 0x0c, 0x08, 0x09
};
const char tab2[] =
{
  0x01, 0x09, 0x08, 0x0c, 0x04, 0x06, 0x02, 0x03
};

void setup() {
 Ethernet.begin(mac, ip);
 pinMode(led1, OUTPUT);
 pinMode(led2, OUTPUT);
 pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  pinMode(pulsante, OUTPUT);
  pinMode(finecorsa, INPUT);
}

void loop() {
  EthernetClient client = server.available();
 
 if(client)
 {
  while(client.connected())
  {
    if(client.available())
    {
       char c = client.read();

       if(readString.length() < 30) {
          readString += (c);
       }    
       
       if(c == '\n')
       {         
         if(readString.indexOf("led1") >= 0) {
         digitalWrite(led1,!digitalRead(led1));
         }
         if(readString.indexOf("led2") >= 0) {
         digitalWrite(led2,!digitalRead(led2));
         }
         if(readString.indexOf("pulsante") >= 0) {
         digitalWrite(pulsante,!digitalRead(pulsante));
         }
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          
          client.println("<!doctype html>");
          client.println("<html>");
          client.println("<head>");
          client.println("<title>App</title>");
          client.println("<meta name=\"viewport\" content=\"width=320\">");
          client.println("<meta name=\"viewport\" content=\"width=device-width\">");
          client.println("<meta charset=\"utf-8\">");
          client.println("<meta name=\"viewport\" content=\"initial-scale=1.0, user-scalable=no\">");
          client.println("</head>");
          client.println("<body>");
          client.println("<center>");
          
          client.println("<font size=\"5\" face=\"verdana\" color=\"blue\">App</font>");
                  
          if(digitalRead(led1)) {
           statoLed = "Acceso" ;
          } else {
            statoLed = "Spento";
          }
          client.println("<td> <form action=\"led1\" method=\"get\">");
          client.println("<button type=submit style=\"width:200px;\">Led 1 - "+statoLed+"</button>");
          client.println("</form> 
</td>");
          
          if(digitalRead(led2)) {
           statoLed = "Acceso" ;
          } else {
            statoLed = "Spento";
          }

          client.println("<td> <form action=\"led2\" method=\"get\">");
          client.println("<button type=submit style=\"width:200px;\">Led 2 - "+statoLed+"</button>");
          client.println("</form> 
</td>");

          if(digitalRead(pulsante)) {
           statoCancello = "Aperto" ;
          } else {
            statoCancello = "Chiuso";
          }

          client.println("<td> <form action=\"cancello\" method=\"get\">");
          client.println("<button type=submit style=\"width:200px;\">pulsante - "+statopulsante+"</button>");
          client.println("</form> 
</td>");
          
          client.println("</center>");
          client.println("</body>");
          client.println("</html>");
          
          
         
         readString = "";
         
         client.stop();
       }
     }
  }
 }
 
 if(digitalRead(pulsante)==HIGH)
  {
    Motoreacceso(720, 1);
    Motorefermo();
  delay(7000);
    Motoreacceso(-720, 1);
  Motorefermo();
  }
    
  }


void Motoreacceso(int angle, char speeds )
{
  for (int j = 0; j < abs(angle) ; j++)
  {
    if (angle > 0)
    {
      for (int i = 0; i < 8; i++)
      {
        digitalWrite(IN1, ((tab1[i] & 0x01) == 0x01 ? true : false));
        digitalWrite(IN2, ((tab1[i] & 0x02) == 0x02 ? true : false));
        digitalWrite(IN3, ((tab1[i] & 0x04) == 0x04 ? true : false));
        digitalWrite(IN4, ((tab1[i] & 0x08) == 0x08 ? true : false));
        delay(speeds);
      }
    }
    else
    {
      for (int i = 0; i < 8 ; i++)
      {
        digitalWrite(IN1, ((tab2[i] & 0x01) == 0x01 ? true : false));
        digitalWrite(IN2, ((tab2[i] & 0x02) == 0x02 ? true : false));
        digitalWrite(IN3, ((tab2[i] & 0x04) == 0x04 ? true : false));
        digitalWrite(IN4, ((tab2[i] & 0x08) == 0x08 ? true : false));
        delay(speeds);
      }
    }
  }
}
void Motorefermo()
{
  digitalWrite(IN1, 0);
  digitalWrite(IN2, 0);
  digitalWrite(IN3, 0);
  digitalWrite(IN4, 0);
}

Apparte l errore del pulsante in OUTPUT invece che in INPUT

deciditi, si chiama pulsante o cancello ?

if(readString.indexOf("pulsante") >= 0)  {
.....
 client.println("<td> <form action=\"cancello\" method=\"get\">");
          client.println("<button type=submit style=\"width:200px;\">pulsante - "+statopulsante+"</button>");

idem

if(digitalRead(pulsante)) {
           statoCancello = "Aperto" ;
          } else {
            statoCancello = "Chiuso";
          }

allafine del ciclo motore, mettici un digitalWrite(pulsante,LOW)

Brunello:
deciditi, si chiama pulsante o cancello ?

if(readString.indexOf("pulsante") >= 0)  {


client.println(" <form action=“cancello” method=“get”>");
          client.println("<button type=submit style=“width:200px;”>pulsante - “+statopulsante+”");





idem




if(digitalRead(pulsante)) {
          statoCancello = “Aperto” ;
          } else {
            statoCancello = “Chiuso”;
          }




allafine del ciclo motore, mettici un digitalWrite(pulsante,LOW)

si hai ragione ieri era tardi quindi non ho corretto tutto
comunque ecco il codice dovrebbe essere tutto apposto qui:

#include <SPI.h>
#include <String.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 2};
EthernetServer server(80);
int led1 = 7;
int led2 = 8;
String readString = String(30);
String statoLed;
String statoCancello;
const int IN1=1;
const int IN2=2;
const int IN3=3;
const int IN4=4;
const int Cancello=44;
const int finecorsa=48;
const char tab1[] =
{
  0x01, 0x03, 0x02, 0x06, 0x04, 0x0c, 0x08, 0x09
};
const char tab2[] =
{
  0x01, 0x09, 0x08, 0x0c, 0x04, 0x06, 0x02, 0x03
};

void setup() {
 Ethernet.begin(mac, ip);
 pinMode(led1, OUTPUT);
 pinMode(led2, OUTPUT);
 pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  pinMode(Cancello, OUTPUT);
  pinMode(finecorsa, INPUT);
}

void loop() {
  EthernetClient client = server.available();
 
 if(client)
 {
  while(client.connected())
  {
    if(client.available())
    {
       char c = client.read();

       if(readString.length() < 30) {
          readString += (c);
       }    
       
       if(c == '\n')
       {         
         if(readString.indexOf("led1") >= 0) {
         digitalWrite(led1,!digitalRead(led1));
         }
         if(readString.indexOf("led2") >= 0) {
         digitalWrite(led2,!digitalRead(led2));
         }
         if(readString.indexOf("Cancello") >= 0) {
         digitalWrite(Cancello,!digitalRead(Cancello));
         }
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          
          client.println("<!doctype html>");
          client.println("<html>");
          client.println("<head>");
          client.println("<title>App</title>");
          client.println("<meta name=\"viewport\" content=\"width=320\">");
          client.println("<meta name=\"viewport\" content=\"width=device-width\">");
          client.println("<meta charset=\"utf-8\">");
          client.println("<meta name=\"viewport\" content=\"initial-scale=1.0, user-scalable=no\">");
          client.println("</head>");
          client.println("<body>");
          client.println("<center>");
          
          client.println("<font size=\"5\" face=\"verdana\" color=\"blue\">App</font>");
                  
          if(digitalRead(led1)) {
           statoLed = "Acceso" ;
          } else {
            statoLed = "Spento";
          }
          client.println("<td> <form action=\"led1\" method=\"get\">");
          client.println("<button type=submit style=\"width:200px;\">Led 1 - "+statoLed+"</button>");
          client.println("</form> 
</td>");
          
          if(digitalRead(led2)) {
           statoLed = "Acceso" ;
          } else {
            statoLed = "Spento";
          }

          client.println("<td> <form action=\"led2\" method=\"get\">");
          client.println("<button type=submit style=\"width:200px;\">Led 2 - "+statoLed+"</button>");
          client.println("</form> 
</td>");

          if(digitalRead(Cancello)) {
           statoCancello = "Aperto" ;
          } else {
            statoCancello = "Chiuso";
          }

          client.println("<td> <form action=\"Cancello\" method=\"get\">");
          client.println("<button type=submit style=\"width:200px;\">Cancello - "+statoCancello+"</button>");
          client.println("</form> 
</td>");
          
          client.println("</center>");
          client.println("</body>");
          client.println("</html>");
          
          
         
         readString = "";
         
         client.stop();
       }
     }
  }
 }
 
 if(digitalRead(Cancello)==HIGH)
  {
    Motoreacceso(720, 1);
    Motorefermo();
  delay(7000);
    Motoreacceso(-720, 1);
  Motorefermo();
  }
    
  }


void Motoreacceso(int angle, char speeds )
{
  for (int j = 0; j < abs(angle) ; j++)
  {
    if (angle > 0)
    {
      for (int i = 0; i < 8; i++)
      {
        digitalWrite(IN1, ((tab1[i] & 0x01) == 0x01 ? true : false));
        digitalWrite(IN2, ((tab1[i] & 0x02) == 0x02 ? true : false));
        digitalWrite(IN3, ((tab1[i] & 0x04) == 0x04 ? true : false));
        digitalWrite(IN4, ((tab1[i] & 0x08) == 0x08 ? true : false));
        delay(speeds);
      }
    }
    else
    {
      for (int i = 0; i < 8 ; i++)
      {
        digitalWrite(IN1, ((tab2[i] & 0x01) == 0x01 ? true : false));
        digitalWrite(IN2, ((tab2[i] & 0x02) == 0x02 ? true : false));
        digitalWrite(IN3, ((tab2[i] & 0x04) == 0x04 ? true : false));
        digitalWrite(IN4, ((tab2[i] & 0x08) == 0x08 ? true : false));
        delay(speeds);
      }
    }
  }
}
void Motorefermo()
{
  digitalWrite(IN1, 0);
  digitalWrite(IN2, 0);
  digitalWrite(IN3, 0);
  digitalWrite(IN4, 0);
}

ora se metti l’IP ti viene fuori una pagina con 3 pulsanti dei quali due accendo i led ed il terzo dovrebbe far partire il cancello ma non lo fa partire…

Come posso fare?

const int IN1=1;
const int IN2=2;
const int IN3=3;
const int IN4=4;

a parte il fatto che usare il pin 1 non è il caso, perchè sarebbero riservati alla seriale, hai controllato i collegamenti ?

Risolto!