所有关于电路
项目

环境光监视器:使用可控硅来调节灯的亮度

2015年9月1日通过罗伯特Keim

“如何制作环境光监视器”系列的第5部分。

“如何制作环境光监视器”系列的第5部分。

推荐的水平

中间

本系列前面的文章

所需的硬件/软件

描述 数量 Digi-Key p / n
电路试验板 1 377 - 2094
Receptacle-to-plug跳线 6 1471 - 1231
环境光探测器 1 425 - 2778
4.7 kΩ电阻器 1 4.7 kqbk-nd
通用运放 1 LT1638CN8 # PBF-ND
0.1µF电容器 4 399 - 4266
比较器 1 LTC1440CN8 # PBF-ND
1米Ω电阻器 1 1.0 mqbk-nd
10 kΩ电阻 2 10 kqbk-nd
2.2 kΩ电阻器 1 2.2 kqbk-nd
12v AC/AC壁挂式电源 1 T1007-ND
5v AC/DC壁挂式电源 1 1470 - 2771
12v白炽灯泡 2 CM7371-ND
低功率双向可控硅 1 497 - 7699
330Ω电阻 1 330年qbk-nd

项目概述

在这个项目中,我们将完成我们的基于光学传感器的自动调光器。在上一篇文章中,我们探讨了过零检测电路,在本文中,我们beplay体育下载不了将使用过零检测信号来同步由EFM8产生的可控硅控制脉冲。零交叉信号和可控硅控制脉冲上升边缘之间的延迟由固件根据GA1A2S100光学传感器检测到的当前环境光水平进行调整,而这个延迟又决定了发送到灯上的平均功率。可控硅并不是一种特别常见的元件在低压混合信号设计中,首先我们将回顾这种装置的性质。注意:这个调光器是为白炽灯设计的,标准的紧凑型荧光灯不兼容这个电路。

的双向可控硅

双向可控硅是晶闸管的双向扩展,所以我们首先考虑后者的电气特性。晶闸管就像一个二极管,只有当一个很小的触发电流从门端通到阴极端时才会导电。这种行为由晶闸管的电路符号表示:

此外,即使在去掉触发电流后,器件仍能从阳极传导到阴极,如下所示:(1)在栅极上施加一个超过晶闸管阈值电压的电压脉冲;(2)所产生的栅极到阴极电流触发该装置,使其将电流从阳极传导到阴极;(3)如果这个阳极到阴极电流超过设备指定的“闭锁电流”,它将继续导电后,栅电压(因此栅电流)返回零;(4)当阳极到阴极电流低于设备规定的“保持电流”时,导电停止。

可控硅本质上是一个双向晶闸管。它的工作原理相同,但可以使电流从MT2流向MT1或从MT1流向MT2:

本工程采用的配置是MT1接地,触发电流从门极流向MT1。

前面的讨论说明了为什么可控硅是控制通过负载(在这种情况下,白炽灯)的交流电流如此方便的组件。一个由GPIO引脚直接驱动的短触发脉冲,在交流波形的前半周的某个点上打开可控硅。可控硅持续导电,直到负载电流小于保持电流。然后另一个触发脉冲,与第一个脉冲有相同的相对于零交叉的延迟,使可控硅在第二个半周期传导。(如果您在可视化方面有困难,请参阅本文后面的范围跟踪。)零点交叉和触发脉冲之间的延迟决定了可控硅导通期间交流波形的部分,而这又决定了传递给负载的平均功率。用单片机可以高精度地控制这种延迟。顺便说一下,如果你想知道为什么这种开关行为不会导致不受欢迎的闪烁,请记住,白炽灯之所以发光是因为灯丝是热的——温度变化不像电流变化得那么快,因此,灯管有效地“平滑”了流过灯丝的电流的相对高频变化。

该项目中使用的三条转基因离子是STMicroelectronics的零件编号Z00607。该设备适用于低功耗应用。它可以用低至5 mA的栅极电流触发,其锁定和保持电流分别为10 mA和5 mA。

电路

这是这个项目的灯控制部分的示意图:

R1为限流电阻;它的大小是为了确保GPIO引脚源远远超过最小门触发电流(即5毫安)。从栅极到MT1的电压降在360 mV下测量,因此(3.3 V - 0.36 V)/330 ω = 8.9 mA。

这是面包板的实现:

因为这个项目使用的交流变压器的输出电流被限制在500毫安,而第二个灯泡提供的额外电阻可以确保电流保持在这个最大值以下。这片黑色塑料可以防止灯照亮光学传感器,从而扭曲环境光的测量结果。

固件

新固件必须执行两个额外的任务:计算适当的延迟从零交叉触发脉冲基于环境光测量,并输出延迟触发脉冲。第一个任务是用下面的代码完成的:

代码

ADCMeasurement = (RawADCResult*ADCFactor)/4.6;if(ADCMeasurement >= OPTSENS_CURRENT_MAX) TriacGateEnableorDisable = TRIAC_GATE_DISABLE;//灯是关闭的else if(ADCMeasurement <= OPTSENS_CURRENT_MIN) {TriacGateEnableorDisable = TRIAC_GATE_ENABLE;TriacGateDelay = TRIAC_GATE_DELAY_MIN;//最大灯亮度}else {TriacGateEnableorDisable = TRIAC_GATE_ENABLE;//触发脉冲延时基于当前照度与最大照度的比值TriacGateDelay = TRIAC_GATE_DELAY_MAX * (float)ADCMeasurement/OPTSENS_CURRENT_MAX;}

LIGHT.zip

首先我们需要选择一个最大和最小的环境光级:如果光学传感器指示的照度大于或等于最大环境光级,可控硅触发脉冲被禁用,灯被关闭。如果照度小于或等于环境光的最小值,则认为房间是黑暗的,将触发脉冲延迟设置为灯的最大功率。如果照度在这两个值之间,则按比率调整延时——换句话说,当前照度与最大照度之间的比率等于所选延时与最大延时之间的比率。一个成功的现实应用需要仔细选择最大和最小的环境光水平,以确保灯根据使用者的需要变暗,而且,根据对特定照明安排对调光算法的响应的经验观察,微调测量照度和触发延迟之间的数学关系也将是有益的。

请记住,即使环境光水平小于或等于最小值,触发脉冲延迟也不会设置为零。如果在交流波形过0v后立即产生脉冲,当栅极触发电流流动时,负载电流可能不会超过可控硅锁存电流。保持最小触发脉冲延迟可确保正确的可控硅锁存行为。

为了完成第二个任务(生成延迟触发脉冲),我们将Timer2配置为大约500 ns的时钟周期,并启用Timer2中断。

代码

//----------------------------------------------------------------------------- // INT0_ISR  //----------------------------------------------------------------------------- SI_INTERRUPT (INT0_ISR INT0_IRQn){/ /中断标志是通过硬件FallingEdgeCount + +;SFRPAGE = TIMER2_PAGE;TMR2 = 0xFFFF;//Timer2将在延迟时间结束时溢出TMR2CN0_TR2 = TriacGateEnableorDisable;/ /开始Timer2,如果灯照明是必要的  } //----------------------------------------------------------------------------- // INT1_ISR  //----------------------------------------------------------------------------- SI_INTERRUPT (INT1_ISR INT1_IRQn){/ /中断标志是通过硬件RisingEdgeCount + +;SFRPAGE = TIMER2_PAGE;TMR2 = 0xFFFF;//Timer2将在延迟时间结束时溢出TMR2CN0_TR2 = TriacGateEnableorDisable;/ /开始Timer2,如果灯照明是必要的  } //----------------------------------------------------------------------------- // TIMER2_ISR  //----------------------------------------------------------------------------- // // TIMER2 ISR内容就在这里。记得清楚的标志:/ / TMR2CN0: TF2H(计时器#高字节溢出国旗)/ / TMR2CN0:: TF2L(计时器#低字节溢出国旗 ) //----------------------------------------------------------------------------- SI_INTERRUPT (TIMER2_ISR TIMER2_IRQn) {SFRPAGE = TIMER2_PAGE; TMR2CN0_TF2H = 0; //clear the interrupt flag TMR2CN0_TR2 = 0; //stop Timer2 //here we output the trigger pulse (width is approximately 50 us) TRIAC_GATE = HIGH; SFRPAGE = TIMER4_PAGE; TMR4L = 0; while(TMR4L < 100); TRIAC_GATE = LOW; }

AmbientLightMonitor_Part5.zip.

每次外部中断检测上升或下降沿从零交叉检测电路,Timer2装载(65535 -当前选择的触发延迟)。结果是定时器在延迟周期结束时溢出(导致中断),然后在Timer2 ISR中产生触发脉冲。

固件的整体功能如下:ADC转换大约每31毫秒发生一次(即每秒32个样品)。每个转换结果都被解释为来自光学传感器的输出电流量,然后这个电流测量由上面显示的if-else程序处理,以确定是否需要触发脉冲,如果需要,延迟应该是多少。触发延迟以同样的速率调整(每秒32次);这为演示目的提供了良好的平滑响应,但当然,在现实世界的应用程序中,这样快速和过度敏感的灯亮度变化是不希望的。液晶显示器每秒更新一次光学传感器输出电流的最新值,因此您可以看到测量的照度如何影响灯的亮度。

在以下两幅图像中,蓝色痕迹是触发脉冲,黄色痕迹是交叉可控硅电压。在触发脉冲之前,全交流电压存在于三分线上——它还没有导电,因此它实际上是一个开路。在触发脉冲后直到半周期结束,可控硅是导电的,因此只有一个小的导电状态压降(约1v)。

这里可控硅的导电性约为交流半周期的40%,所以这对应于适中的环境光水平(因此也对应适中的灯亮度)。

现在可控硅在AC半周期的大部分时间都是导电的,这意味着低环境光水平导致固件提高了灯的亮度。

视频

这段视频显示,当LED手电筒指向距离光学传感器较近或较远的地方时,灯的亮度会根据不同的照度做出反应。

视频

这个视频演示了触发脉冲的位置(相对于交流零点交叉)如何变化,当一个LED手电筒被引导到离光学传感器更近或更远的地方。

自己尝试一下这个项目吧!BOM。