Primi problemi con Ethernet Shield... non funziona!

Ciao a tutti, dopo diversi mesi di inattività volevo riprendere a giochicchiare con arduino…qualche mese fa mi ero fatto spedire una ethernet shield compatibile presa su ebay ma poi per vari motivi avevo lasciato perdere… ora che la volevo studiare un pò mi sono accorto che non riesco a farla funzionare. Mi spiego meglio: il primo problema è che non vi è alcun adesivo con scritto il Mac Address…poi…ho provato a caricare sul mio arduino uno (tramite windows 8 64bit) questo sketch di prova preso su internet:

/*
  Web client
 
 This sketch connects to a website (http://www.google.com)
 using an Arduino Wiznet Ethernet shield. 
 
 Circuit:
 * Ethernet shield attached to pins 10, 11, 12, 13
 
 created 18 Dec 2009
 by David A. Mellis
 modified 9 Apr 2012
 by Tom Igoe, based on work by Adrian McEwen
 
 */
 
#include <SPI.h>
#include <Ethernet.h>
 
// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// if you don't want to use DNS (and reduce your sketch size)
// use the numeric IP instead of the name for the server:
//IPAddress server(74,125,232,128);  // numeric IP for Google (no DNS)
char server[] = "www.google.com";    // name address for Google (using DNS)
 
// Set the static IP address to use if the DHCP fails to assign
IPAddress ip(192,168,1,177);
 
// Initialize the Ethernet client library
// with the IP address and port of the server 
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;
 
void setup() {
 // Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
 
  // start the Ethernet connection:
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // no point in carrying on, so do nothing forevermore:
    // try to congifure using IP address instead of DHCP:
    Ethernet.begin(mac, ip);
  }
  // give the Ethernet shield a second to initialize:
  delay(1000);
  Serial.println("connecting...");
 
  // if you get a connection, report back via serial:
  if (client.connect(server, 80)) {
    Serial.println("connected");
    // Make a HTTP request:
    client.println("GET /search?q=arduino HTTP/1.1");
    client.println("Host: www.google.com");
    client.println("Connection: close");
    client.println();
  } 
  else {
    // kf you didn't get a connection to the server:
    Serial.println("connection failed");
  }
}
 
void loop()
{
  // if there are incoming bytes available 
  // from the server, read them and print them:
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }
 
  // if the server's disconnected, stop the client:
  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();
 
    // do nothing forevermore:
    while(true);
  }
}

ma mi da sempre Failed to configure Ethernet using DHCP…
senza il mac address della mia scheda non posso utilizzarla?
avete qualche consiglio su come impostarla correttamente?

La scheda è: HanRun HR911105A 14/20

Grazie!

La scheda è: HanRun HR911105A 14/20

questa e' la sigla del connettore RJ45. Hai un link a codesta scheda ?

Ciao, ma tu hai la Ehternet shield con lo slot per SD?

Se si, guarda QUESTO tutorial.

Ciao :)

Ciao a tutti...la scheda è questa: http://www.ebay.it/itm/W5100-Shield-ethernet-LAN-conSlot-SD-per-ARDUINO-UNO-Mega-1280-2560-/321458142832?pt=LH_DefaultDomain_101&hash=item4ad865fe70

ho provato anche a caricare lo sketch del tutorial ma in fase di verifica mi da una riga di errori:

Arduino:1.6.0 (Windows 8), Scheda:"Arduino Uno"

sketch_jun17b.ino:8:17: error: no matching function for call to 'Server::Server(int)'
sketch_jun17b.ino:8:17: note: candidates are:
In file included from C:\Program Files (x86)\Arduino\libraries\Ethernet\src/EthernetServer.h:4:0,
                 from C:\Program Files (x86)\Arduino\libraries\Ethernet\src/Ethernet.h:8,
                 from sketch_jun17b.ino:2:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Server.h:25:7: note: Server::Server()
 class Server : public Print {
       ^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Server.h:25:7: note:   candidate expects 0 arguments, 1 provided
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Server.h:25:7: note: Server::Server(const Server&)
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Server.h:25:7: note:   no known conversion for argument 1 from 'int' to 'const Server&'
sketch_jun17b.ino:8:8: error: cannot declare variable 'server' to be of abstract type 'Server'
In file included from C:\Program Files (x86)\Arduino\libraries\Ethernet\src/EthernetServer.h:4:0,
                 from C:\Program Files (x86)\Arduino\libraries\Ethernet\src/Ethernet.h:8,
                 from sketch_jun17b.ino:2:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Server.h:25:7: note:   because the following virtual functions are pure within 'Server':
 class Server : public Print {
       ^
In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:26:0,
                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:29,
                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:223,
                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI/SPI.h:17,
                 from sketch_jun17b.ino:1:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:48:20: note:  virtual size_t Print::write(uint8_t)
     virtual size_t write(uint8_t) = 0;
                    ^
In file included from C:\Program Files (x86)\Arduino\libraries\Ethernet\src/EthernetServer.h:4:0,
                 from C:\Program Files (x86)\Arduino\libraries\Ethernet\src/Ethernet.h:8,
                 from sketch_jun17b.ino:2:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Server.h:27:16: note:     virtual void Server::begin()
   virtual void begin() =0;
                ^
sketch_jun17b.ino: In function 'void loop()':
sketch_jun17b.ino:19:26: error: 'class Server' has no member named 'available'
sketch_jun17b.ino:19:10: error: cannot declare variable 'client' to be of abstract type 'Client'
In file included from C:\Program Files (x86)\Arduino\libraries\Ethernet\src/EthernetClient.h:5:0,
                 from C:\Program Files (x86)\Arduino\libraries\Ethernet\src/Ethernet.h:7,
                 from sketch_jun17b.ino:2:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Client.h:26:7: note:   because the following virtual functions are pure within 'Client':
 class Client : public Stream {
       ^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Client.h:31:18: note:     virtual size_t Client::write(uint8_t)
   virtual size_t write(uint8_t) =0;
                  ^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Client.h:32:18: note:     virtual size_t Client::write(const uint8_t*, size_t)
   virtual size_t write(const uint8_t *buf, size_t size) =0;
                  ^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Client.h:33:15: note:     virtual int Client::available()
   virtual int available() = 0;
               ^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Client.h:34:15: note:     virtual int Client::read()
   virtual int read() = 0;
               ^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Client.h:36:15: note:     virtual int Client::peek()
   virtual int peek() = 0;
               ^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Client.h:37:16: note:     virtual void Client::flush()
   virtual void flush() = 0;
                ^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Client.h:29:15: note:     virtual int Client::connect(IPAddress, uint16_t)
   virtual int connect(IPAddress ip, uint16_t port) =0;
               ^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Client.h:30:15: note:     virtual int Client::connect(const char*, uint16_t)
   virtual int connect(const char *host, uint16_t port) =0;
               ^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Client.h:35:15: note:     virtual int Client::read(uint8_t*, size_t)
   virtual int read(uint8_t *buf, size_t size) = 0;
               ^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Client.h:38:16: note:     virtual void Client::stop()
   virtual void stop() = 0;
                ^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Client.h:39:19: note:     virtual uint8_t Client::connected()
   virtual uint8_t connected() = 0;
                   ^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Client.h:40:11: note:     virtual Client::operator bool()
   virtual operator bool() = 0;
           ^
sketch_jun17b.ino:33:47: error: 'BYTE' was not declared in this scope
Errore durante la compilazione

  Questo report potrebbe essere più ricco
di informazioni con
  "Mostra un output dettagliato durante la compilazione"
  abilitato in "File > Impostazioni"

Come mai???? ci sto diventando scemo!

Mi viene un dubbio...il mio arduino è questo: |500x281

Trattasi di Arduino Uno, vero? o ricordo male?

Si, il tuo è un Arduino Uno.

Credo che quegli errori siano dati a causa delle librerie. Controlla di avere le librerie corrette.

Hai presente che nell'IDE, sotto esempi, ci sono già quelli per la ethernet shield che monta il chip WIZ5100 ovvero la tua ?

Inoltre se in un esempio trovi questo pezzo di codice e NON hai la Leonardo, cancellalo !!

while (!Serial) {
   ; // wait for serial port to connect. Needed for Leonardo only
 }

pier99: Si, il tuo è un Arduino Uno.

Credo che quegli errori siano dati a causa delle librerie. Controlla di avere le librerie corrette.

No. Questo non é ne un Arduino (originale), ne un Arduino UNO (modello) ne l' ultima Versione (R3). http://www.arduino.cc/en/Main/ArduinoBoardUno trovi Foto del Arduino UNO R3 e le versioni prima ( R1 e R2 e SMD)

Da questo lato sembra una copia legale perché senza nome di un Arduino 2009. http://www.arduino.cc/en/Main/ArduinoBoardDuemilanove

Fai vedere anche una foto dell altro lato. Devi impostare Arduino 2009 sul IDE

Gli errori riportati non sono derivanti da una selezione di una scheda errata.

Prova di compilare il programma con il IDE 0023

Ciao Uwe

Il chip però è Atmel AtMega328 PU Il chip Usb invece è il solito CH340 che i cinesi mettono adesso.

nid69ita: Il chip però è Atmel AtMega328 PU Il chip Usb invece è il solito CH340 che i cinesi mettono adesso.

A me sembra che non é un CH340 |500x333

ma un FT232 ché ha piú piedini.

La disposizione dei componenti su quella scheda é uguale al Arduino 2009.

Ciao Uwe

Ecco la foto del lato “B” :slight_smile:

E confermo che il chip indicatomi è un FT232RL
Ma…scusa… (è veramente tanto che non uso arduino -perchè mi sono anche messo a programmare Android-)
L’Ide 23? sul mio computer windows 8.1 64bit uso arduino 1.6 e ora sto scaricando 1.65… ??
ho cmq provato ora a mettere l’ide 23…ma niente…

Edit:
non riesco a capire qual’è il problema…
o è il mio arduino che ciocca o boh…
ho scaricato il nuovo software 1.65 e preso lo sketch di esempio del led lampeggiante.
Se lo carico come Arduino Uno va e funziona, mentre invece se lo carico come Arduino 2009/2010 mi da questo errore:

Arduino:1.6.5 (Windows 8.1), Scheda:"Arduino Duemilanove or Diecimila, ATmega328"

Lo sketch usa 1.030 byte (3%) dello spazio disponibile per i programmi. Il massimo è 30.720 byte.

Le variabili globali usano 9 byte (0%) di memoria dinamica, lasciando altri 2.039 byte liberi per le variabili locali. Il massimo è 2.048 byte.

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xb5

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xb5

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xb5

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xb5

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xb5

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xb5

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xb5

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xb5

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xb5

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xb5

Problema di caricamento sulla scheda. Guarda http://www.arduino.cc/en/Guide/Troubleshooting#upload per suggerimenti

  Questo report potrebbe essere più ricco
di informazioni con
  "Mostra un output dettagliato durante la compilazione"
  abilitato in "File > Impostazioni"

Nella sezione Programmatore devo lasciare ArduinoISP vero?

Edit 2:
vabbe visto che se lascio Arduino Uno funziona ok…ora rimane il problema della shield…
ho modificato il codice di prova così:

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = {0x11, 0x22, 0x33, 0x44, 0x55, 0x66};
EthernetClient client;
void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // no point in carrying on, so do nothing forevermore:
    for (;;)
      ;
  }
  Serial.print("My IP address: ");
  for (byte thisByte = 0; thisByte < 4; thisByte++) {
    // print the value of each byte of the IP address:
    Serial.print(Ethernet.localIP()[thisByte], DEC);
    Serial.print(".");
  }
  Serial.println();
}

void loop() {

}

mettendo un mac address a caso e niente…mi restituisce sempre failed… tra l’altro, le lucine del connettore ethernet sono sempre spente…brutto segno?
mentre invece il led pwr è rosso e durante il tentativo di connessione Tx e un altro led vicino al connettore di rete lampeggiano ma poi smettono quando esce fuori la scritta “Failed to configure Ethernet using DHCP”

Hanno fatto la copia di Arduino 2009 e messo il bootloader del UNO? Quando hai comprato quella scheda? Poco fa o pareecchi anni fa (parliamo della seconda metá del 2011 vito che il ATmega é stato prodotto metá 2011 (sigla 2311))

Ciao Uwe

Questo arduino almeno è di 3 anni fa...

smartgatto: mettendo un mac address a caso e niente...mi restituisce sempre failed.. tra l'altro, le lucine del connettore ethernet sono sempre spente..brutto segno? mentre invece il led pwr è rosso e durante il tentativo di connessione Tx e un altro led vicino al connettore di rete lampeggiano ma poi smettono quando esce fuori la scritta "Failed to configure Ethernet using DHCP"

Ma scusa, se dice che non è riuscito a configurare l'interfaccia via DHCP, le prime possibilità (e quindi di conseguenza cosa da verificare) sono: 1) lo switch (o il modem se ha più porte) si è "impicciato" per i casini con i MAC che hai usato per test 2) il tuo DHCP server (il router ADSL?) è disattivato 3) il tuo DHCP server non è raggiungibile (il cavo Ethernet a cosa lo hai collegato?) 4) il MAC address che hai usato non è valido in quanto già presente in rete 5) il tuo DHCP server (il router ADSL?) è attivato ma accetta solo connessioni da MAC address a lui conosciuti

Azioni possibili per ognuno di questi punti: 1) resetta lo switch o il modem/router 2) attiva il server DHCP nel router 3) verifica le connessioni di rete e il cavo Ethernet 4) cambia il MAC address mettendone un altro che sicuramente non hai mai usato 5) verifica se il DHCP o il router sono impostati per accettare connessioni solo da MAC specifici

E facci sapere.

Purtroppo ho già resettato il router, già verificato la connessione (provata su tutte e 4 le porte del mio router tplink), abilitato e disabilitato il dhcp, cambiato il mac con altri... l'unica è la quinta opzione che non so come fare... mi sto arrendendo all'idea che la scheda sia guasta...

Edit: se per l'ultima opzione intendi il filtro mac no, non è impostato...

Confermato che era il modulo guasto... ne ho provato uno uguale di un mio amico e questo funziona subito... ho provato a rifare le saldature ma niente..

Ciao a tutti. Ho acquistato 3 ethernet shield per nano. Non vede indirizzo ip.

mimmovella: Ciao a tutti. Ho acquistato 3 ethernet shield per nano. Non vede indirizzo ip.

Benvenuto. Essendo il tuo primo post, nel rispetto del regolamento, ti chiediamo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO... Grazie. Qui una serie di link utili, non inerenti al tuo problema: - qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections - qui le pinout delle varie schede by xxxPighi: Pinout - qui una serie di link [u]generali[/u] utili: Link Utili Apri un tuo thread. E dai più info. Mica abbiamo la palla di vetro e indoviniamo a caso.