Pessoal, alguem sabe dizer se é possivel e caso seja como posso fazer, a ideia é que um push botão normal tenha duas funções,ou seja se ele for carregado por 50 milisegundos faz uma coisa se for carregado por 5 ou 10 segundos faz outra ação.

É possivel determinar o tempo que este é carregado e fazer disso uma condição?

Exibições: 632

Responder esta

Respostas a este tópico

Se for pra arduino, vc pode usar a interrupção externa ajustada para decida, então assim que vc apertar o botão e aterrar o pino a rotina da interrupção deverá pegar o valor que tem na função millis e ajustar a propria interrupção para subida,quando vc soltar o botão a interrupção entra de novo e pega o valor da millis de novo, ai vc compara os valores e ajusta de novo pra decida.

Assim vc mantem a rotina principal livre de ficar verificando um pino.

Rui, Conheço outras duas possibilidades, a primeira mais utilizando millis() e a mais elegante seria utilizando pulseIn().

Com o millis vc pode fazer algo do tipo:

quando aciona conta os millis, e se o estado (high) fica mais de 5 segundos (por exemplo) ele executa um comando, se ficar menos que 5 segundos executa outro.

De uma olhada nos textos de ajuda do "pulseIn" na pagina do arduino.

Abç 

Tive a testar a função pulseIn e não consegui tirar o melhor proveito dela, pois so obtinha valores se tivesse muito segundos a pressionar o botao e por vezes carregava no botao o valor do pulseIn mantinha se em 0.

Usei o exemplo do site do arduino e vi os resultados na serial.

Muito obrigado, não tinha pensado nessa do millis.

Ricardo vou dar uma olhado sobre o que se trata o "pulseIn"

Mais uma vez obrigado aos dois

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço