arduino+ethernet shield+macbook+internet movel

bom, vou recapitular desde o inicio..
pretendo usar a aplicação android domotichome, mas como em casa o acesso a internet e feita pelo modem usb 3g ou wirless, queria primeiro configurar o ethernet shield para ter a certeza que ira tudo funcionar, ja que nas primeiras tentativas nada deu certo.
fiz entao as configuraçoes no computador, como e um mac, partilhei a ligação do modem usb com a porta ethernet(quando tento com modem usb) e partilha de airport (quando acesso wireless), configurei manualmente o ip com o num 192.168.2.1, com sub-rede 255.255.255.0. a firewall esta desativada e quando faço o teste de ping com o arduino com o exemplo webserver esta ok(10 packets transmited, 10 packets received) com o ip que eu defeni como 192.168.2.2..
no telemovel descarreguei a aplicação meti o ip do arduino192.168.2.2, port 80, e nao ha resposta..
quando tentei com os exemplos pareceu-me que havia ali alguma coisa que nao estava bem porque parece-me que nao ha recepçao da net. se usar o exemplo webserver ao abrir o safari e meter o ip do arduino aparece analog input 0 is 1023..., mas se usar outro pc com net e meter o ip do arduino nao da nada...
há algum passo errado que tenha feito ate agora?
será por estar a usar net wireless da vodafone daqueles routers huawei portateis??

o codigo domotichome e este:
#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xc8, 0x2a, 0x14, 0x44, 0x83, 0xa4 };
byte ip[] = { 192 ,168 ,2 ,2 };
byte gateway[] = { 192 ,168 ,2 ,1 };
byte subnet[] = { 255 ,255 ,255 ,0 };
Server server(80);

String readString = String(30);

byte server_send[] = {81, 174, 68, 58};
Client client_send(server_send, 80);
long lastConnectionTime = 0;
boolean lastConnected = false;
const int postingInterval = 10000;

void setup(){
Ethernet.begin(mac, ip, gateway, subnet);
delay(1000);
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
Serial.begin(9600);
}

void loop(){

if(!client_send.connected() && (millis() - lastConnectionTime > postingInterval)) {
String tot;
sendData(tot);
}
Client client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 30)
{
readString = readString + c;
}
if (c == '\n') {
Serial.print(readString);
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();

if(readString.startsWith("GET /?out=13&status=1"))
{Serial.print("\n 13 HIGH \n");
digitalWrite(13, HIGH);
client.print("{"status" : "1" , "out" : "");
client.print(13);
client.print(""}");
}
if(readString.startsWith("GET /?out=13&status=0"))
{Serial.print("\n 13 LOW \n");
digitalWrite(13, LOW);
client.print("{"status" : "0" , "out" : "");
client.print(13);
client.print(""}");
}

if(readString.startsWith("GET /?out=all"))
{
Serial.print("\n OUT ALL\n");
client.print("{"ip" : "192.168.2.2", ");
client.print(""devices" : ");
client.print("[{ "type" : "light", "name" : "led", "out" : "");
client.print("13");
client.print(""}");
client.print("]}");
}
readString="";
client.stop();
}
}
}
}
}

char * floatToString(char * outstr, double val, byte precision, byte widthp){
char temp[16];
byte i;
double roundingFactor = 0.5;
unsigned long mult = 1;
for (i = 0; i < precision; i++)
{
roundingFactor /= 10.0;
mult *= 10;
}
temp[0]='\0';
outstr[0]='\0';
if(val < 0.0){
strcpy(outstr,"-\0");
val = -val;
}
val += roundingFactor;
strcat(outstr, itoa(int(val),temp,10));
if( precision > 0) {
strcat(outstr, ".\0"); // print the decimal point
unsigned long frac;
unsigned long mult = 1;
byte padding = precision -1;
while(precision--)
mult *=10;
if(val >= 0)
frac = (val - int(val)) * mult;
else
frac = (int(val)- val ) * mult;
unsigned long frac1 = frac;
while(frac1 /= 10)
padding--;
while(padding--)
strcat(outstr,"0\0");
strcat(outstr,itoa(frac,temp,10));
}
if ((widthp != 0)&&(widthp >= strlen(outstr))){
byte J=0;
J = widthp - strlen(outstr);
for (i=0; i< J; i++) {
temp = ' ';
}
temp[i++] = '\0';
strcat(temp,outstr);
strcpy(outstr,temp);
}
return outstr;
}
void sendData(String thisData) {
if (client_send.connect()) {
Serial.println("connecting...");
client_send.print("GET /insert?ak=53e6321b&read=");
Serial.println("...sending ");
Serial.println(thisData);
Serial.println("\n");
client_send.print(thisData);
client_send.println(" HTTP/1.1");
client_send.print("Host: www.domotichome.net\n");
client_send.print("Content-Type: text/html\n");
client_send.println("Connection: close\n");
lastConnectionTime = millis();
Serial.println("Done ");
client_send.stop();
}
else {
Serial.println("connection failed");
}
}
obrigado pela ajuda
continuo sem saber o que esta errado..
thxk