使用Arduino和N沟道MOSFET制作一个降压转换器威廉希尔官方网站

描述

在这个项目中,我们将使用Arduino和N沟道MOSFET制作一个降压转换器威廉希尔官方网站 ,最大电流容量为6安培。我们将把 12v DC 降压到 0 到 10v DC 之间的任何值。我们可以通过旋转电位器来控制输出电压值。

降压转换器是一种直流到直流转换器,可降低直流电压。它就像一个变压器,只有一个区别;变压器降压交流电压降压转换器降压直流电压。降压转换器的效率低于变压器。

降压转换器的关键元件是MOSFET;n沟道或p沟道和高频方波脉冲发生器(定时器IC或微控制器)。Arduino在这里用作脉冲发生器,555定时器IC也可以用于此目的。在这里,我们演示了这款降压转换器,通过使用电位计控制直流电机速度,还使用万用表测试了电压。

所需组件:

Arduino Uno

红外热镀膜仪540N

电感器(100Uh)

电容器 (100uf)

肖特基二极管

电位计

10k、100 欧姆电阻器

负荷

12v 电池

威廉希尔官方网站 图和连接:

Arduino

如上图所示进行DC-DC降压转换器的连接。

将电感器的一个端子连接到 MOSFET 的源极,另一个端子连接到与 1k 电阻串联的 LED。负载与这种布置并联连接。

在栅极和源极之间连接 10k 电阻。

将电容器并联到负载。

将电池的正极连接到漏极,将负极连接到电容器的负极。

将二极管的p端连接到电池的负极,将n端直接连接到电源。

Arduino的PWM引脚进入MOSFET的栅极

Arduino的GND引脚连接到MOSFET的源头。请将其连接到那里,否则威廉希尔官方网站 将无法正常工作。

将电位计的极端端子分别连接到 Arduino 的 5v 引脚和 GND 引脚。而游标端子为模拟引脚A1。

Arduino

Arduino的功能:

如前所述,Arduino将时钟脉冲发送到MOSFET的基座。这些时钟脉冲的频率约为65 Khz。这导致MOSFET的开关非常快,我们得到一个平均电压值。

场效应管的功能:

MOSFET有两个用途:

用于输出电压的高速切换。

提供高电流,散热少。

电感器功能:
电感器用于控制可能损坏MOSFET的电压尖峰。电感器在 MOSFET 导通时存储能量,并在 MOSFET 关闭时释放这些存储的能量。由于频率非常高,因此所需的电感值非常低(约100uH)。

肖特基二极管的功能:
当MOSFET关闭时,肖特基二极管完成电流环路,从而确保向负载平稳供应电流。除此之外,肖特基二极管的散热非常低,并且在比普通二极管更高的频率下工作良好。

LED功能:
LED亮度表示负载两端的降压电压。当我们旋转电位计时,LED的亮度会发生变化。

电位器功能:

当电位计的游标端子被甩到不同的位置时,它和地之间的电压会发生变化,进而改变 arduino 引脚 A1 接收的模拟值。然后将此新值映射到 0 和 255 之间,然后提供给 Arduino 的引脚 6 用于 PWM。

** 电容器平滑了给定负载的电压。

为什么栅极和源极之间有电阻?

即使是MOSFET栅极处最轻微的噪声也会将其导通,因此为了防止这种情况发生,始终建议在栅极和源极之间连接高值电阻器。

Arduino

代码说明:

完整的Arduino代码,用于生成高频脉冲,在下面的代码部分中给出。

代码简单且不言自明,因此在这里我们只解释了代码的几个部分。

变量 x 被分配从 Arduino 的模拟引脚 A0 接收的模拟值

x= analogRead(A1) ;

变量 w 被分配在 0 到 255 之间的映射值。在这里,Arduino的ADC值使用Arduino中的map函数映射到2到255。

w= map(x,0,1023,0,255) ;

引脚 6 的 PWM 正常频率约为 1kHz。该频率不适用于降压转换器等用途。因此,必须将这种频率提高到非常高的水平。这可以在无效设置中使用一行代码来实现:

TCCR0B = TCCR0B & B11111000 | B00000001;// change frequency of pwm to 65 KHZ approx.

DC-DC降压转换器的工作原理:

当威廉希尔官方网站 导通时,MOSFET 以 65 kHz 的频率打开和关闭。这会导致电感器在 mosfet 导通时存储能量,然后在 mosfet 关断时将存储的能量提供给负载。由于这种情况发生在非常高的频率下,因此根据电位计的游标端子相对于5v端子的位置,我们得到脉冲输出电压的平均值。随着游标端子和接地之间的电压增加,Arduino的pwm引脚6上的映射值也会增加。

Let’s say this mapped value is 200. Then PWM voltage on pin 6 will be at: [ (200*5) / 255 ]= 3.921 volts

由于MOSFET是一个电压相关的器件,因此该PWM电压最终决定了负载两端的电压。

Arduino

int x; // initialize variables

int w;


void setup() {

pinMode(6,OUTPUT);// pwm pin 6 as output pin

pinMode(A1,INPUT);// analog pin as input

TCCR0B = TCCR0B & B11111000 | B00000001;// change frequency of pwm to 65 KHZ approx( explained under code section)

Serial.begin(9600);// begin serial communication

}


void loop() {

x= analogRead(A1);

w= map(x,0,1023,0,255);

analogWrite(6,w); // write mapped value on pin 6

Serial.print("w "); //print mapped value on screen

Serial.println(w);

}

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分