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