Olá amigos, 

Estou com um projeto simples, imaginei ele e estou tentando fazer - ló. Postei uma vez já, mais não soube me expressar, quero fazer três ações com um botão, mais com uma condição não posso usar 'delay' em nenhum momento, pois quando apertar o botão, quero que ele responda imediatamente, as ações são da seguinte forma:

1 - Apertei o botão acende um LED;

2 - acende outro LED ;

3 - acende outro LED ;

4 - os LEDS ficam alternando mais sem o uso do delay, isso pra qualquer momento  ;

5 - todos apagam .

* Total de led são 3, e um botão.

obs: Usei um código com o delay mais tive problema pois quando a logica entrava no quarto momento tinha muita dificuldade para sair e ir pra o 5 momento, devido ao delay, 

Aí amigos alguém pode me dar alguma dica de como usar o millis() ou time, ou alguma alternativa para a leitura do botão não ser atrapalhada por causa do delay !!

Desde já agradeço 

Exibições: 351

Responder esta

Respostas a este tópico

Boa tarde GAP.

Clique em : " Deseja carregar arquivos? " e depois em " Escolher arquivo" e anexe o arquivo
com o seu sketch, para que possamos ver onde está errando.

Outra coisa. Você não disse os tempos entre os acendimentos dos LEDS.

RV

Boa Noite @mineirin RV;

Desculpa a demora para responder 

vou postar....

Desafio1.ino

Este é o arquivo, ele é meu rascunho total desculpa pela bagunça, mas eu nao consigo fazer os leds alternar usando o millis(),(Mais especificamente no case 3), gostaria de saber alguma logica que eu consiga alternar em qualquer tempo, e quando houver uma intervenção de botão ou um sensor o programa entende sem problemas... Será que poderia me ajudar?

Bom dia GAP,

Responda estas perguntas:

1 - Apertei o botão acende um LED;

          Tem algum intervalo entre 1 e 2 ?  Se tem de quanto é?

2 - acende outro LED ;

        Tem algum intervalo entre 2 e 3 ?  Se tem de quanto é?

3 - acende outro LED ;

        Tem algum intervalo entre 3 e 4 ?  Se tem de quanto é?

4 - os LEDS ficam alternando mais sem o uso do delay, isso pra qualquer momento  ;

        Por quanto tempo os LEDs ficam alternando?

5 - todos apagam .

RV

Boa Noite Mineirin RV 

respondendo:

1 - Apenas acende o primeiro LED;

2 - Apaga o Led 1 e acende o LED 2;

3 - Apaga o LED 2  e Acende um terceiro LED  3, por tanto neste momento led 1 e 2 apagados, e somente LED 3 acesso;

4 - Neste quarto momento, todos os leds 3 se alternam por 5 segundos mais sem o delay, pois pra qualquer momento que eu apertar o botão para passar para o 5 momento ele "ousa" na hora !! Gostaria de faze uma logica pra isso ou entender como posso usar de varias formas a função millis(), ou até mesmo como posso controlar tempos dentro do arduino sem que ele trave,,

RV, estou nisso umas 4 semanas serio não consegui ainda nada... sei que é simples para alguns mas pra mim estou com bastante dificuldade.

Obrigado desde já...

Olá,

Eu criei uma biblioteca de um menu inteligente e criei um demo conforme a sequencia que descreveu.

Basta ir no endereço https://github.com/eijuito/IToSmartMenu

Baixar o zip no botão clone ou download -> Download ZIP.

Em seguida na IDE do arduino, escolha mnu Sketch -> Include Library -> Add .ZIP Library ...

Depois basta abrir o exemplo que criei para você chamado Demo3Leds1Button

Menu -> File -> Examples -> Demo3Leds1Button

Por favor, me avise se funcionou ASSIM QUE TESTAR.

Boa sorte,

  'Eiju

Eiju, Boa tarde;

Eu fiz o teste seu aqui...e infelizmente não deu certo, mas estou tentando ainda, achei demais que você criou uma biblioteca, gostaria de aprender como criar, eu tenho 21 anos, e amigo se fosse o caso de até eu pagar umas aulas ou ate mesmo os matérias que preciso ter acesso pra prender esse nível de programação, eu faria!!!

Muito obrigado Eiju!

Boa noite GAP,

a sua ultima explicação ainda é incompleta.

Mas,  modifiquei seu code pra funcionar assim:

1  Liga o sistema;  Nada ocorre;

2. Ao apertar o botão; Acende o LED1 e fica acesso pelo tempo "intervalo";

3  Passado o tempo "intervalo"; Apaga o LED1 e acende o LED2;

4  Passado o tempo "intervalo"; Apaga o LED2 e acende o LED3;

5  Fica na sequencia, LED1, LED2, LED3,  até que seja pressionado novamente o botão;

    Então apaga-se todos LEDs

6 Ao ser pressionado o botão novamente inicia-se todo o processo.

RV

Anexos

RV,Boa noite, 

Eu acabei de fazer o teste e funcionou da forma que voce falou, só um detalhe ao apertar o botão a primeira vez ele acende o led 1  , e fica ate eu apertar a segunda vez... vc fez o codigo para quando eu apertar o botao na 1 vez eles ja ficam alternado .... Mas vou ler seu codigo e tentar acrescentar no meu.... MUITO OBRIGADO RV, vou trabalha em cima da sua logica agora..

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço