Arduino – Acender/Apagar mais de um Led [Parte 2]

Finalmente está ae o post continuação do Arduino Ethernet Shield – Acender/Apagar mais de um Led [Parte 1] que vimos como acender mais de um led, porém alguns leitores não ficaram satisfeito e com razão, pois na Parte 1 poderíamos acender vários Leds ou dispositivos remotamente porem um de cada vez e não simultaneamente, agora na Parte 2 veremos como acionar um, dois, três ou quantos dispositivos no nosso caso Leds tiverem configurados, a idéia, circuito é a mesma, o que mudou foi a lógica do código no Arduino com Ethernet Shield.

O esquemático:

É o mesmo do anterior como podemos ver.

O código:

É aqui que ocorre toda a mudança. A lógica toda esta na string “?led=100“, na Parte 1 esta lógica podeira ter 4 estados:

STRING DEFINIÇÃO SAIDA
?led=000 Todos os leds apagados (Led1=0, Led2=0, Led3=0)
?led=100 Apenas o led1 ligado (Led1=1, Led2=0, Led3=0)
?led=010 Apenas o led2 ligado (Led1=0, Led2=1, Led3=0)
?led=001 Apenas o led3 ligado (Led1=0, Led2=0, Led3=1)

Isso porque usamos três leds, ou três quaisquer dispositivos acionado pelas portas do Arduino. Ok, beleza e agora pra acionar o primeiro e terceiro led ao mesmo tempo, sem ligar o segundo led? Teremos que fazer mais umas lógicas e aumentar as estruturas condicionais (if, else e/ou else if), vamos aos novos estados que vamos usar e entender cada um deles:

STRING DEFINIÇÃO SAIDA
?led=000 Todos os leds apagados (Led1=0, Led2=0, Led3=0)
?led=100 Apenas o led1 ligado (Led1=1, Led2=0, Led3=0)
?led=010 Apenas o led2 ligado (Led1=0, Led2=1, Led3=0)
?led=001 Apenas o led3 ligado (Led1=0, Led2=0, Led3=1)
?led=110 led1 e led2 ligado (Led1=1, Led2=1, Led3=0)
?led=101 led1 e led3 ligado (Led1=1, Led2=0, Led3=1)
?led=011 led2 e led3 ligado (Led1=0, Led2=1, Led3=1)
?led=111 Todos os leds ligados (Led1=1, Led2=1, Led3=1)

Então agora temos todas as possibilidades, todos leds ligados, todos apagados, apenas cada um ligado e as combinações de led1, led2 e led3 alternando.

O código acima foi compilado e gravado usando a IDE Arduino 1.0.1 e Arduino 1.0.3 ambas compilaram e gravaram com sucesso.

A biblioteca que usei foi a que esta no link abaixo:
http://www.4shared.com/zip/nkrw9SZE/ENC28J60.html

Agora usando o IP para o Ethernet Shield que está no código no meu caso 192.168.0.222, abra o navegador e digite este IP em seguida pressione enter, e a pagina web que esta no Arduino será carregada, abaixo segue duas imagens do teste do acesso dos botões e ações no Arduino:

NavegadorTesteLed1eLed3

No caso acionei dois leds via web, o led1 e o led3 e abaixo o print da ação do Arduino:

S

Fiz um vídeo também mostrando as ações aleatórios de ligar e desligar um ou mais de um led via web e o Arduino correspondendo.

Bom este foi um post que tive a obrigação de resolver, recebi vários comentários e até e-mails com duvidas sobre como fazer e esta ae, código e imagens, no fim é simples não? E este é o ultimo usando o Arduino UNO com Ethernet Shield sendo web server, pois ficamos limitados a enviar recursos devida a limitação.
Um post que verá em breve será usando o Arduino com o Ethernet Shield mas desta vez o web server será em um computador, sendo assim temos um leque maior que possibilidades e recursos como o uso de PHP, Python, Banco de Dados, CSS e scripts.

Para ir preparando o território recomendo a visualização dos dois posts sobre instalação de um Servidor web que postei recentemente, segue os links abaixo:

Instalando e configurando um servidor web para o Arduino – Parte1
Instalando e configurando um servidor web para o Arduino – Parte2

Espero que tenham gostado do post e que tire as duvidas de quem estava precisando.
Até a próxima!

Share Button

CC BY-NC-SA 4.0 Arduino – Acender/Apagar mais de um Led [Parte 2] by Cleiton Bueno is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.