Go Down

Topic: contar pulsos de um sensor (Read 123 times) previous topic - next topic

brenomagno

Eu estou fazendo um projeto onde eu preciso saber a quantidade de pulsos(pwm) que vem do sensor, eu preciso de ajuda com a função que devo usar para isso em meu código fonte, agradeço se alguem puder me dar uma ideia ou ate mesmo um código pronto que faça isso.

martlima

Uma opção seria conectar estes pulsos ao INT0 e ir somando a quantidade de pulsos...

E pode usar a função milis() para ir calculando o tempo..

Procure por interrupções que vc vai encontrar....

Abs
Marcio Lima.

bubulindo

PWM não funciona por quantidade de pulsos... queres a quantidade de pulsos ou a diferença entre o tempo ligado e desligado?
This... is a hobby.

brenomagno

eu preciso saber a quantidade de pulsos que o sensor esta retornando, num intervalo de tempo definido.

martlima

Utilize a interrupção...

https://www.arduino.cc/en/Reference/attachInterrupt


Code: [Select]


const byte interruptPin = 2;
int somatoria = 0;
int startMillis = 0;
int TempoMillis = 1000; // para obter amostragem por 1 segundo... amostragem maior precisao maior...
boolean EstouContando = 1;


void setup() {
 Serial.begin(9600);
 pinMode(interruptPin, INPUT_PULLUP);
 attachInterrupt(digitalPinToInterrupt(interruptPin), contagem, RISING);
 // veja outros tipos de trigger... change, falling, hih e low...
}

void loop() {
 if (EstouContando) {
   if ((millis() - startMillis) >= TempoMillis) {
   noInterrupts(); // desabilita iterrupções...
   Serial.print ("Contagem de ciclos=");
   Serial.println(somatoria);
   EstouContando=0; // para não ficar entrando no IF e jogando a informação na porta serial...
   }
 }
}

void contagem() {
 somatoria ++;
 if (startMillis==0) {startMillis=millis();}
}



Seria mais ou menos isto, não testei....

Abs...
Marcio Lima.

Go Up