Se você comprou esse "shield" (módulo para Arduino) e não conseguiu fazê-lo funcionar com seu Arduino Mega 2560 (nosso hardware de referência), não se preocupe! Nós também não conseguimos!
No espírito do mais nobre dos sentimentos de cooperação, eis que o Solucionática, que não desiste até ver o projeto funcionando, colheu uma solução em um tópico do forum do Arduino (http://arduino.cc/forum/index.php/topic,86837.0.html) e está compartilhando a provável solução para a falha de compatibilidade entre o módulo e o Mega 2560, pois com outros Arduinos parece não ter nenhum problema.
A questão central é que o módulo W5100 usa o mesmo barramento SPI para a interface Ethernet, propriamente dita, quanto para o cartão micro-SD.
Solução: no fórum, o usuário SurferTim acrescentou algumas linhas no setup dos sketchs (para quem é novo por aqui,sketch é o programa do Arduino, em linguagem Wiring - derivada do Processing.) para desabilitar a função de acesso aos cartão SD quando se quer acessar a Ethernet, e vice-versa, como mostra o sketch abaixo:
#include <SPI.h>
#include <Ethernet.h>
#include <SD.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,25, 5); // altere para o seu ip.
void setup()
{
Serial.begin(9600);
// disable w5100 SPI while setting up SD
pinMode(10,OUTPUT);
digitalWrite(10,HIGH);
// set up SD
if(SD.begin(4) == 0)
Serial.println("SD failed");
else
Serial.println("SD ok");
// set up w5100
Ethernet.begin(mac,ip);
// disable w5100 SPI
digitalWrite(10,HIGH);
// takes a second for the w5100 to get ready
delay(2000);
// rest of your setup
Serial.println("Setup done");
}
void loop()
{
}
Vamos tentar essa modificação, e se tudo der certo, postaremos os bons resultados aqui. Até lá! ...
Aviso: não deu certo!
Atenção! Para quem tem o Arduino Mega 1280 ou Mega 2560, eis a solução testada - e que funcionou até agora - que foi garimpada em outro tópico do mesmo fórum do Arduino: arduino.cc/forum/index.php?action=printpage;topic=79411.0/
Na imagem acima, podemos concluir que o W5100 Ethernet Shield não é compatível, pino a pino, com o Arduino Mega (1280 ou 2560). Assim, para ver todos os sketches funcionando, é necessário ligar os jumpers (fios) da interface SPI do Arduino para os correspondentes no shield! Além disso, é preciso conectar +Vcc, o Gnd, Vin e Reset.
Segue abaixo uma tabela com a correspondência entre os Mega e o shield:
Importante: O pino 53 do Arduino não é ligado ao W5100. A seleção do chip (SS) é feita no pino 10, como mostra a tabela acima, mesmo que nas especificações do Arduino Mega indique o pino 53 como SS!!!
Outra dica importante é para quem quer usar o conector do cartão de memória padrão micro SD. Vejam na tabela abaixo, as ligações que terão que ser feitas:
Ops! Como sabíamos, há um problema aqui. Tanto a placa ethernet (W5100), quanto o conector do cartão de memória micro SD se servem, ao mesmo tempo, da interface SPI (pinos 50,51 e 52). A única diferença é que a W5100 é habilitada no pino 10 do Arduino e o micro SD no pino 4. Logo, ao usar um tem que desabilitar o outro. Em termos de sketch, é assim que se resolve:
Para desativar o micro SD
pinMode(4,OUTPUT);
digitalWrite(4,HIGH);
Para desativar o W5100:
pinMode(10,OUTPUT);
digitalWrite(10,HIGH);
E para ativar? Basta escrever LOW no lugar de HIGH. Mas, mesmo que estivermos usando apenas a interface ethernet ou o cartão micro-SD não é preciso incluir essa alteração, os sketches de exemplo da biblioteca Ethernet no IDE do Arduino funcionam perfeitamente!
E agora? Quer dizer que compramos um shield (obviamente, a ideia era não ter que conectar nenhum fio ao Arduino!) que não pode ser conectado em cima do Arduino? Há quem tenha feito umas soldas por baixo do shield, o que é contra a nossa política: solda é para construir os electronics bricks e os shields. Um "brick" (não confundam com os BRICS - mas é desse termo que surgiu a ordem do acrônimo de Brasil, Russia, Índia, China e África do Sul, que é em inglês South Africa...) é uma pequena placa que pode ser facilmente conectada ao Arduino ou a um protoboard. Olhem os exemplos abaixo (retirados dos sites da Seedstudio e da Iteadstudio):
(Seedstudio)
(Iteadstudio)
As imagens falam por si. Quanto menos solda melhor. Observem que a solução ofertada pela Iteadstudio há tanto uma barra de terminais, para montar no protoboard, quanto um conector polarizado (dumb proof). Vamos construir nossos próprios "bricks"? Em breve inauguraremos nossa seção de montagem. Estava faltando um pouco mais de "hardware" em nosso site!