Bom dia pessoal,
Preciso de uma função que funcione da seguinte maneira: ao pressionar um botão ele retém a informação ("1") por determinado tempo aguardando que um segundo botão seja pressionado. Caso esse segundo botão não seja pressionado durante um tempo X, a saída vai para 0. Caso o segundo botão seja pressionado dentro do tempo X, a saída vai a 1.
Não consegui fazer isso no meu código...
Tags:
Quer aprender ? Estude isso :
Já li as referências, mas tenho dificuldade em trabalhar com Millis() ainda...
Márcio, informe qual a sua dúvida para que a equipe de plantão explique tudo .
Para aprender e nessa situação que o Marcio precisa pode ser extremamente útil.
Dá uma lida nesse segundo link que o Murta enviou, dá para aplicar de uma forma bem eficiente.
No lugar de um push-button para ligar um pino, fazer um digital-read para testar se o botão foi pressionado, etc, etc... como eu fiz no exemplo que lhe enviei, você pode ligar essa função que o Murta comentou:
attachInterrupt(digitalPinToInterrupt(pin), ISR, mode); |
Vou verificar amanhã e retorno.
Pessoal, eis o meu código atual: http://pastebin.com/wCkTYBgu
Preciso ainda implementar a lógica que quero (descida de rampa): quando o SS2 for pressionado, espera-se que o SS1 seja pressionado dentro de 10s. Se não for, o estado de SS2 volta a zero e nada acontece. Se for pressionado, tenho a função lverde chamada.
Outra (agora em caso de subida na rampa): quando eu ativar SS1, espera-se que eu passe por SS2 e chegue a SS3 dentro de 30 segundos. No meu código atual, ao pisar em SS1 o semáforo já vai a vermelho. O que quero nesse trecho é que se ao passar por SS1, SS3 não for ativo dentro de 30seg, a função lverde seja chamada, normalizando o semáforo para verde e desativando o efeito antes ativo pelo SS1.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por