uno + ethernet shield= web server qui fonctionne pas!

Bonjour à tous,
j’ai un arduino UNO, il fonctionne seul.
Avec le shield ethernet, le simple server web d’exemple ne marche pas.
J’avais essayé bien plus compliqué auparavant…
J’ai donc repris tout simplement le “Blink” de base et ajouté la definition du serveur ( Mac + adresse), ce qui donne:

#include <SPI.h>
#include <Ethernet.h>
byte mac = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,0, 33);
EthernetServer server(80);
void setup() {
// initialize the digital pin as an output.
// Pin 13 has an LED connected on most Arduino boards:
pinMode(13, OUTPUT);

Ethernet.begin(mac, ip);
server.begin();
}

void loop() {
digitalWrite(13, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(13, LOW); // set the LED off
delay(1000); // wait for a second
}

On ne peut faire plus simple! Et pourtant, ça ne marche pas! ( pas de “blink”!!!), ça repond au ping!
si vous avez une idée…

Salut, je ne suis pas un grand spécialiste.

Je vois que tu n'as pas changé l'adresse mac car c'est la même que l'exemple

dans byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

tu dois mettre celle de ton shield en remplacant DE,AD,BE.... par les valeurs notées sur l'étiquette de ton shield ethernet Sinon je ne vois par trop dans ton cas à quoi te sert le serveur.

J'ai fait un essai l'autre jour qui fonctionnait, j'essaye de te le retrouver et je te le poste

A+

Bonjour,

@Michel_B: Le faite de modifier ou non l'adresse mac ne changera rien ;)

LE problème est le suivant, la broches D13 est utilisé par le port SPI (utilisé pour communiquer avec l'ethernet shield) comme broche "CLK" (horloge) or tu utilise la broche D13 pour ta led, par conséquent le blink fait buger l'ethernet et l'ethernet fait buger le blink ;)

Voici mon premier essai pour tester le shield ethernet
Ce n’est peut être pas top mais cela fonctionne

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

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0xF6, 0x27 };
byte ip[] = { 192,168,0, 20 };
// Initialize the Ethernet server library
// with the IP address and port you want to use 
// (port 80 is default for HTTP):
Server server(80);

void setup()
{
  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip);
  server.begin();
}

void loop()
{
  // listen for incoming clients
  Client client = server.available();
  if (client) {
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
              client.print("Entree analogique 0 = ");
              client.print(analogRead(0));  //Lis la valeur de l'entree analogique
              client.println("
");
         client.stop();}
    }}}

Si je peux améliorer Skywood, n’hésites pas ! :slight_smile:

skywodd: Bonjour,

@Michel_B: Le faite de modifier ou non l'adresse mac ne changera rien ;)

LE problème est le suivant, la broches D13 est utilisé par le port SPI (utilisé pour communiquer avec l'ethernet shield) comme broche "CLK" (horloge) or tu utilise la broche D13 pour ta led, par conséquent le blink fait buger l'ethernet et l'ethernet fait buger le blink ;)

Effectivement, bien avoir ce tableau en tête avant de coder:

ARDUINO SHIELD PIN USED - EXCEL

Bonjour,

Merci pour la réponse mais ça marche toujours pas!
L’exemple de @Michel_B (mis a jour en arduino 1.0) me envoi un fichier pas top via firefox.

Je disais au départ que même l’exemple Webserser (created 18 Dec 2009
by David A. Mellis modified 4 Sep 2010 by Tom Igoe) dans l’outil Arduino ne fonctionne pas.

Est-ce qu’il existe un moyen simple de savoir si ma carte ethernet shield est defectueuse?

@+

UOg79W5K.bin.part (40.3 KB)

bebelbill: Merci pour la réponse mais ça marche toujours pas! L'exemple de @Michel_B (mis a jour en arduino 1.0) me envoi un fichier pas top via firefox.

Tient bizarre moi j'obtiens le .xls sans probléme. Sinon encore plus complet qu'un tableur excel -> http://shieldlist.org/ ;)

bebelbill: Je disais au départ que même l'exemple Webserser (created 18 Dec 2009 by David A. Mellis modified 4 Sep 2010 by Tom Igoe) dans l'outil Arduino ne fonctionne pas.

Question bête, passe tu par un routeur ? Si oui il faut renseigner un (voir deux) argument supplémentaire : Ethernet.begin(mac, ip, gateway, submask) byte gateway[] = {192, 168, 0, 1}; // -> l'ip du routeur byte submask[] = {255, 255, 255, 0}; // -> la masque de sous réseau

L’exemple de @Michel_B (mis a jour en arduino 1.0) me envoi un fichier pas top via firefox.

Bonsoir, j’ai converti en 1.0 et testé avec firefox : cela fonctionne
Par contre je suis avec Arduino Mega

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

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0xF6, 0x27 };
byte ip[] = { 192,168,0, 20 };
// Initialize the Ethernet server library
// with the IP address and port you want to use 
// (port 80 is default for HTTP):
EthernetServer server(80);

void setup()
{
  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip);
  server.begin();
}

void loop()
{
  // listen for incoming clients
  EthernetClient client = server.available();
  if (client) {
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
              client.print("Entree analogique 0 = ");
              client.print(analogRead(0));  //Lis la valeur de l'entree analogique
              
              client.stop();}
    }}}

++

ip seule sur mon reseau
pas de routeur
répond au ping quand elle est branchée et non si non branchée.
mais via un browser, j’ai un fichier qui correspond pas a la donnée lu.

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

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0xF6, 0x27 };
byte ip[] = { 192,168,0, 20 };
// Initialize the Ethernet server library
// with the IP address and port you want to use 
// (port 80 is default for HTTP):
EthernetServer server(80);

void setup()
{
  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip);
  server.begin();
}

void loop()
{
  // listen for incoming clients
  EthernetClient client = server.available();
  if (client) {
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
              client.print("Entree analogique 0 = ");
              client.print(analogRead(0));  //Lis la valeur de l'entree analogique
              
              client.stop();}
    }}}

bizarre…

j'ai repris une version 022 et la miracle........... j'en conclu que la 1.0 ne fonctionne pas avec ma UNO R2 + shield ethernet R3!