Driving Mosfet using PWM from arduino so as to achieve Linear region of operation

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
User19617
Level 1
Level 1
First question asked
Dear All,

I require some help regarding designing a driver for driving an LED fixture of 72 V DC rating and 300 mA

Is it possible to drive the Mosfet so that upon varying PWM signal from arduino the mosfet Dims and brightens the fixture accordingly.

Any help regarding this will be highly appreciated.

Note:I am using IRF540 MOSFET as of now but the transition is not linear but abruptly switches on after particular voltage given to Gate of MOSFET.

Is there any other MOSFET that can help me in this case.



Thanking You

Ranjith Shetty
ranjithshetty104@gmail.com
0 Likes
1 Solution
Abhilash_P
Moderator
Moderator
Moderator
50 likes received 500 replies posted 250 solutions authored
Hi,

For circuit connections using IR2110 Mosfet driver IC, please refer the following link

https://components101.com/ics/ir2110-mosfet-driver-pinout-datasheet

Can you please share your application along with relevant pinout diagram, so that it would be easy to write a code for it.

Example scenario:
Lets say you have a single MOSFET connected in series with the LED fixture which is used to vary the brightens of the LED.
The brightens can be varied by changing the duty cycle of the PWM signal. For this case study I have considered Time period of the PWM waveform to be 1second.

void setup() {
pinMode(3,Output);
} // Using digital Pin 3 of the Arduino to control the MOSFET. Please refer to the pinout diagram of Atemga if you need to use other digital output pins to control the MOSFET.
void loop() {
difitalWrite(3, HIGH);
delay(600);
digitalWrite(3,LOW);
delay(400);
difitalWrite(3, HIGH);
delay(500);
digitalWrite(3,LOW);
delay(500);
difitalWrite(3, HIGH);
delay(400);
digitalWrite(3,LOW);
delay(600);
difitalWrite(3, HIGH);
delay(300);
digitalWrite(3,LOW);
delay(700);
difitalWrite(3, HIGH);
delay(200);
digitalWrite(3,LOW);
delay(800);
difitalWrite(3, HIGH);
delay(300);
digitalWrite(3,LOW);
delay(700);
difitalWrite(3, HIGH);
delay(400);
digitalWrite(3,LOW);
delay(600);
difitalWrite(3, HIGH);
delay(500);
digitalWrite(3,LOW);
delay(500);
difitalWrite(3, HIGH);
delay(600);
digitalWrite(3,LOW);
delay(400);
difitalWrite(3, HIGH);
delay(700);
digitalWrite(3,LOW);
delay(300);
}


Regards,
Abhilash P

View solution in original post

0 Likes
5 Replies
User16691
Level 1
Level 1
First question asked First reply posted First solution authored
Hi Ranjith
Are tou triggering the mosfet with 5 Vdc?
0 Likes
Abhilash_P
Moderator
Moderator
Moderator
50 likes received 500 replies posted 250 solutions authored
Hi,

As far as driving the gate of the MOSFET using Arduino is concerned, a current amplifier circuit should be used. Since the output of the Arduino is not sufficient to drive the FET.
Recommended solution is to use IR2110 IC.

Regards,
Abhilash P
0 Likes
Abhilash_P
Moderator
Moderator
Moderator
50 likes received 500 replies posted 250 solutions authored
Hi,

Adding to the previous response, yes it is possible to dim and brighten the fixture accordingly by varying the PWM signal from the Arduino.

Regards,
Abhilash P
0 Likes
User21417
Level 1
Level 1
I am also working on IRF540, would you like to share the circuit diagram & code, it will be of great help. Thanks
0 Likes
Abhilash_P
Moderator
Moderator
Moderator
50 likes received 500 replies posted 250 solutions authored
Hi,

For circuit connections using IR2110 Mosfet driver IC, please refer the following link

https://components101.com/ics/ir2110-mosfet-driver-pinout-datasheet

Can you please share your application along with relevant pinout diagram, so that it would be easy to write a code for it.

Example scenario:
Lets say you have a single MOSFET connected in series with the LED fixture which is used to vary the brightens of the LED.
The brightens can be varied by changing the duty cycle of the PWM signal. For this case study I have considered Time period of the PWM waveform to be 1second.

void setup() {
pinMode(3,Output);
} // Using digital Pin 3 of the Arduino to control the MOSFET. Please refer to the pinout diagram of Atemga if you need to use other digital output pins to control the MOSFET.
void loop() {
difitalWrite(3, HIGH);
delay(600);
digitalWrite(3,LOW);
delay(400);
difitalWrite(3, HIGH);
delay(500);
digitalWrite(3,LOW);
delay(500);
difitalWrite(3, HIGH);
delay(400);
digitalWrite(3,LOW);
delay(600);
difitalWrite(3, HIGH);
delay(300);
digitalWrite(3,LOW);
delay(700);
difitalWrite(3, HIGH);
delay(200);
digitalWrite(3,LOW);
delay(800);
difitalWrite(3, HIGH);
delay(300);
digitalWrite(3,LOW);
delay(700);
difitalWrite(3, HIGH);
delay(400);
digitalWrite(3,LOW);
delay(600);
difitalWrite(3, HIGH);
delay(500);
digitalWrite(3,LOW);
delay(500);
difitalWrite(3, HIGH);
delay(600);
digitalWrite(3,LOW);
delay(400);
difitalWrite(3, HIGH);
delay(700);
digitalWrite(3,LOW);
delay(300);
}


Regards,
Abhilash P
0 Likes