Hi everybody:
I'm new to Arduino and programming, but reasonably good in electronics.
I' m interested in the frequency counter of MARNAW, so I downloaded the two source code Zip files in both , the sketchbook and into Arduino-0017,/hardware/libreries ( to be on the safe side).
The I just copied the original Marnaw's Example Program into my sketchbook .
But it didn't work: as soon as I try to compile it, I get the following message:
“ Error: 'Void' does not name a type”
on line 2. :o
I'm think I'm doing something wrong, but what?
Can someone help me?
And this is the sketch I just downloaded from Marnaw as it is:
#include <FreqCounter.h>
void setup() {
Serial.begin(57600); // connect to the serial port
Serial.println("Frequency Counter");
}
long int frq;
Void loop() {
FreqCounter::f_comp= 8; // Set compensation to 12
FreqCounter::start(100); // Start counting with gatetime of 100ms
while (FreqCounter::f_ready == 0) // wait until counter ready
frq=FreqCounter::f_freq; // read result
Serial.println(frq); // print result
delay(20);
}
Hey! You are magic! At least it compiles.
But still no results: only the first “Frequency Counter” printout and nothing else.
I connected a 4.5V square wave at pin 5 (protected by a 1.5KOhm).
I modified the sketch adding some check point (A,B,C) to see where it stops. It just prints a fast serie of “C” as if the parameter “frq” doesn't exist (or empty).
And b.t.w. where is declared that pin 5 is an input?
What do you suggest? Is something I can do the get it running?
Thanks for your patient support.
#include <FreqCounter.h>
void setup() {
Serial.begin(57600); // connect to the serial port
Serial.println("Frequency Counter");
}
long int frq;
void loop() {
FreqCounter::f_comp= 8; // Set compensation to 12
Serial.println("A");
FreqCounter::start(1000); // Start counting with gatetime of 100ms
Serial.println("B");
while (FreqCounter::f_ready == 0) // wait until counter ready
Serial.println("C");
frq=FreqCounter::f_freq; // read result
Serial.println(frq); // print result
delay(20);
}
I'm having the same problem, I got an Arduino with ATMega328, compiled the same software, fixed the capital V to make it compile, all that stuff and I have it connected straight to the PWM Timer1 output of another AVR (ATMega168 on my breadboard running a fan controller program I'm working on) and it isn't outputting any frequency. Is there any reason that the program only works on the 168 and not the 328 (last I checked they're identical chips except one has more memory)?
EDIT: Easy fix, whoever coded the frequency counter library threw in a check that only compiles the code if the target is an ATMega168, delete those two lines (the #if and #endif following it) in the FreqCounter.cpp file, save it, and then re-compile your Arduino code. it works great!
hello everybody
is there a way to measure TWO frequencies, one in each of two signals? Or, even better, two frequencies in the same signal? In other terms, can arduino perform some FFT?
thanks!
Thanks AWOL
In fact it seems like this topic is already being discussed on the forum.
Anyway I am still trying to acquire an audio signal; then I'll be able to think about how to treat it.
paolo
I have tried using this library (with modification for 328) and example sketch but I'm not getting results to the console. I'm using a Duemilanove with ATMega328.
I've got a 250Hz square wave I'm trying to measure. Should I be feeding this into digital pin 5 or analog pin 5? I've tried every pin on the board with no luck.
Here's the sketch:
// Frequency Counter Lib example
// #include <FreqCounter.h>
// Switch on LED on pin 13 each second
void setup() {
pinMode(13, OUTPUT);
pinMode(11, OUTPUT);
pinMode(7, OUTPUT); Serial.begin(57600); // connect to the serial port
Serial.println("Frequency Counter");
}
unsigned long frq;
int cnt;
void loop() {
// wait if any serial is going on
FreqCounter::f_comp=106;
FreqCounter::start(1000);
It seems the frequency counter does work on my Arduino, as verified by the faulty grounding on my macbook sending a small 60Hz signal through my wooden desk and picked up by the bare Arduino PCB!
Unplugging the laptop fixes that anomaly but still the counter won't read any intentional signals!
Is there a minimum threshold voltage the signal must be for proper detection? Will it read a sine wave? Is there a "trigger" level that's not being met? I would love to get this to work!