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á.
Tags:
Oi 2N, bom dia,
faça o seguinte:
Antes do setup;
Crie uma variável long assim por exemplo long TempPress = 0;
Crie uma variável long assim por exemplo long TempSalvo = 0; // (Valore em milissegundos)
Dentro do loop;
Após pressionado botão salve o valor de millis(), nesta variável --->> TempPress = millis();
Após soltar o botão subtraia o valor salvo, de millis() ------>>> TempSalvo = millis() - TempPress;
TempSalvo terá o valor do tempo em que o botão ficou pressionado em milissegundos.
Rui
Olá Rui, Obrigado por ajudar!
Me baseando no que sugeriu...escrevi isso:
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);
}
}
Você sabe se funcionaria assim? Agradeço, porque não tenho a mínima idéia.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por