First of all i am beginner with all these electronics thing and dont know much about it. So sorry in advance if i done anything wrong and childish.
I need a sine waves of +5V to -5V in my project which are used to drive a piezoelectric wafer actuators.
Till now i have done, a 8 bit R2R DAC to obtain a analog voltage and constructed code which generates sine waves. again further as this DAC has very high impedance so i used an op-amp buffer after it so that it can drive piezos. This thing worked very good , i got almost 1.5 MHz of sampling rate .
But now i need to make these sine waves positive as well as negative. So i was thinking if i could just just change the +ve and gnd wires across piezos in synchronization with waves and write a code accordingly then i will get what i need. So, i tried with BJT transistor H-bridge configuration to do this which has four switches and i can control them from arduino. But this didnt worked as in BJT their is gate current which destroys my operation and do not work this is a simply mess.
So, now i am stucked here. Maybe anybody here can help me out. i need four pure switches controllable through arduino like relays but they have very little speed as my requirement is to produce around 100KHz sine waves. Or anything new idea like modification in code or any other new way to do this using some sort of electronics. anything which will serve my purpose. It will be really help full.
Do you mean a sine wave with amplitude 10V and a DC average of 0V?
If so, starting from your generated sine wave, you can do that all with an operational amplifier. Subtract the DC offset and amplify in one or two stages. Designing for gain and offset
You can use a dual power supply, with positive and negative voltage for the output signal. Then use the full range to power the opamp, and connect the center (0V) tap to Gnd and the other actuator end.
I don't think that a H-bridge will work well with analog signals, it's designed for only switching on and off, and you risk to burn it with an analog signal instead of PWM. I'd think that kind of BLDC motor control will be easier to build, with a fully digital (PWM) amplifier using a H-bridge. Otherwise your analog pizeo driver may deserve big heat sinks and fan, depending on the characteristics of the piezo.
Do you have to control both the piezo frequency and amplitude, or only the amplitude?
I am already using a dual power supply to power an op-amp as u said. But the problem here is how to convert them to negative side as jremington said i am working on it.
and yes that H-bridge thing was totally mess for this application. actually before i used it to control DC motor rotation in either direction. so i was thinking like that only. but produced a mess.
And yes i need to control both frequency and amplitude of signal which is given to piezo. But i think this can be done using modification in code.
If you have any further suggestions. I am glad to hear them.
You have to adjust your sine wave table for only positive values, i.e. add 1.0 to sin(x). Then adjust the opamp offset, to get a full swing output from that positive input sine wave. Or adjust the offset to zero, and add a capacitor to the opamp input (AC coupling).
If you still have problems, show your circuit diagram, including all power supplies.
Wawa:
Two Arduino pins driven in opposite phase could generate 10volt P/P across the piezo.
Post the diagram of your R2R DAC.
Leo..
Of course this would produce a square wave rather than a sine wave, but for many ultrasonic applications a sine wave isn't particularly necessary.
For reference, I've attached a schematic of the common HC-SR04 ultrasonic range sensor which uses this approach for the transmitter piezo (T40). It's driven by anti-phased outputs from the max232 with a nominal +7 V on one side and a nominal -7 V on the other side to get an effective 28 V peak to peak drive signal. STC11 in this drawing is a one time programmable microcontroller.
Thank You jremington your technique worked
Thanks others also
here is attaching circuit diagram what i created to produce sine waves.
Kindly check out and if you have any suggestions for refinement of it. then i will be glad to hear.
here is little problem i have observed , As to offset the output i am using arduinos 5V pin. but its voltage is slightly unstable like its varies from 5.01 V to 5.05 V. Anybody got an idea how to make it constant(or stablize).
mandarkothavade:
here is little problem i have observed , As to offset the output i am using arduinos 5V pin. but its voltage is slightly unstable like its varies from 5.01 V to 5.05 V. Anybody got an idea how to make it constant(or stablize).
Offset should not be a problem, because the whole setup is ratiometric.
Try to couple the DAC with a capacitor to the opamp, and connect the +input with a resistor to ground.
Then you don't need the 5volt pin for offset compensation.
Or try this.
Two 4-bit DACs on two different Arduino pins (= 8-bit DAC).
Each generating half a sine wave after each other (I hope you know how to code that).
Two opamp buffers (gain = 1) for the two DACs.
Piezo between the opamp outputs.
If the opamps are rail2rail in and out, then you can use a single 5volt supply.
Both ways eliminate offset problems, but you still have DAC output level variations.
Leo..
i got a new problem here which opamp should i use to drive circuit which i have shown earlier also attaching with this post.
I need a kind of high-speed opamp as my frequency requirement is high. up to 500KHz
I tried with LM324 but the started distorting waveforms after 10KHz.
As i have less knowledge of electronics its hard to choose opamps from whole lot of options. I checked many websites like ti.com and many more but not got any solid and easy way to understand and choose opamp which will fit right for my application.
So, anybody here who can help me choosing a right opamp in my application.