Go Down

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

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");
 }
}

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.
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).


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.

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
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

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


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