(scroll down for question without background)
Hi People. Disclaimer: my journey with electronics started just over a week ago and while I am loving it I am very aware I really know what I'm talking about. So if I have said anything that doesn't make sense, or my understanding about things is wrong please feel free to correct me.
I am working on a project to drive an ultrasonic atomizer where I need to build a circuit that can produce a 113 KHz frequency, can handle largish (=>5A) currents at 24V DC or higher.
My idea at the moment is to build an H bridge out of MOSFETS, where the two on one path are normally open and the other two are normally closed. I would then set my PWM frequency to 113 KHz (see code at bottom) to switch these MOSFETs and have an external power supply provide the correct power and voltage.
The reason I would use an H bridge is because the amplitude of 113 KHz square waves is important.
Things I don't know:
- What a MOSFET really is or how it actually works
- If you can have normally open and closed MOSFETS
QUESTIONS:
-
Where can I find a MOSFET that can do all of 1) be switched by 5V from arduino 2) switch at at least 113 KHz **3)**handle at least 24V and a largish current (1-5A or greater)
-
Can you get normally open and normally closed MOSFETs and if so how would I get both types of the parameters described above.
-
As I previously mentioned I am very new to this and still have a basic understanding, so as specific direction as possible would be awesome e.g. use this specific component, or go into the spec sheet and divide this by this to find out a specific parameter.
Anyone who can provide any help or direction is an absolute lifesaver.
The code I have found to set my PWM frequency is:
#include <PWM.h>
//use pin 11 on the Mega instead, otherwise there is a frequency cap at 31 Hz
int led = 9; // the pin that the LED is attached to
int brightness = 127.5; // how bright the LED is
int32_t frequency = 113000; //frequency (in Hz)
void setup()
{
//initialize all timers except for 0, to save time keeping functions
InitTimersSafe();
//sets the frequency for the specified pin
bool success = SetPinFrequencySafe(led, frequency);
//if the pin frequency was set successfully, turn pin 13 on
if(success) {
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
}
}
void loop()
{
//use this functions instead of analogWrite on 'initialized' pins
pwmWrite(led, brightness);
}