Bom dia pessoal, fiz um código que consiste em ascender e apagar um led por meio de um botão na pagina HTML, inclui também nesse código 2 sensores LDR para retornar a pagina o status da lâmpada caso seja acionado pelo interruptor, está funcionando quase 100% .Meu problema é o seguinte: tenho dois botões na pagina um para ascender e apagar a SALA e o outro para ascender e apagar o quarto, agora é q vem o problema, quando eu clico no botão SALA ele faz oq foi programado para fazer e aciona o led por 1000milis e apaga até aqui tudo certo mas... quando clico no outro botão QUARTO ele teria que fazer a mesma coisa que o outro botão e acionar o led correspondente a ele, mas não, quando clico nele ele ascende primeiro o led da sala dai apaga esse led e depois ascende o outro, é como se eu estivesse mandando ligar o primeiro e depois o segundo . Já revisei o codigo fiz algumas alterações mas nada até agora. Oque pode ser?

Outra coisa que achei estranho e não pode acontecer é que quando atualizo a pagina "f5" os ledes piscam em sequencia primeiro o da SALA depois o QUARTO como resolver isso também?

Abraços.

Código em anexo.

Exibições: 210

Responder esta

Respostas a este tópico

Olá Argel. Seguem as sugestões:

Percebi dois possíveis problemas:

1)   Nos IFs abaixo:

if(readString.indexOf("?ledon") >= 0)
if(readString.indexOf("?ledon1") >= 0)

Perceba que, quando for "ledon", o Arduino vai executar os 2 IFs, pois a substring "ledon" está presente nos dois casos.

( indexOf vai ser maior que zero nos dois casos).

Mude para "quartoon" e "salaon".
Precisa mudar em todos os lugares onde ela aparece

2) Talvez você possa ter problemas futuros na chamada do GET.

Não seria melhor incluir o endereço do servidor?

"<a href=192.168.9.177?quartoon

Mais pra frente você pode colocar esse endereço em uma variável para ficar mais fácil a parametrização.

Argel, O F5 provoca um novo acesso ao servidor com o parâmetro que está na URL atual. Por isso acontece isso.

Não sei se nossos amigos garagistas têm outra solução, mas pode ser feito da seguinte maneira:

- Crie uma variável (PARAMETRO_ANTERIOR ) que guarda o último parâmetro recebido (quartoon ou salaon). Você deve criar os comandos para isso.

- Na hora de testar, faça o seginte:

 if(readString.indexOf("?quartoon") >= 0 && readString != PARAMETRO_ANTERIOR)
 e assim por diante...        

Desse jeito, só vai piscar o led se houver mudança do comando. Mas isso é uma gambi (rsrs). Vou pesquisar se encontro uma solução melhor...

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço