Olá Garagistas!
Ao tentar compilar um simples webserver utilizando o Ethertnet Shield 5100, aparecem os erros:
error: 'EthernetServer' does not name a type
In function 'void setup()':
error: 'pinmode' was not declared in this scope
In function 'void loop()':
error: 'EthernetClient' was not declared in this scope
error: expected `;' before 'client'
error: 'client' was not declared in this scope
Alguém já pode me ajudar?
Código do programa:
#include <SPI.h>
#include <String.h>
#include <Ethernet.h>
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x9B, 0x36 };
byte ip[] = { 192, 168, 0, 101 };
EthernetServer server(8090);
int led1 = 5;
int led2 = 6;
int led3 = 7;
String readString = String(30);
String statusLed;
void setup() {
Ethernet.begin(mac, ip);
pinmode(led1, OUTPUT);
pinmode(led2, OUTPUT);
pinmode(led3, OUTPUT);
}
void loop() {
EthernetClient client = server.available();
if (client)
{
while(client.connected())
{
char c = client.read();
if(readString.length() < 30) {
readString += (c);
}
if(c == '\n')
{
if(readString.indexOf("led1") >= 0) {
digitalWrite(led1, !digitalRead(led1));
}
if(readString.indexOf("led2") >= 0) {
digitalWrite(led1, !digitalRead(led1));
}
if(readString.indexOf("led3") >= 0) {
digitalWrite(led1, !digitalRead(led1));
}
// Cabeçalho http padrão
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<!doctype html>");
client.println("<html>");
client.println("<title>Tutorial</title>");
client.println("<meta name=\"viewport\" content=\"width=320\">");
client.println("meta name=\"viewport\" content=\"with=device-width\">");
client.println("<meta charset=\"utf-8\">");
client.println("meta name=\"viewport\" content=\"initial-scale=1.0, user-scalable=no\">");
client.println("</head>");
client.println("<body>");
client.println("<center>");
client.println("font size=\"5\" face=\"verdana\" color=\"green\">Android</font>");
client.println("font size=\"3\" face=\"verdana\" color=\"red\"> & </font>");
client.println("font size=\"5\" face=\"verdana\" color=\"blue\">Arduino</font><br />");
if(digitalRead(led1)) {
statusLed = "Ligado";
} else {
statusLed = "Desligado";
}
client.println("<form action=\"led1\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Led 1 - "+statusLed+" </button>");
client.println("</form> <br />");
client.println("<form action=\"led2\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Led 1 - "+statusLed+" </button>");
client.println("</form> <br />");
client.println("<form action=\"led3\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Led 1 - "+statusLed+"</button>");
client.println("</form> <br />");
client.println("</center>");
client.println("</body>");
client.println("</html>");
readString = "";
client.stop();
}
}
}
}
Tags:
na minha máquina só deu os seguintes erro;
pinmode(led1, OUTPUT);
pinmode(led2, OUTPUT);
pinmode(led3, OUTPUT);
pinMode é uma palavra reservada portanto o M deve ser maiusculo assim;
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
os outros erros podem ser a versão do arduino ou biblioteca, esse código é de uma aula minha do youtube e lá eu utilizei a versão 1.0.6, para mim a melhor IDE do arduino que existe.
Olá Eduardo Silva, tudo bem? Excelente vídeo-aula a sua. Falei contigo na descrição do seu vídeo lá no youtube antes de vir pra cá. Você viu?
- Testei em todas versões do compilador Arduino e continuou dando erro.
- Modifiquei as bibliotecas conforme cada versão, salvas em C:\Users\NiltonFelipe\Documents\Arduino\libraries e
mesmo assim continuou o problema.
Depois de muita peia descobri que o fato de estar abrindo o mesmo arquivo de projeto em cada uma das versões do compilador, fazia com que o programa não fosse corretamente compilado.
Agora consegui compilar o projeto e enviar para o Arduino, porém ele não pega IP. Abrirei outra discussão para debater o tema.
ps: Testei o exemplo DhcpAddressPrinter porém deu o erro Failed to configure Ethernet using DHCP
Gostaria de agradecer também ao Carlos kwiek que está em todas.
Obrigado a todos pelo apoio!
Como explicado pelo Eduardo, aqui comigo também compilou com o único erro de nomear pinMode sem maiúscula, já que com o m não se pode usar por ser palavra reservada, como explicado pelo Eduardo também, testei na versão 1.5 e na mais recente 1.63 e em ambas funcionaram corretamente,
Sugiro também se continuar tendo problemas que use antes que nada o sketch de exemplo da própria IDE ( arquivo>exemplos>ethernet>) desta forma você vai ter a certeza de que o sketch não tem erros e fazer testes.
Caso seu problema seja solucionado com as indicações dos colegas, não esqueça de editar seu tópico atual colocando antes do atual a palavra RESOLVIDO, desta forma ajudara a outros garagistas com a mesma FAQ.
Boa sorte.
Abs.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por