Olá, como faço para escrever essa função no arduino:
- Se o botão1 ficar apertado mais que 2 segundos , Acionar saida1
Não sei como implementar o IF com o tempo de 2 segundos.
Me ajudem por favor.
Olá, como faço para escrever essa função no arduino:
Não sei como implementar o IF com o tempo de 2 segundos.
Me ajudem por favor.
const unsigned char but_pin = <mete aqui o pino.>;
unsigned char prev_but = 0;
unsigned char but = 0;
unsigned long prev_time = 0 ;
const unsigned long interval = 2000;
void loop() {
but = digitalRead(but_pin);
if (but != prev_but && but == HIGH {
prev_time = millis();
};
if (but == HIGH) {
if (millis() - prev_time > interval) {
digitalWrite(saida, HIGH);
}
} else {
prev_time = millis();
}
prev_but = but;
}
Muito obrigado bubulindo, funcionou perfeitamente aqui, se possivel teria como você explicar o código para mim? gostaria de entender como foi feito.
O que é que não entendes no código?
As variaveis (prev_but , but, prev_time e interval), como elas funcionam no programa?
prev_but - Guarda o estado do botao entre ciclos. Tu queres perceber quando o botão mudou de estado e para isso precisas de comparar entre antes (prev_but) e agora (but).
but - dá jeito na lógica passar o estado do botão para uma variável.
prev_time - Tens de saber quando começas a contar o tempo. Prev_time guarda o início dum intervalo.
interval - é o intervalo de tempo que estás a temporizar.
Muito obrigado bubulindo pela explicação, me ajudou muito..
de nada.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.