Je dispose d'une carte Arduino Mega 2650 et d'un Ethernet Shield + un switch, après avoir vu des vingtaines de tutos j'ai compris qu'on pouvait établir la connexion entre le PC et la carte Arduino avec le Shield de deux manières:
Dans ce cas on a un router qui assigne les adresses IP.
Le problème c'est que chez un ami la deuxième configuration a marché mais chez moi non (j'ai bien sûr changé les adresses IP du Shield selon mon réseau à moi), concernant la première configuration et c'est celle qui m’intéresse pour mon projet, car là où je vais soutenir mon mémoire il n'y pas de connexion à internet donc pas de router. S'il vous plait, s'il y a une astuce ou une configuration à faire montrez-là moi et si quelqu'un a réussi à établir une connexion directe entre la carte et le PC qu'il me montre comment.
N.B: j'ai utilisé un câble croisé directement entre la carte et le PC, et ça ne marche pas aussi. À noter aussi que pour vérifier la connexion entre la carte Arduino et le PC, j'utilise la carte Arduino comme un serveur et un logiciel sur mon PC comme un client, quand le serveur est à l'écoute je démarre le client et normalement si ça marche il y a une LED qui s'allume tout cela pour dire que ma programmation est juste car cela a fonctionné chez mon ami et le problème vient forcement de l'adressage IP.
tahitibob35:
Salut
Il nous faudrait au moins la portion de code de la configuration du shield.
#include <SPI.h>
#include <Ethernet.h>
/* Détails technique de la connexion ethernet */
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte ip[] = {192,168,0,20};
byte gateway[] = {192,168,0,1};
byte masque[] = {255,255,0,0};
//byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
//byte ip[] = {105,99,66,240};
//byte gateway[] = {192,168,0,1};
//byte masque[] = {255,255,255,0};
// Attachement d'un objet "server" sur le port 8081
EthernetServer server(8081);
void setup()
{
// Configuration de la ethernet shield et du server
Ethernet.begin(mac, ip, gateway, masque);
server.begin();
// Mise en sortie de la broche avec notre led (par défaut éteinte)
pinMode(9, OUTPUT);
digitalWrite(9, HIGH);
// Configuration du PORT SERIE
Serial.begin(9600);
while (!Serial) {
; // En boucle tant qu'il n'y a pas de port série
}
// Affichage de l'adresse IP du serveur
Serial.print("\nServer is listening at:");
Serial.println(Ethernet.localIP());
}
void loop()
{
// Attente de la connexion d'un client
EthernetClient client = server.available();
if (client && client.connected()) {
Serial.println("Connexion client");
Serial.println("");
// si le client nous envoie quelque chose
if (client.available() > 0) {
Serial.println("boucle IF ok");
char c = client.read();
Serial.println(c);
switch(c){
case 'C': // allumer la led
digitalWrite(9, LOW);
break;
case 'V': // éteindre la led
digitalWrite(9, HIGH);
break;
}
}
}
}