Como trocar o push button, por um interruptor nesse codigo

Olá Gente ! Estou fazendo um projeto de automação residencial,achei esse código na internet, ele e perfeito pra mim. Ele consiste em vc apagar e acender um LED, tanto pelo navegador, quanto pelo botão, e amostrar do status no navegador se o LED esta ligado ou apagado. só que ele usa push button ( ou seja vc manda um pulso pro Arduino e ele acende o led ) só que eu preciso que ele use um interruptor. Alguém pode me ajudar nisso ?
Anexei o código do Arduino e o esquema do botão ( push button ). Desde já agradeço a todos !

Exibições: 1112

Anexos

As respostas para este tópico estão encerradas.

Respostas a este tópico

Oi LS, boa tarde.

Testa este code modificado.

Rui

Anexos

Exatamente o que eu faria Rui Viana, mas da seguinte forma naquela função:

void ButtonDebounce(void)
{
digitalWrite(6, digitalRead(2));
digitalWrite(7, digitalRead(3));
}

(não testei, mas acredito que funcione)

Então Rui funciona só que, não muda o status do LED navegador, e quando vc a perta o botão no navegador o LED dá só um pulso.. :/ preciso que o LED acenda com o interruptor e diz pro web serve que o LED está ligado..
Vou deixar aqui o link do projeto, não achei em nenhum lugar um projeto em português https://startingelectronics.org/articles/arduino/switch-and-web-pag...

Luiz Sena,

A partir dessa modificação, aseu web server vai somente monitorar, certo?

Se for isso, creio que tenha que atualizar o vetor:

Na função que o Rui modificou, insira na linha 167 (após o trecho reading[1] = digitalRead(3);)

LED_state[0] = reading[0];

LED_state[1] = reading[1];

Isso atualizará o vetor com a leitura atual, que será passado ao webserver.

Funcionou, .. só que eu não consigo acender e apagar o LED pelo navegador  :/ Anexei o código aqui, só falta corrigir isso.. Mas muito obg por está me ajudando  :)

Anexos

Luiz,

Antes das próximas alterações...

Quando eu escrevi "somente monitorar", é porque vc alterou uma característica importante do projeto original, ao trocar push button (sem  trava) por um interruptor de duas posições.

Antes, os botões (reais e virtuais) tinham o mesmo funcionamento.

Agora, vc precisa definir a lógica, pois botões B1 e B2 (reais) podem permanecer no estado "ligado".

Exemplo:

Se B1 estiver na posição ligado , o que deve acontecer ao clicar/pressionar o b1 virtual?

Ah sim. Eu entendi oq vc quis dizer. Então oq vc me sugere agora ? Acho que o senhor entendeu oq eu preciso, eu preciso ligar e apagar o LED por um interruptor conectado ao arduino, para saber se tá ligado e conseguir liga e desligar o LED pelo web serve. Vc acha que é possível fazer isso ?

Sim, é possível (principalmente se esquecermos a parte do "senhor"...kkk)

Seus interruptores (vamos chamar os botões reais assim) e botões (virtuais) vão funcionar como a ligação residencial "em paralelo": 

a) a posição do interruptor não determina se a luz está acesa ou apagada.

b) a luz acesa/apagada depende da combinação do interruptor com o botão virtual - assim que um deles mudar de posição, a situação da luz também altera.

Seu projeto contempla isso?

Luiz,

Como não poderei ler sua resposta ou resolver isso hoje, preciso que faça a seguinte alteração:

No código HTML do seu webserver, que está assim:

[...]

setTimeout('GetArduinoIO()', 1000);

strLED1 = "";
strLED2 = "";

Comente essas linhas:

//strLED1 = "";
//strLED2 = "";

Salve e recarregue a página.

Isso fará com que os parâmetros de estado dos botões virtuais sempre sejam enviados ao arduino.

(infelizmente, somente após cada um deles ser alterado pela primeira vez).

Att.

Oi LS,

eu fiz exatamente isto, mas usei o ESP8266 no lugar do arduino.

http://labdegaragem.com/forum/topics/boa-noite-esp8266-bot-o-mais-e...

Aqui tem o code, tela e o esquema.

Rui

Opa... Rui Viana... assim é muito mais fácil. Valeu!!!

Gente muito obgv, mas eu sou usar pelo push button msm. Pois no futuro devo fazer outros projetos que envolvam ligar e apagar essa msm lâmpada . Então um sistema de pulso e mais facil. Agradeço a atenção de vcs.!!!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço