yaboPP电子
项目

环境光照监测:使用三条转子,调节灯亮度

2015年9月01日经过罗伯特·凯

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

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

推荐水平

中间

本系列中的前一篇文章

所需的硬件/软件

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

项目概述

在这个项目中,我们将完成基于光学传感器的自动调光器。在前一篇文章中,我们探索了零交叉检测器电路,而在这篇文章中,我们将使用零交叉检测信号来同步由EFM8产生的可控硅控制脉冲。通过固件根据GA1A2S100光学传感器检测到的当前环境光电平来调整零交叉信号和可控硅控制脉冲上升沿之间的延迟,这个延迟反过来决定有多少平均功率被传送到灯上。可控硅不是一个特别常见的元件在低压混合信号设计中,所以首先我们将回顾这个器件的性质。笔记:该调光器实现适用于白炽灯泡 - 标准荧光灯泡与该电路不兼容。

三端双罪者

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

此外,即使在移除触发电流之后,该器件也继续从阳极到阴极的电流,如下:(1)将超过晶闸管阈值电压的电压脉冲施加到栅极;(2)所得到的栅极 - 阴极电流触发装置,使得其从阳极传导到阴极;(3)如果该阳极到阴极电流超过器件指定的“锁存电流”,它将在栅极电压(并且因此栅极电流)返回到零之后继续进行;(4)当阳极到阴极电流下降到设备指定的“保持电流”下降时,传导停止。

三折基本上是双向晶闸管。它根据相同的原理操作,但可以通过MT2流到MT1或MT1至MT2的电流进行操作:

该项目中使用的配置具有连接到地的MT1,触发电流从门到MT1流过。

上述讨论表明了为什么三端双向可控硅是这样的一种方便的部件,用于控制流过负载的交流电(在这种情况下,白炽灯)。短触发脉冲直接由GPIO引脚驱动,在交流波形的前半周期期间在某个点上打开三条件。在负载电流小于保持电流之前,三端双向可锁离子继续进行。然后,另一个触发脉冲相对于零交叉作为第一脉冲相同的延迟,使三条转向基辅在下半周期内进行。(如果您在文章中稍后稍后的迹象,请参阅文章中的范围迹线。加载。使用微控制器,可以高精度地控制此延迟。顺便说一下,如果您想知道为什么这种开关的切换行为不会导致不希望的闪烁,请记住,白炽灯泡产生灯,因为灯丝是热 - 温度不会像电流一样快速变化,因此灯有效地“平滑”流过灯丝的电流的相对高频变化。

本项目使用的可控硅是意法半导体的零件号Z00607。yabosports官网该设备适用于低功耗应用。其栅电流可低至5毫安触发,锁存电流和保持电流分别为10毫安和5毫安。

电路

以下是该项目的灯控制部分的原理图:

R.1为限流电阻;它的尺寸确保GPIO引脚源大大超过最小栅极触发电流(即5毫安)。测量栅极到MT1的电压降为360 mV,因此(3.3 V - 0.36 V)/330 Ω = 8.9 mA。

这是面包板实现:

有两个灯泡而不是一个灯泡,因为该项目的特定AC变压器限制在500 mA输出电流,并且第二灯泡提供的附加电阻确保电流远低于该最大值。这块黑色塑料可防止灯照射光学传感器,从而扭曲环境光测量。

固件

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

代码

//将ADC转换结果转换为电流测量值//测试电路中电阻的实际值为4.6 kOhms ADC measurement = (RawADCResult*ADCFactor)/4.6;if(ADCMeasurement >= optssens_current_max) TriacGateEnableorDisable = TRIAC_GATE_DISABLE; / /接收到的数据//灯关闭else if(ADCMeasurement <= optssens_current_min) {TriacGateEnableorDisable = TRIAC_GATE_ENABLE;TriacGateDelay = TRIAC_GATE_DELAY_MIN;//最大亮度}else {TriacGateEnableorDisable = TRIAC_GATE_ENABLE;//触发脉冲延迟基于当前照明度与最大照明度的比值TriacGateDelay = TRIAC_GATE_DELAY_MAX * (float)ADCMeasurement/ optssens_current_max;}

Light.zip.

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

请记住,即使当环境光线水平小于或等于最小值时,触发脉冲延迟也不会被设置为零。如果在交流波形交叉0 V之后立即产生脉冲,则负载电流可能不会超过三端双向可控硅锁定电流,而栅极触发电流流动。保持最小触发脉冲延迟可确保适当的三端双向可控硅锁定行为。

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

代码

// ----------------------------------------------------------------------------------- // INT0_ISR //----------------------------------------------------------------------------- SI_INTERRUPT (INT0_ISR, INT0_IRQn) { //the interrupt flag is cleared by hardware FallingEdgeCount++; SFRPAGE = TIMER2_PAGE; TMR2 = 0xFFFF - TriacGateDelay; //Timer2 will overflow at the end of the delay period TMR2CN0_TR2 = TriacGateEnableorDisable; //start Timer2, if lamp illumination is needed } //----------------------------------------------------------------------------- // INT1_ISR //----------------------------------------------------------------------------- SI_INTERRUPT (INT1_ISR, INT1_IRQn) { //the interrupt flag is cleared by hardware RisingEdgeCount++; SFRPAGE = TIMER2_PAGE; TMR2 = 0xFFFF - TriacGateDelay; //Timer2 will overflow at the end of the delay period TMR2CN0_TR2 = TriacGateEnableorDisable; //start Timer2, if lamp illumination is needed } //----------------------------------------------------------------------------- // TIMER2_ISR //----------------------------------------------------------------------------- // // TIMER2 ISR Content goes here. Remember to clear flag bits: // TMR2CN0::TF2H (Timer # High Byte Overflow Flag) // TMR2CN0::TF2L (Timer # Low Byte Overflow Flag) //----------------------------------------------------------------------------- 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中生成触发脉冲。

固件的整体功能如下:每31毫秒大约发生一次ADC转换(即每秒32个样本)。每个转换结果被解释为来自光学传感器的输出电流量,然后通过上面所示的IF-ELS的例程处理该电流测量以确定是否需要触发脉冲,如果是,则延迟应该是什么延迟。触发延迟以相同的速率调整(每秒32次);这为演示目的提供了一个很好的顺利响应,但当然,灯光亮度的这种快速和过性的变化将在真实的应用中不可取。LCD每秒更新一次,使用最近的光学传感器输出电流值,因此您可以看出测量的照度如何影响灯的亮度。

在以下两个图像中,蓝色迹线是触发脉冲,黄色迹线是三端双向可控硅的电压。在触发脉冲之前,全交流电压存在于三端双向可控硅 - 它尚未进行,因此它有效地是开路电路。在触发脉冲直到半周期结束之后,TRIAC是导通的,因此仅具有小的导通状态电压降(约1V)。

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

现在可控硅正在进行大部分的交流半周期,这意味着低环境光水平导致固件增加了灯的亮度。

视频

该视频显示灯亮度与变化照度反应,因为LED手电筒近距离靠近光学传感器。

视频

这个视频演示了触发器脉冲的位置(相对于交流零叉)如何随着LED手电筒的方向更接近或远离光学传感器而变化。

你自己试试这个项目吧!得到bom。