Led não acende e não consigo acessar pelo próprio notebook

O sketch abaixo está carregado no arduino com shield ethernet conectados num notebook

de minha rede doméstica por wi-fi. Tenho um desktop ligado direto ao roteador.

O shield  está ligado ao roteador por cabo de rede

O led está ligado no pino 6 com  resistor de 330 Ohms.

Mas acontece 2 fatos:

1 Não consigo acessar o arduino pelo notebook mas consigo pelo desktop

( há tempos passados acessava pelos dois computadores)

2. O LED NÃO ACENDE apesar de aparecer na tela "ligar led" como no sketch e mudar de

cor quando clicado.

Obs. testei as ligações e mudando o jumper do pno 6 para o pino 5V o led acende.

Anexei também "ACENDERBOTÃO.ino que é o mesmo sketch.

Onde estou bobeando?

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

byte mac[] = { 0xE8, 0xDE, 0x27, 0xAC, 0x47, 0x08 };
byte ip[] = { 10,0,0,101};

EthernetServer server(80);

String readString;
int Pin = 6;

void setup(){

pinMode(Pin, OUTPUT);
Serial.begin(9600);
Serial.println("acender botão");
Ethernet.begin(mac, ip);
server.begin();
}

void loop(){
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();

if (readString.length() < 100) {
readString += c;
}

if (c == '\n') {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();

client.println("<HTML>");
client.println("<BODY>");
client.println("<H1>Acende LED</H1>");
client.println("<hr />");
client.println("<br />");

client.println("<a href=\"/?ledon\">Ligar o led</a>");
client.println("<a href=\"/?ledoff\">Desligar o led</a><br />");

client.println("</BODY>");
client.println("</HTML>");

delay(1);
client.stop();

if(readString.indexOf("?ledon") > 0)
{
digitalWrite(Pin, HIGH);
}
else {
if(readString.indexOf("?ledoff") > 0)
{
digitalWrite(Pin, LOW);
}
}
readString="";
}
}
}
}
}

Exibições: 183

Anexos

Responder esta

Respostas a este tópico

Mistérios...

Coisas para tentar:

Verifique se esse IP final 101 não está na faixa de IPs do DHCP. Não pode estar. Se estiver algum outro dispositivo pode ter ganhado esse IP.

Use o Ping para ver se cada dispositivo responde. Se não responder nem avance, tem coisa errada. Embora alguns dispositivos realmente não respondem ping. É preciso se informar.

Inclua mensagens de debug no seu programa, assim vc sabe onde parou.

Ex:

Em:

f (c == '\n') {

Serial.println("Recebida solicitacao, enviando pagina");

client.println("HTTP/1.1 200 OK");

Em:

if(readString.indexOf("?ledoff") > 0)

{Serial.println("Reconhecido Comando: ledoff");
digitalWrite(Pin, LOW);
}

E assim vai.

Obrigado e desculpe-me a demora em responder. Fiz os testes e observações que recomendou
e está tudo certo.
Preciso mudar algo no roteador para poder acessar pela internet mas ainda não achei onde mudar.
Novamente obrigado

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço