Olá, estou com dificuldades em realizar uma função para calcular a velocidade utilizando um sinal vindo do sensor indutivo.
Me baseie no tópico dos códigos que estão no "Velocimetro só chega a 96Km/h ... ajuda" então fiz o seguinte código abaixo.
Tenho um sensor indutivo que envia um sinal fechado, quando a sua fase e induzida o sinal se abre.
Tenho que utiliza a entrada do sensor indutivo em uma porta analógica ou digital?
Não sei se o comando pinMode e o comando para leitura das entradas estão corretas...
Como eu faria a utilização do sensor para o calculo de velocidade? Seja calcular apenas quanto estivesse atuando...
Lembrando que a variável velo será atualizada a cada segundo, se que o calculo tira uma media no tempo de 1 segundo.
O mesmo sinal do sensor será utilizado para somar a distância em uma variável, já que cada atuação do sensor ele andara 0,07 centímetros.
#define REFRESH_TIME 1000 //Atualiza a cada 1 segundo
long ultimaAtualiza;
float circrodametros = 0.07; //Tamanho da circuferencia da roda em centimetros
float velo; //Velocidade
float tempodecorrido; //Tempo em que o calculo e feito
int sensor = 0; //Variavel para o sensor*
void setup() //bloco de configuração
{
pinMode(A0, INPUT); //setar pino analogico A0*
sensor = analogRead(A0); //ler entrada analogica A0*
ultimaAtualiza = micros();
velo = 0.0;
}
void loop()
{
if (micros() - ultimaAtualiza >= REFRESH_TIME);
{
velo = ((36000000*circrodametros)/tempodecorrido);
ultimaAtualiza = micros();
}
}