Go Down

Topic: Arduino + Html não aciona o LeD (Read 2455 times) previous topic - next topic

Leonardo_FN

Boa noite Pessoal, vim tirar uma duvida que meu código do arduino sobre o Ethernet Shield, que consigo ao clickar num botão e imprima um nome de Ligado/Desligado mas ao embaixo dele coloquei para ser acionado por um Led e parece que dar erro que o Arduino não reconhece o led, se alguem me ajudar estarei grato! Segue o Código Abaixo:
Code: [Select]
#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192 , 168, 0, 102); //IP que o Arduino Assumirá (programado do Roteador)

EthernetServer server(80);

void setup() {
 Serial.begin(9600);
 Ethernet.begin(mac, ip);
 server.begin();
 Serial.print("Seu IP do Servidor: ");
 Serial.println(Ethernet.localIP());
 pinMode(13, OUTPUT); // Pino 13 como Saida
}

void loop() {
 EthernetClient client = server.available();
 if (client) {
   Serial.println("Cliente Conectado");
   boolean currentLineIsBlank = true;
   
   String vars;
   int varMenu=0; // Função do Código ao ser digitado no Navegador
   
   while (client.connected()) {
     if (client.available()) {
       char c = client.read();
       
       Serial.write(c);
       vars.concat(c);
       
       if(vars.endsWith("=Ligado")) varMenu=1;
       else if (vars.endsWith("=Desligado")) varMenu=2;

       if (c == '\n' && currentLineIsBlank) {
         client.println(F("HTTP/1.1 200 OK"));
         client.println("Content-Type: text/html");
         client.println("Connnection: close");
         client.println();
         client.println("<!DOCTYPE HTML>");
         client.println("<html>");
         client.println("<head>");
         
         client.println("<title>Webduino</title>");
         client.println("<style type='text/css'>");
         client.println("body {");
         client.println("background-color: #CCC;");
         client.println("}");
         client.println("</style>");
         client.println("</head>");
         client.println("<body>");
         client.println("<img src='http://img856.imageshack.us/img856/5865/webduino.gif' width='180' height='108' /></p>");
         client.println("<hr />");
         client.println("<form action='' name='menu' enctype='text/plain'>");
         client.println("<input type='submit' name='Ligado' id='Ligado' value='Ligado' />");
         client.println("<input type='submit' name='Desligado' id='Desligado' value='Desligado'/>");
         client.println("</form>");
         client.println("<hr />");
         
         if (varMenu==0) //MAIN
         {
           client.println("<h1>WebDuirno</h1>");
           client.println("Trabalho realizado usando um Arduino UNO R3 + Ethernet Shield");
           client.println("<h3>Objectivo do site:</h3>");
           client.println("- Neste website e possivel activar as entradas/saidas do arduino independentemente.");
         }

         else if (varMenu==1) //Liga LED
         {
           digitalWrite(13, true);
           Serial.print("ON");
           Serial.print("\n");
           delay(100);
           client.println("<h1>WebDuirno</h1>");
           client.println("Trabalho realizado usando um Arduino UNO R3 + Ethernet Shield");
           client.println("<h3>Objectivo do site:</h3>");
           client.println("- Led Pin 13 Ligado");
         }
         else if (varMenu==2) //Desliga LED
         {
           digitalWrite(13, false);
           Serial.print("OFF");
           Serial.print("\n");
           delay(100);
           client.println("<h1>WebDuirno</h1>");
           client.println("Trabalho realizado usando um Arduino UNO R3 + Ethernet Shield");
           client.println("<h3>Objectivo do site:</h3>");
           client.println("- Led Pin 13 Desligado");
         }
                         
         client.println("</body>");
         client.println("</html>");
         break;
       }
       if (c == '\n') { currentLineIsBlank = true; }
       else if (c != '\r') { currentLineIsBlank = false; }
     }
   }
   delay(1);
   client.stop();
   Serial.println("Client Disconectado");
 }
}

bubulindo

O led está a funcionar correctamente com o exemplo blink?

esse true e false podem ser o problema, embora não tenha a certeza. Experimenta usar HIGH em vez de true e LOW em vez de false.
This... is a hobby.

Leonardo_FN


O led está a funcionar correctamente com o exemplo blink?

esse true e false podem ser o problema, embora não tenha a certeza. Experimenta usar HIGH em vez de true e LOW em vez de false.


Foi testado com seguintes paralelos:
Code: [Select]
digitalWrite(13, HIGH);
digitalWrite(13, true);
digitalWrite(13, 1);

digitalWrite(13, LOW);
digitalWrite(13, false);
digitalWrite(13, 0);


e nenhum deles funciona mas com o exemplo Blink eles funcionam normalmente, acoplado ou sem acoplado a placa Shield Ethernet, se puder ajudar estarei grato.

bubulindo

Que recebes no serial port?

Se reparares o programa manda informacão acerca de onde está com mensagens para o serial port. Se vires isso consegues perceber onde ficou preso. Faz isso e mete aqui um paste do que saiu no serial port
This... is a hobby.

bbobbio

Se não estou enganado, o EthernetShield usa os Pinos 11 a 13. Tenta outro e faça o teste.

HugoPT

Quote
if(vars.endsWith("=Ligado")) varMenu=1;
        else if (vars.endsWith("=Desligado")) varMenu=2;

Adiciona um Serial.print a seguir a cada uma destas linhas de forma que assim possas monitorizar o comportamento e ver se defacto a variavel é modificada.
Algo assim:
Code: [Select]
       
if(vars.endsWith("=Ligado")){ varMenu=1; Serial.println("A varMenu foi alterada para 1");}
       
else if (vars.endsWith("=Desligado")){ varMenu=2; Serial.println("A varMenu foi alterada para 2");}

Depois basta abrires a porta Serie e ver o que se la passa.
Se a variavel foi mudada entao ela depois tera de entrar nos If abaixo
Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

Leonardo_FN


Se não estou enganado, o EthernetShield usa os Pinos 11 a 13. Tenta outro e faça o teste.


Bem primeiramente obrigado por estar ajudando eu por esta programação arduino, segundo desculpe a não responder e só agora finalizar este tópico.

Depois que eu testei o Pino 6 funcionou sem nenhum poblema (Intranet), o poblema mesmo é que eu não sabia sobre a placa Ethernet ele utiliza os Pinos 11 até 13, agradeço muito e depois quem sabe estarei pedindo mais duvidas a vocês obrigado mesmo isso ajudou muito sobre tantos trabalhos que eu quero aplicar sobre a plataforma de automação arduino.

Meu objetivo agora é por ele na Internet do que Intranet, obrigado !


O meu Sonho é Inovar e faze-lá é meu Objetivo !

Go Up