Olá!
Amigos estou encontrando dificuldades em bolar um código que possa me dizer quanto tempo um led permaneceu ligado.
É mais ou menos isso:
O led é aceso quando o interruptor fecha o circuito, apangando quando o interruptor esta aberto novamente.
O intervalo de tempo que o led permance aceso "tempo que o botão esteve pressionado" é o que desejo que o arduino me mostre.
Estará ótimo se esse tempo puder ser exibido no serial monitor mesmo...
Alguém por favor poderia auxiliar. Estou montando um sensor de pressão e este mecanismo é fundamental para o projeto, agradeço desde já.
Segue uma tentativa de fazer isso, funciona desta forma?
int led=0;
int button=1;
int long pressbutton=0;
int long openbutton=0;
void setup(){
Serial.begin(9600);
pinMode(led, OUTPUT);
pinMode(button, INPUT);
}
void loop(){
int state=digitalRead(button);
if(state==HIGH){
digitalWrite(led, HIGH);
pressbutton=millis();
}
else {
digitalWrite(led, LOW);
Serial.print(openbutton=millis()-pressbutton);
}
}
Tags:
Olá Nack!
Existe um exemplo pronto para isso no site do Arduino.
Esse exemplo é completo e leva em conta o tempo de debounce (para ser considerado como botão pressionado).
Ainda faz alguns efeitos com o led quando você pressiona e solta o botão, informando o tempo que o botão ficou pressionado em segundos e milissegundos.
Você pode adaptá-lo às suas necessidade
NN, boa tarde.
Você tem outro tópico aberto sobre o mesmo problema.
Sugiro concentrar em um deles.
Rui
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por