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.
Tags:
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...
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por