我正在使用光耦合器 ( MOC3021 ) 来感应使用微控制器 ATmega16L 的电器的开/关状态。我该怎么做呢?我的电源规格是 230V,50Hz。如何设计周围电路并选择电阻器等元件值?
2012 年 6 月 13 日 编辑 注意:这是我第一次解决这样的电路。请发送任何有用的反馈。(包括我做错的事情或任何改进)
参考上面的示意图。这个想法是使用这个电路来确定负载是打开还是关闭。光耦合器的输出引脚连接到我正在使用的微控制器的外部中断,该微控制器是 ATmega16L。中断将监视负载的状态。监控后,我可以使用连接到同一个微控制器的继电器(继电器充当控制机制)来切换负载的状态。
现在,我尝试计算 R1、R2 和 Rc 的电阻值。请注意,微控制器的VIL(max) = 0.2xVcc = 660mV 和VIH(min) = 0.6xVcc = 1.98V 和VIH(max) = Vcc+0.5 = 3.8V。
计算 Rc 很容易。当晶体管不导通时,输出为高电平(3.3V)。当晶体管导通时,输出被拉低。所以从微控制器的角度来看,输出高意味着负载被关闭,输出低意味着负载被打开。
查看 SFH621A-3 的数据表,在 IF = 1mA 时使用 34% 的最小 CTR。因此,在 1mA 输入时,输出将为 340uA。那么为了让微控制器检测光耦合器输出的低电压,我可以使用 1Kohm 的电阻值吗?这样光耦合器的输出就会有 340mV 的电压(低于VIL(max))
稍后再详细介绍,这是漫长的一天。
2012 年 6 月 15 日编辑
注意:求解电源线上的电阻(R1 和 R2)。请检查我的计算和任何适当的反馈。
目标:目标是在 10mS 半周期(50Hz 的 20mS 全周期)内使 LED *ON** 保持最大时间。假设 LED 必须在 90% 的时间内开启,这意味着 LED 在该半周期的 90% 的时间内需要至少 1mA 的电流,这意味着 LED 将在 10mS 的半周期内激活 9mS。因此,9mS/10mS = 0.9 * 180(半周期)= 162 度。这表明电流在 9 度和 171 度之间为 1 毫安(从 0 度到 9 度和 171 度到 180 度小于 1 毫安)。没有考虑到 95% 的 ON 时间,因为使用整数是整洁的,5% 至少在这个应用程序中没有任何区别。
Vpeak-peak = 230V x sqrt(2) = 325V。考虑公差。最小公差为 6%。325 x 0.94 ( 100-6 ) x sin(9) = 47.8V
因此,R1 ≤ (47.8V - 1.65V) / 1mA = 46.1 Kohms 选择一个小于 39 Kohms 的 46.1 Kohms 的值(e12 系列)。现在与计算出的电阻值相比,选择了更小的电阻值,这意味着通过二极管的电流将大于 1mA。
计算新电流:((325V x 110%) - 1.25V)/39 Kohms = 9.1mA(太接近二极管的最大电流)。稍后回到这个 [标签 - 1x]
首先计算电阻的额定功率(考虑 39 Kohm)((230 + 10%)^2)/39K = 1.64 瓦(太高)。
回到计算 [Label - 1x] 让我们选择两个 22 Kohm 电阻。它们加起来是 44 Kohm,非常接近 46.1 Kohm(按上面计算)
检查两个电阻组合的额定功率:((230 + 10%)^2) / (2 x 22) Kohm = 1.45W。选择 22 个 Kohm 电阻器,每个电阻器的额定功率为 1W。
现在,毕竟最初的 CTR 是 34%,这意味着 1mA 输入将是 340µA 输出。但是现在由于 2x22 Kohm 电阻器的存在,输出端的电流会稍微大一些。这意味着上拉电阻 Rc 上的电位更高。光耦合器的输出电压降到 500mV 以下会有问题吗?