Ecco il codice di prova
#include <FreqCounter.h>
unsigned long frq;
int cnt;
int pin2=10;
int pin3=13;
void setup() {
pinMode(pin2, OUTPUT);
pinMode(pin3, OUTPUT);
// Serial.begin(115200); // connect to the serial port
// Serial.println("Frequency Counter");
}
void loop() {
// wait if any serial is going on
FreqCounter::f_comp=10; // Cal Value / Calibrate with professional Freq Counter
FreqCounter::start(100); // 100 ms Gate Time
while (FreqCounter::f_ready == 0) //rimani qua fino a che f_ready non è a 1
frq=FreqCounter::f_freq; //se FreqCounter::f_ready == 1
//Serial.print(cnt++);
//Serial.print(" Freq: ");
// Serial.println(frq);
if(frq >= 200){
digitalWrite( pin2,HIGH); // blink Led
}else {
digitalWrite( pin2,LOW) ; // blink Led
}
digitalWrite( pin3,HIGH) ; // blink Led
delay(20);
}
Forse ho trovato il problema,ma non so come risolverlo.
Ho inserito digitalWrite( pin3,HIGH) per vedere dove il programma passa, l'ho inserito dentro il ciclo while e il led non si accende mai, quindi penso che il problema sia la libreria che non attivi mai FreqCounter::f_ready.Dove sbaglio?