Need: to decide on a board that can handle:
*frequency generation from 1 hz to 2000 hz
display of frequency
Hint:
AD8933 or such, written via I2C bus to put out the frequency, and a display that would indicate the frequency also.
Out put would be a sinewave and the handling of that is out of scope of Arduino peeps..
Nonetheless if one can find the smallest and most efficient means os coming up wiht a "vco" so to speak, with 1 to 2000 Hz, that would be groovy!
I'm working on the voice coil actuator and amplifier for that matter.
Get one of the AD8933 boards and use it to generate the frequency. The few bucks spent saves a lot of effort trying to get the Arduino to do it. They claim up to 12.5Mhz, but the sine wave drops in amplitude and gets a bit grainy above ~2 Mhz. There are libraries for it. I used
Fantastic.
I looked at the code for the earlier advise and it seems they are using pulse width with a low pass filter. doesn't seem cosher, converting a square wave into a sin.
I will look at the ad9833. Thanks.
I also recommend the AD9833 however one thing to be aware of is the output will be 0V to 0.65V peak to peak for sine and triangle waveforms, so if your application needs higher outputs you will need to use an op-amp to boost the signal output of the AD9833, and if you need a waveform centered on 0V then of course whether you use the AD9833 or the PWM method then the circuit becomes more complex to implement.
It's mathematically valid. A square wave is composed of a number of sine waves at various frequencies. The filter is to remove the frequencies you don't care about.
That said, with such a wide range of 0 - 2,000Hz, an RC filter is probably not the best choice. I'd use an external DAC. 2kHz is such a low frequency that a dedicated DDS device is probably an unnecessary expense. How much resolution/dynamic range do you need on the sine wave amplitude?
If you use a processor with a built-in DAC it's probably a single-chip solution!
Thanks! So far I've decided to use the AD9833 board module that I can buy for cheap, and plug that into the main board. Then install an audio amp module onboard as well. Super cool idea is to use an analog output pin as gain control.