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);
}
}

Exibições: 552

Responder esta

Respostas a este tópico

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

http://playground.arduino.cc/Code/HoldButton

NN, boa tarde.

Você tem outro tópico aberto sobre o mesmo problema.

Sugiro concentrar em um deles.

Rui

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço