Maker Pro
Maker Pro

8 channel sinusoidal function generator

AcousticDieg

May 2, 2017
10
Joined
May 2, 2017
Messages
10
Dear all,

This is my first post in this forum and I wanted to first thank all the active community! Just be indulgent, i may forget to give all the relevant information.
I am currently thinking about an acoustic levitation setup that will need 8 piezoelectric acoustic emitters to work. All of these "high frequency speakers" will be driven by a sinusoidal signal (around 1 MHz) but each signal will be delayed (by a fraction of the sinusoid period) from its neighbor.
In addition each signal will most likely need to be amplified. An output voltage of around 15 Vpp driving a 50 ohm load is roughly what I would need for each output channel.

I know arduinos and controllers of the kind are out there but just never got the chance to use one.
Do you think I can buy a 8-Channel programmable device to do this and then build an 8 channel amplifier?
Any suggestions are welcome!
Thank you very much!
 

Don Perry

Apr 26, 2017
40
Joined
Apr 26, 2017
Messages
40
That sounds like a really fun project! It should be no big deal. I can't remember how many analog outs an Arduino 'Uno' has. A 'Mega' might be overkill but, yeah, a microcontroller and a couple of quad op amps should get you started for sure.

I'm looking at my megas and they both have at least 15 analog outs labeled on the board.
 

Alec_t

Jul 7, 2015
3,186
Joined
Jul 7, 2015
Messages
3,186
Welcome to EP!
15Vpp into 50 Ohms is about 0.5W. So you would be supplying ~4W total electrical energy, which seems on the low side for levitiating any significant load. What would you be using as the medium for levitation? I suspect air transducers at 1MHz would be very inefficient for your application. Liquid-immersed transducers should exert higher acoustic pressure, but are likely going to be very expensive :(.
 

Audioguru

Sep 24, 2016
3,639
Joined
Sep 24, 2016
Messages
3,639
Who makes a piezo transducer that works as high as 1MHz and must produce 0.5W RMS?
Why do you call 1MHz acoustic? It is far higher than ultrasonic and is smack in the middle of the AM radio broadcast band.
 

AcousticDieg

May 2, 2017
10
Joined
May 2, 2017
Messages
10
That sounds like a really fun project! It should be no big deal. I can't remember how many analog outs an Arduino 'Uno' has. A 'Mega' might be overkill but, yeah, a microcontroller and a couple of quad op amps should get you started for sure.

I'm looking at my megas and they both have at least 15 analog outs labeled on the board.

Great thank you! So each output can generate the sine wave with its own delay? The sine period would be around 1 microsecond and the smallest delay 1/8 of that.
 

AcousticDieg

May 2, 2017
10
Joined
May 2, 2017
Messages
10
Welcome to EP!
15Vpp into 50 Ohms is about 0.5W. So you would be supplying ~4W total electrical energy, which seems on the low side for levitiating any significant load. What would you be using as the medium for levitation? I suspect air transducers at 1MHz would be very inefficient for your application. Liquid-immersed transducers should exert higher acoustic pressure, but are likely going to be very expensive :(.

Yes it will be in water! The transduction is much more efficient and each emitter will be focusing the acoustic power by emitting in the same direction. You are right for the price! So I also may want to make a levitation device in air, could I handle higher electric powers with a simple arduino/amplifier combination?
 

Don Perry

Apr 26, 2017
40
Joined
Apr 26, 2017
Messages
40
Great thank you! So each output can generate the sine wave with its own delay?

Correct. Other than that though, I have no idea how this stuff works. Although I have seen Primer and their attempt turned out to be a time machine so, you know, be careful.
 

AcousticDieg

May 2, 2017
10
Joined
May 2, 2017
Messages
10
Who makes a piezo transducer that works as high as 1MHz and must produce 0.5W RMS?
Why do you call 1MHz acoustic? It is far higher than ultrasonic and is smack in the middle of the AM radio broadcast band.

Hi Audioguru! Some companies in Non-destructuve testing and medical ultrasound make these kind of piezos. Any elastic wave either it be in a solid, liquid or gas is termed acoustic. 1MHz is ultrasonic (any acoustic wave above 20kHz is)
 

AcousticDieg

May 2, 2017
10
Joined
May 2, 2017
Messages
10
Correct. Other than that though, I have no idea how this stuff works. Although I have seen Primer and their attempt turned out to be a time machine so, you know, be careful.
Do you have any experience in blowing up those quad op amps? I am thinking of 15Vpp on each output in almost continuous excitation mode (may start heating?). By the way, can we program the Arduino to output train pulses of sinusoidal waves with a given duty cycle?
 

Audioguru

Sep 24, 2016
3,639
Joined
Sep 24, 2016
Messages
3,639
Opamps cannot drive a load as low as 50 ohms to 15V p-p at 1MHz.
 

AnalogKid

Jun 10, 2015
2,661
Joined
Jun 10, 2015
Messages
2,661
Many opamps have a unity gain crossover of greater than 1 MHz, so for a simple voltage follower there are many choices. However, 150 mA peak at 1 MHz is not a simple app note circuit to copy. Some current feedback opamps designed for the DSL market might handle this. Separate from that, what is the delay "fraction"? At 1 MHz, you might find that the group delay through an opamp is more than you need, and not very repeatable from part to part.

ak
 

AcousticDieg

May 2, 2017
10
Joined
May 2, 2017
Messages
10
Many opamps have a unity gain crossover of greater than 1 MHz, so for a simple voltage follower there are many choices. However, 150 mA peak at 1 MHz is not a simple app note circuit to copy. Some current feedback opamps designed for the DSL market might handle this. Separate from that, what is the delay "fraction"? At 1 MHz, you might find that the group delay through an opamp is more than you need, and not very repeatable from part to part.

ak
Thanks for your reply Ak. Given a driving signal of 1MHz the delay from neighbor to neighbor will be of T/8 (T=1 microsec being the period). That is the shortest delay would be T/8=125 ns and the longest 7T/8=875 ns. Those are my main concerns about 1) Precisely handling those delays with the arduino. 2) Amplifying each signal without introducing any considerable delay, unless it is exactly the same for each channel.
 

Alec_t

Jul 7, 2015
3,186
Joined
Jul 7, 2015
Messages
3,186
each emitter will be focusing the acoustic power by emitting in the same direction.
How will you achieve the focussing? Transducers ususally radiate with a divergent beam.
By the way, can we program the Arduino to output train pulses of sinusoidal waves with a given duty cycle?
To get a reasonable sinewave you are going to need, say, twenty samples per cycle per transducer. So the MCU would have to spit out samples at 20MHz x 8 = 160MHz. On top of that you would need processing time to handle the sample sequencing and duty cycle control. Is any Arduino up to that? I very much doubt it, but I'm not an Arduino guy.
Why the insistence on a sinewave drive? Aren't ultrasonic transducers normally just hit with a big pulse and allowed to ring at their natural resonant frequency?
 
Last edited:

AcousticDieg

May 2, 2017
10
Joined
May 2, 2017
Messages
10
How will you achieve the focussing? Transducers ususally radiate with a divergent beam.

To get a reasonable sinewave you are going to need, say, twenty samples per cycle per transducer. So the MCU would have to spit out samples at 20MHz x 8 = 160MHz. On top of that you would need processing time to handle the sample sequencing and duty cycle control. Is any Arduino up to that? I very much doubt it, but I'm not an Arduino guy.
Why the insistence on a sinewave drive? Aren't ultrasonic transducers normally just hit with a big pulse and allowed to ring at their natural resonant frequency?

Thank you Alec_t for your reply. I am not familiar with Arduino neither and that's why I am investigating the feasibility of synthesizing the signal for now. You are right, banging on the transducer with a pulse would make it oscillate at its natural frequency but, however, I need a sustained continuous oscillation at a given frequency. I don't see an other option than driving it with a sine forcing.
 

Harald Kapp

Moderator
Moderator
Nov 17, 2011
12,513
Joined
Nov 17, 2011
Messages
12,513
The arduino's analog outputs are in fact PWM outputs which can be converted to an analog voltage by low pass filtering. The frequency of the PWM is 490 Hz or 980 Hz depending on the specific type of arduino. That's a far cry from your 1 MHz.
An arduino per se is not suitable.

You might try to create suitably shifted square waves from a microcontroller and add filters to create at least sinusoidal waveforms from them (if not pure sine waves). These sinusioidal waveforms would keep the phase shift of the original digital signal +- some loss in accuracy due to the tolerances of the analog components in the filters.
This will require a microcontroller with a clock frequency much higher than 1 MHz to achieve a good resolution.

Another approach is to start with a single 1 MHz oscillator and create variable phase shifts by using adjustable all pass filters. The advantage of this setup is that in case you need to adjust the frequency to match the transducer's resonance frequency you only have to adjust one single oscillator. Furthermore, as long as you don't have to adjust the phase continuously within microseconds, the setting of the different phases can be done comparatively slowly as the digital pots used in the example circuit memorize the setting until it is changed. An arduino is well suited to set the digital pots.
 

AcousticDieg

May 2, 2017
10
Joined
May 2, 2017
Messages
10
Hi Harald. Thanks for your help.

Another approach is to start with a single 1 MHz oscillator and create variable phase shifts by using adjustable all pass filters. The advantage of this setup is that in case you need to adjust the frequency to match the transducer's resonance frequency you only have to adjust one single oscillator. Furthermore, as long as you don't have to adjust the phase continuously within microseconds, the setting of the different phases can be done comparatively slowly as the digital pots used in the example circuit memorize the setting until it is changed. An arduino is well suited to set the digital pots.

This definitively looks like a great and robust route. So I could give a try to something like:
1) Generate a 1MHz sine wave with a single oscillator => Amplify signal (I have an RF amplifier) => split into eight channels and apply the desired phase shift with adjustable all pass filters. Do you think the later can take 4-5 Watts in continuous mode?
Alternatively:
2) Generate a 1MHz sine wave with a single oscillator => split into eight channels and apply the desired phase shift with adjustable all pass filters => Amplify signal. Do you know how I could easily amplify 8 channels up to 4-5 Watts each in 50 ohm load?

Thanks!
 

Harald Kapp

Moderator
Moderator
Nov 17, 2011
12,513
Joined
Nov 17, 2011
Messages
12,513
Amplify signal (I have an RF amplifier) => split into eight channels and apply the desired phase shift with adjustable all pass filters. Do you think the later can take 4-5 Watts in continuous mode?
Do it the other way: split the phases, then amplify. The active all pass filter may be made to work with a power ampifier, but that is not the design.
The design calls for an operational amplifier with high gain to create the filter. Opamps of this type typically do not have enough power.

Do you know how I could easily amplify 8 channels up to 4-5 Watts each in 50 ohm load?
I have no design at hand. I'd have to search for one online. So can you unless another member of our forum reads this thread and has an option to share.
 
Top