0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Arduino生成的PWM来控制交流风扇的速度

科技观察员 来源:circuitdigest 作者:Debasis Parida 2022-08-18 16:26 次阅读

警告!! 本项目中讨论的威廉希尔官方网站 图仅用于教育目的。请注意,使用 220V 交流电源电压需要采取极端的预防措施,并应遵循安全程序。威廉希尔官方网站 运行时,请勿触摸任何元件或电线。

就像我们在许多基于 Arduino 的家庭自动化项目中所做的那样,使用开关或使用某种控制机制很容易打开或关闭任何家用电器。但是有很多应用需要我们部分控制交流电源,例如控制风扇的速度或灯的强度。在这种情况下,使用了PWM 技术,所以在这里我们将学习如何使用 Arduino 生成的 PWM 来控制 Arduino 的交流风扇速度。

在这个项目中,我们将演示使用 TRIAC 的 Arduino 交流风扇速度控制。这里使用交流信号的相位控制方法来控制交流风扇的速度,使用 Arduino 生成的 PWM 信号。在之前的教程中,我们使用 PWM 控制直流风扇的速度。

所需组件

Arduino UNO

4N25(过零检测器)

10k 电位器

MOC3021 0pto耦合器

(0-9)V、500 mA 降压变压器

BT136 可控硅

230 VAC 轴流交流风扇

连接线

电阻器

使用 Arduino 进行交流风扇控制

工作可以分为四个不同的部分。它们如下

1. 过零检测器

2. 相位角控制威廉希尔官方网站

3. 控制风扇转速量的电位器

4. PWM 信号发生威廉希尔官方网站

1. 过零检测器

我们家中的交流电源是 220v AC RMS,50 HZ。该交流信号本质上是交替的,并且会周期性地改变其极性。在每个周期的前半部分,它沿一个方向流动,达到峰值电压,然后下降到零。然后在下一个半周期,它以交替方向(负)流动到峰值电压,然后再次变为零。为了控制 AC Fan 的速度,需要对两个半周期的峰值电压进行斩波或控制。为此,我们必须检测要控制/斩波信号的零点。电压曲线上电压改变方向的这一点称为过零电压。

下图所示的威廉希尔官方网站 是用于获取过零点的过零检测器威廉希尔官方网站 。首先,使用降压变压器将 220V AC 电压降为 9V AC ,然后在其引脚 1 和 2 处馈入 4N25 光耦合器。4N25 光耦合器具有内置 LED,引脚 1 为阳极,引脚 2 为阴极。因此,根据下面的威廉希尔官方网站 ,当交流波接近零交叉点时,4N25 的内置 LED 将关闭,因此,4N25 的输出晶体管也将关闭,输出脉冲引脚将被拉到5V。同样,当信号逐渐增加到峰值时点,然后 LED 打开,晶体管也将打开,接地引脚连接到输出引脚,这使得该引脚为 0V。使用此脉冲,可以使用 Arduino 检测过零点。

poYBAGL992OAD-IbAAFWQAhI8Ew916.png

2. 相位角控制威廉希尔官方网站

检测到过零点后,现在我们必须控制电源开启和关闭的时间量。该PWM 信号将决定输出到交流电机的电压量,进而控制电机的速度。这里使用了BT136 TRIAC,它控制交流电压,因为它是用于控制交流电压信号的电力电子开关。

TRIAC是一种三端交流开关,可由其栅极端的低能量信号触发。在 SCR 中,它仅在一个方向上导通,但在 TRIAC 的情况下,可以在两个方向上控制功率。要了解有关TRIAC和SCR的更多信息,请阅读我们之前的文章。

pYYBAGL991-ALD9XAAEVyrHfvmk393.png

如上图所示,通过向 TRIAC 施加一个小的栅极脉冲信号以 90 度的触发角触发 TRIAC。时间“t1”是根据调光要求给出的延迟时间。例如,在这种情况下,触发角为 90%,因此功率输出也将减半,因此灯也会以一半的强度发光。

我们知道这里交流信号的频率是 50 Hz。所以时间段将是 1/f,即 20ms。对于半个周期,这将是 10 毫秒或 10,000 微秒。因此,为了控制交流灯的功率,“t1”的范围可以在 0-10000 微秒之间变化。

光耦:

光耦也称为光隔离器。它用于保持两个威廉希尔官方网站 (如直流和交流信号)之间的隔离。基本上,它由发射红外光的 LED 和检测红外光的光电传感器组成。这里使用 MOC3021 光耦合器从微控制器信号(直流信号)控制交流风扇。

TRIAC和光耦连接图:

poYBAGL991uAaWpVAAFJb6ciWXY101.png

3. 控制风扇转速的电位器

pYYBAGL991eAaMk2AAHzK_ndkA8882.png

这里使用电位器来改变交流风扇的速度。我们知道电位器是一个三端器件,它充当分压器并提供可变电压输出。这个可变的模拟输出电压在 Arduino 模拟输入端给出,用于设置交流风扇的速度值。

4. PWM信号发生单元

在最后一步中,根据速度要求向 TRIAC 提供PWM 脉冲,从而改变 AC 信号的 ON/OFF 时序并提供可变输出来控制风扇速度。在这里,Arduino 用于生成 PWM 脉冲,该脉冲从电位器获取输入,并将 PWM 信号输出到 TRIAC 和光耦合器威廉希尔官方网站 ,进一步以所需的速度驱动交流风扇。

威廉希尔官方网站 原理

这个基于 Arduino 的 230v 风扇速度控制威廉希尔官方网站 的威廉希尔官方网站 图如下所示:

poYBAGL991KABdLiAALbZn_AhJc785.png

注意:我在面包板上展示了完整的威廉希尔官方网站 ,只是为了便于理解。您不应该直接在面包板上使用 220V 交流电源,我使用虚线板进行连接,如下图所示

poYBAGL990-AMQQbAAXgfxgwTAo465.png

为 Arduino 编程以控制交流风扇速度

硬件连接后,我们需要为 Arduino 编写代码,它会产生一个PWM 信号,使用电位器输入来控制 AC 信号的 ON/OFF 时序。我们以前在许多项目中使用过 PWM 技术。

这个Arduino AC风扇速度控制项目的完整代码在这个项目的底部给出。下面给出代码的逐步解释。

第一步,声明所有需要的变量,这些变量将在整个代码中使用。这里 BT136 TRIAC 连接到 Arduino 的引脚 6。并且声明了变量speed_val来存储速度步长的值。

int TRIAC = 6;
int speed_val =0;

接下来,在setup函数中,将TRIAC引脚声明为输出,因为 PWM 输出将通过该引脚生成。然后,配置一个中断来检测过零。这里我们使用了一个名为attachInterrupt的函数,它将 Arduino 的数字引脚 3 配置为外部中断,并在其引脚检测到任何中断时调用名为zero_crossing的函数。

无效设置()
{
  pinMode(灯,输出);
  attachInterrupt(digitalPinToInterrupt(3), zero_crossing, CHANGE);
}

在无限循环中,从连接在 A0 的电位器读取模拟值,并将其映射到 (10-49) 的值范围。

要找出这个范围,我们必须做一个小计算。早些时候有人说,每半个周期相当于 10,000 微秒。所以这里的调光将被控制在 50 步,这是一个任意值,可以改变。这里的最小步数取为 10,而不是零,因为 0-9 步给出的功率输出大致相同,最大步数取为 49,因为实际上不建议采用上限(在这种情况下为 50)。

那么每一步的时间可以计算为 10000/50= 200 微秒。这将在代码的下一部分中使用。

无效循环()
{
    int pot=analogRead(A0);
    int data1 = map(pot, 0, 1023,10,49);
    speed_val=data1;
}

最后一步,配置中断驱动函数zero_crossing。在这里,可以通过将单个步进时间乘以 no 来计算调光时间。的步骤。然后在此延迟时间之后,可以使用 10 微秒的小高脉冲触发 TRIAC,这足以打开 TRIAC。

无效过零()
{
  int 斩波时间 = (200*speed_val);
  延迟微秒(chop_time);  
  数字写入(TRIAC,高);
  延迟微秒(10);
  数字写入(TRIAC,低);
}
下面给出了使用 Arduino 和 PWM进行交流风扇控制的完整代码

int TRIAC = 6;

int speed_val=0;

无效设置()

{

pinMode(TRIAC,输出);

attachInterrupt(digitalPinToInterrupt(3), zero_crossing, CHANGE);

}

void zero_crossing()

{

int Chop_time = (200*speed_val);

延迟微秒(chop_time);

数字写入(TRIAC,高);

延迟微秒(10);

数字写入(TRIAC,低);

}

无效循环()

{

int pot=analogRead(A0);

int data1 = map(pot, 0, 1023,10,40);

speed_val=data1;

}

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

    关注

    114

    文章

    5186

    浏览量

    213878
  • TRIAC
    +关注

    关注

    0

    文章

    25

    浏览量

    23842
  • 风扇控制
    +关注

    关注

    0

    文章

    8

    浏览量

    6852
  • Arduino
    +关注

    关注

    188

    文章

    6469

    浏览量

    187016
收藏 人收藏

    评论

    相关推荐

    如何使用PWM技术控制LED的亮度或直流风扇速度

    在本教程中,我们将了解STM32中的PWM(脉宽调制),以及如何使用PWM技术控制LED的亮度或直流风扇速度
    的头像 发表于 11-07 17:00 1.2w次阅读
    如何使用<b class='flag-5'>PWM</b>技术<b class='flag-5'>控制</b>LED的亮度或直<b class='flag-5'>流风扇</b>的<b class='flag-5'>速度</b>

    温控直流风扇威廉希尔官方网站 图分享

    温控直流风扇是一种结合了温度控制技术的直流风扇。它通常内置有温度传感器和控制威廉希尔官方网站 ,能够根据设备或环境的温度变化自动调整风扇的转速,从而实现对
    的头像 发表于 02-22 17:25 7608次阅读
    温控直<b class='flag-5'>流风扇</b>威廉希尔官方网站
图分享

    Arduino应用之PWM控制直流电机风扇

    Arduino应用——PWM控制直流电机风扇PWM原理实验器件功能描述如何改变文本的样式插入链接与图片实现代码
    发表于 07-05 07:29

    基于DSP的小型直流风扇自动化测试系统

    针对目前我国小型直流风扇产品出厂检测设备落后的现状,采用现代微处理器检测与控制技术开发了基于DSP控制器TMS320F2812A的新型直流风扇自动化测试系统。该系统实现了直
    发表于 07-16 15:20 25次下载

    采用FanSense TM技术的PWM风扇速度控制

    TC642 是一款开关模式风扇速度控制器,用于控制直流无刷风扇速度。器件采用脉宽调制技术(
    发表于 11-20 18:26 49次下载

    抗电磁干扰的PWM风扇控制器原理及应用

    抗电磁干扰的PWM风扇控制器原理及应用 微芯科技(Microchip )公司提供一种工作于PWM模式的风扇制冷
    发表于 03-12 15:42 4123次阅读
    抗电磁干扰的<b class='flag-5'>PWM</b><b class='flag-5'>风扇</b><b class='flag-5'>控制</b>器原理及应用

    pwm风扇,使用PWM控制流风扇

    最近几年来,业界对于利用集成威廉希尔官方网站 控制用于各种电子设备的冷却风扇速度的兴趣一直在增长。电子产品,尤其消费电子产品的尺寸,每天都在显著减小,但是由于在芯片上运行的应用程序日趋复杂,芯片产生的热量却在增加。有两种方式可以去除所产生的热
    发表于 10-28 17:40 9.6w次阅读
    <b class='flag-5'>pwm</b><b class='flag-5'>风扇</b>,使用<b class='flag-5'>PWM</b><b class='flag-5'>控制</b>直<b class='flag-5'>流风扇</b>

    风扇速度控制系统中的噪音和如何利用PWM抑制它的方法

    风扇速度控制可延长风扇的使用寿命,并减少空气流动造成的噪音,同时平均风扇的电流。实现风扇
    发表于 04-27 15:11 20次下载
    <b class='flag-5'>风扇</b><b class='flag-5'>速度</b><b class='flag-5'>控制</b>系统中的噪音和如何利用<b class='flag-5'>PWM</b>抑制它的方法

    流风扇交流风扇的基本组成结构?

    散热风扇从电源类型分可分为直流风扇交流风扇两大类,然而从物理组成来看,直流风扇交流风扇有着
    发表于 05-21 16:17 1463次阅读

    抑制PWM风扇速度控制系统中的噪音

    风扇速度控制可延长风扇的使用寿命,并减少空气流动造成的噪音,同时平均风扇的电流。实现风扇
    发表于 04-02 15:54 29次下载
    抑制<b class='flag-5'>PWM</b><b class='flag-5'>风扇</b><b class='flag-5'>速度</b><b class='flag-5'>控制</b>系统中的噪音

    流风扇CPU风扇应用笔记

    流风扇、CPU风扇应用笔记
    发表于 02-07 15:34 1840次阅读

    基于Arduino制作直流风扇速度控制

    如何使用Arduino和IR Remote制作直流风扇速度控制器。硬件部件:Arduino nano R3×1个直流电机,RE40×1个Ju
    发表于 01-05 16:22 0次下载

    Arduino和红外遥控器制作直流风扇速度控制

    电子发烧友网站提供《用Arduino和红外遥控器制作直流风扇速度控制器.zip》资料免费下载
    发表于 02-02 14:19 4次下载
    用<b class='flag-5'>Arduino</b>和红外遥控器制作直<b class='flag-5'>流风扇</b><b class='flag-5'>速度</b><b class='flag-5'>控制</b>器

    使用Arduino和晶闸管(TRIAC)控制交流风扇速度

    ,因此在本文我们将学习如何使用 Arduino生成PWM控制交流风扇速度。 在本篇文章中
    发表于 03-06 14:57 3次下载
    使用<b class='flag-5'>Arduino</b>和晶闸管(TRIAC)<b class='flag-5'>控制</b><b class='flag-5'>交流风扇</b>的<b class='flag-5'>速度</b>

    风扇控制的进步:考虑风扇速度调节

    无刷直流风扇电机可以使用多种方法进行控制。最简单的方法是使用单个晶体管进行开/关开关。针对风扇速度的可变控制,Maxim提供多种产品,包括用
    的头像 发表于 05-17 11:34 1922次阅读
    <b class='flag-5'>风扇</b><b class='flag-5'>控制</b>的进步:考虑<b class='flag-5'>风扇</b><b class='flag-5'>速度</b>调节