Salve , sto realizzando un progetto da un pò di tempo , numerosi tentativi mi hanno poratto alla scrittura di un codice che si era dimostrato funzionante con un Arduino Uno e Ethernet Shield (chip w5100) con SD. Avendo necessità di altri ingressi ho acquistato un Mega 2560 , ho fatto una prova con Ethernet Shield e con un Web Server che avevo e tutto era andato bene. Poi l'altro giorno ho montato il circuito per il progetto che sto realizzando , ho caricato il programma che prima sull'Uno era funzionante e sono iniziati problemi. Questi sono dovuto all'interfaccia SPI del Mega con SD e W5100 ,, dico questo perchè disabilitando uno funziona l'altro e viceversa. Il problema è che mi occorrono entrambi e contemporaneamente quindi se qualcuno potrebbe aiutarmi gliene sarei veramente molto grato. Ho letto su internet di problemi molto simili al mio, ho adattato e fatto delle prove ma niente. Per questo ho deciso di aprire un nuovo topic. Allego il setup del codice sperando che qualcuno riesca ad aiutarmi. Grazie.
#include <SPI.h>
#include <Ethernet.h>
#include <SD.h>
#include <dht11.h>
#include <Servo.h>
#define maxLength 25
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip (192,168,0,254 );
IPAddress mioServer(192,168,0,252);
char serverName[] = "192.168.0.252";
int serverPort = 80;
#define delayMillis 30000UL
unsigned long thisMillis = 0;
unsigned long lastMillis = 0;
char pageAdd[64];
File htmlFile;
EthernetServer server(80);
EthernetClient client;
// Define di tuttte le variabili sui vari pin.
void setup()
{
Serial.begin(9600);
dx.attach(9); // attaches the servo on pin 9 to the servo object
dx.write(140); //-- si apre
sx.attach(10);
sx.write(55);//++ si apre
pinMode(sala,OUTPUT);
// Vari pinMode
pinMode(reed,INPUT);
digitalWrite(reed, HIGH); // Activate internal pullup resistor
pinMode(crepuscolare,INPUT);
pinMode(cigalino,OUTPUT);
pinMode(portaGarage,OUTPUT);
pinMode(corridoio,OUTPUT);
Ethernet.begin(mac, ip); // Avvia della scheda ethernet con l'apposito metodo passandogli come parametri il mac e l'ip (statico).
server.begin(); // Avvia del server configurato sulla porta 80 (http).
if (!SD.begin(4)) { // Il pin 4 è quello generalmente utilizzato per gestire il modulo delle schede SD.
Serial.println("Errore apertura SD!"); // Se non riesce nell'operazione di avvio stampa una stringa di errore ed esce.
return; }
if (!SD.exists("header.htm")) { // Verifica la presenza del file di intestazione.
Serial.println("ERRORE - Non ho trovato header.htm !");
return; // Siccome non lo ha trovato esco.
}
if (!SD.exists("footer.htm")) { // Verifica la presenza del file di coda.
Serial.println("ERRORE - Non ho trovato footer.htm !");
return; // Siccome non lo ha trovato esco.
}
if (!SD.exists("bagn.htm")) { // Verifica la presenza del file riservato al bagno.
Serial.println("ERRORE - Non ho trovato bagn.htm !");
return; // Siccome non lo ha trovato esco.
}
if (!SD.exists("cam1.htm")) { // Verifica la presenza del file riservato alla camera numero uno.
Serial.println("ERRORE - Non ho trovato cam1.htm !");
return; // Siccome non lo ha trovato esco.
}
if (!SD.exists("cam2.htm")) { // Verifica la presenza del file riservato alla camera numero due.
Serial.println("ERRORE - Non ho trovato cam2.htm !");
return; // Siccome non lo ha trovato esco.
}
if (!SD.exists("cuci.htm")) { // Verifica la presenza del file riservato alla cucina.
Serial.println("ERRORE - Non ho trovato cuci.htm !");
return; // Siccome non lo ha trovato esco.
}
if (!SD.exists("este.htm")) { // Verifica la presenza del file riservato all'esterno.
Serial.println("ERRORE - Non ho trovato este.htm !");
return; // Siccome non lo ha trovato esco.
}
if (!SD.exists("gara.htm")) { // Verifica la presenza del file riservato al garage.
Serial.println("ERRORE - Non ho trovato gara.htm !");
return; // Siccome non lo ha trovato esco.
}
if (!SD.exists("ingr.htm")) { // Verifica la presenza del file riservato all'ingresso.
Serial.println("ERRORE - Non ho trovato ingr.htm !");
return; // Siccome non lo ha trovato esco.
}
if (!SD.exists("sala.htm")) { // Verifica la presenza del file riservato al salotto.
Serial.println("ERRORE - Non ho trovato sala.htm !");
return; // Siccome non lo ha trovato esco.
}
if (!SD.exists("scal.htm")) { // Verifica la presenza del file riservato alle scale.
Serial.println("ERRORE - Non ho trovato scal.htm !");
return; // Siccome non lo ha trovato esco.
}
Serial.print("Il server è all'indirizzo IP : ");
Serial.println(Ethernet.localIP()); // Metodo apposito per la stampa dell'indirizzo ip assegnato alla scheda e
// che, in questo caso, dovrebbe essere uguale a 192.168.0.254.
}