Frequency domain controller

Hi everyone,

I am new to the Arduino world. As the title suggests, I am trying to develop a simple frequency domain generator. The whole idea is that I generate a signal that has a certain frequency profile (using a Power Spectral Density -PSD), which is sent to a 100W speaker that acts like a electrodynamic shaker. I have an accelerometer placed on the speaker (MMA8451), which measures its motion. I would read the acceleration data, calculate its PSD, and make a control change to the signal.

Now, this is where my arduino naïveté comes in. Before starting any of this complicated stuff that I’ve described above, I am trying to simply generate some signals. I am unable to even create a simple analogue signal that the speaker can use. I am trying to generate a 50 Hz sine wave. As far as I know, the Arduino can only produce digital outputs (PWM, which are rectangular waves). For that reason, I also got a couple DAC chips (MCP4725), but I think the data transfer rate is too low for anything useful (i.e. high frequency content signals). Here is the list of things I possess:

  1. Arduino UNO board
  2. Various resistors
  3. Accelerometer
  4. DAC chips (2 pieces)
  5. Raspberry Pi 3 (Model B)
  6. 100W speaker and amplifier
  7. Various cables & breadboard

Could anyone let me know if what I am attempting is feasible with my Arduino UNO? If yes, could you kindly give me some guidance on the way forward? Am I missing any components? Please accept my apologies if I have missed any important details on this post, and/or let me know if you need any additional information.

Thank you for reading this! :slight_smile:

The Raspberry Pi has an audio output.

Generating 50Hz on the Arduino shouldn't be a problem but a "spectrum" and/or reading an accelerometer at the same time could be tricky.