如何用单片机检测电源电压?
使用微控制器检测主电源的最简单方法是使用光耦合器(光隔离器)。它允许您在两个电流隔离的电路之间发送信息。初级侧为高电压:230 AC,次级侧为低电压,例如 3.3 或 5 V。通过电阻器将 VAC 连接至输入,电阻器的总阻值约为 230 AC,200 – 300 kΩ 和至少 0.5 W。为了保护光耦合器 LED,最好放置一个二极管(如下图所示)。输出通常有集电极和发射极(就像经典的双极晶体管)。通过 4.7 – 10 kΩ 电阻器将 VCC 连接到集电极,并将发射极直接连接到 GND。就这样了!您可以使用 Arduino、ESP8266、ESP32 或任何其他微控制器安全地检测高交流电压。
下面的示意图说明了我上面写的内容。真的就是这么简单!
高电压检查电路
对于那些觉得这个简短的答案还不够的人,让我们深入探讨一下!
市电危害健康和生命!每当您使用它进行操作时,请断开电源。在重新插入电源之前,请三倍确保您、您的设备以及周围的每个人都安全。
让我们按照示意图一步步进行
输入电路
示波器上的电源电压 (120 / 230 VAC) 如下所示:
国家电压是 230 AC / 50 Hz。例如,在美国,电压为 120 AC / 60 Hz。但除此之外,图表将是相同的。
为了安全地将如此高的电压连接到光耦合器,必须限制电流。这就是原理图中有一个 300 kΩ 电阻的原因。如果您居住在美国,则可以使用较低的电阻,例如 200 kΩ。
重要的!
由于电压很高,因此必须考虑电阻器发出的最大功率。您可以使用以下等式来计算:
就我而言,它是 0.35 W。最好有一些安全缓冲。这就是为什么在第一段中我写了 0.5 W。但仍然要注意这个电阻会很热。不要将其封闭在一个小的密封外壳中,确保一定的空气流通。
我强烈推荐给您的一个好主意是串联使用两个甚至三个电阻。通过这种方式,功率被分配到多个组件而不是一个组件上。其次,更重要的是电阻器可以承受的最大电压。对于小情况会很容易超出。
升级后的原理图如下所示:
输出电路
光耦合器的次级侧与主电源电隔离。您可以在那里安全地连接微控制器的 GPIO。
您必须意识到输出上没有“良好”的直流电压。相反,有一个方波。
在上图中,我显示了打开电源的时刻。黄色图表是 光耦合器的 输入,蓝色图表是其输出 。正如您所看到的,当输入电压为零时,输出为高电平。在本例中为 5V。
当交流电开始流动时,电压从 +325 V 变为 -325 V(在我的例子中)。如果电压超过约+1.3V(光耦合器中LED的正向电压),LED就会亮起。您可以将其视为开始向 NPN 晶体管的基极施加电压。当使用足够的电压时,它起到短路的作用。输出下降至 GND 电平。类似地,当基极不施加电压时,晶体管工作在截止区,表现为开路。输出被上拉至 VCC。
这样的输出有什么优点和缺点?
这取决于您如何看待它以及您想如何使用它。如果您只想检查电流是否流动,则不能只时不时地检查引脚状态。您很可能会遇到“中间”情况,就好像没有市电一样。当然,软件中有很多方法可以解决。下面我将提出一种解决方案。我在之前的一个项目中使用过它,效果非常好。
另一方面,如果您关心“零交叉检测”,这种输出具有显着的优势。我将在另一篇文章中更详细地解释这一点。这里我就简单介绍一下。
过零检测
过零检测 (ZCD) 是一种流行的频率测量方法。例如,您可以使用它代替晶体振荡器来测量时间。从长远来看,频率非常稳定。正如您在上面看到的,频率正好是 50 Hz。
使用它的另一个重要原因是 EMC(电磁兼容性)。当您想要经常打开/关闭高负载(例如电加热器)时,这一点至关重要。您可以在Wikipedia上找到有关 EMC 的更多信息 。
我想要稳定平滑的直流输出!
如果您不关心过零检测,并且希望随时检查 GPIO 状态并确保主电源是否存在 – 以下原理图升级版适合您。
一如既往,在工程领域,每一个问题都有不止一种解决方案。我将向您介绍最简单的一种。我将此线程分为两个阶段:首先,我们将切断输入电压的负部分,然后将其平滑。
第一步:剪掉正弦波的负部分
更准确地说,我们不会完全切除负片部分。我们将把它转化为积极的一面。第一个电路的主要缺点是我们仅使用正弦波形的一半——仅正一半。当电压低于零时,光耦合器 LED 不亮。幸运的是,有一些简单的方法可以解决这个问题。
让我们在该方案中添加四个二极管(所谓的格雷茨桥)。这是一个两个半周期整流器。
在这种情况下,我们不再有负电压,即不再需要保护二极管(如第一个示例)。
通过这个小小的升级,我们改变了这一点:
进入这个:
另一种解决方案是使用双向光耦合器。它有两个相反方向导通的 LED。因此,次级侧的效果将与使用整流器非常相似。
这次输出信号如下所示:
第二步:平滑输出
让我们使图表更平滑。为此,我们将在发射极和 GND 之间添加一个电容器。它的容量并不重要。大多数情况下,2 到 10 uF 之间的值是正确的。
以下是原理图的最终版本。两者都会给您带来几乎相同的结果,因此请选择您更喜欢哪一个。
在示波器上,输出看起来并不完全平坦,但波动小于 0.5 V。对于每个微控制器,电压都会足够平滑。
软件
在最简单的电路版本(我一开始展示的那个)中,不时检查 GPIO 状态是一个坏主意。当状态显示“无电压”时,您很有可能会检查它。因此,更好的解决方案是使用外部中断。如今,所有微控制器都能够做到这一点。我不想详细讨论实现细节,因为这取决于您使用的 uC。您必须查看那里的数据表,以确保所有内容都会得到解释。
在我们使用整流器的版本中,事情要简单得多。您可以随时检查引脚状态并了解 VAC 是否存在。
概括
在本文中,您学习了如何使用简单的电路安全地检测主电源。正如您所看到的,您不需要任何复杂且昂贵的芯片或集成电路来了解您需要博士学位的内容。在电子领域 最普通的光耦合器、几个电阻器、一个二极管和一个电容器就可以做到这一点。
我只向您提供了一种可能的方法。与往常一样,这个问题还有许多其他解决方案。它们更好,更差,更简单,更困难,但我专注于我使用和配合的那个,我可以问心无愧地推荐给你。我希望它对你有用。
利用单片机内部基准电压测量电源电压
最近做一个蓝牙温度记录仪的项目,MCU采用意法半导体(ST)的STM8L151,纽扣电池供电,需要检测纽扣电池电压,低电量的时候报警。由于纽扣电池的电压在不断的改变, 在做设计验证的时候,使用一颗LDO降压后作为ADC基准源,电路图如下:
图中(1)为LDO降压电路,作为ADC的外部电压基准源,如图(3),纽扣电池电压变化的时候VREF_1.8V保持不变。
图中(2)部分为纽扣电池电压的分压电路,分压后作为ADC的采样输入,如图(4)
采用上图电路,可以实现对纽扣电池电压的检测,但是既增加了成本,又增加了电路的复杂性。是否可以考虑其他方法呢?答案是肯定的。
在STM8L151芯片的内部,有一个固定的内部参考电压,ST的技术手册里命名为VREFINT
该内部参考电压的值即使芯片电源电压在工作范围内波动时,它基本维持不变即1.224V,而且该电压信号可以通过指令控制直接连接到ADC 的某个AD 通道而求得该电压对应的AD 值。
这里需要说明一下,该内部参考电压VREFINT并非ADC 的参考电压,ADC 的参考电压
依然是VDD。即使VDD 有所波动,这个VREFINT电压恒定不变,对于ADC 电路而言,它只是个测试点。这里经常有人犯迷糊,把VREFINT内部基准参考电压跟ADC 模块的参考电压混为一谈。
此时在程序上把VREFINT作为ADC的采样电压,纽扣电池电压作为ADC的外部基准电压,那么可以得到一下公式:
只要读出ADC的值,就可以计算出纽扣电池的电压了,电路图如下:
通过和上图对比,可以看此图更加精简。
相关问答
单片机 AD检测,电压不共地单片机自带AD检测,但是 检测电压 和单...[最佳回答]1.最简单共地测量(有些场合,可以共地的);2.若不想共地既然隔离,必须用数字通信方式传递模拟量,必定目标板有将电压信号转换为数字信号装置;目标板增...
用 单片机检测 电源 电压 是否大于3.6v其程序如何写?假设单片机电源电压3.3V,这就是基准电压(一般单片机是这样),ADC是10位的,满量程设为VM。由于没法自己测量自己的电压,需要一个参考电压,比如接一个2V稳压...
单片机电压 ?1、单片机1:高电平:2V--5V;2、单片机0:低电平:0V--0.8V;3、中间的一段电压是不可以出现的;但可以跳过。4、如果单片机供电电压是DC5v,那么一般高电平...1...
单片机 有几个 电压 ?单片机1:高电平:2V--5V;单片机0:低电平:0V--0.8V;中间的一段电压是不可以出现的;但可以跳过。如果单片机供电电压是DC5v,那么一般高电平是(5-4.5V),低电平...
stc 单片机 测 电压 原理?加上一个A/D,不过一般只有5V的量程,要想扩大量程,就要用电阻分压,然后根据倍数来计算,不过,倍数越大,精度就越小,毕竟A/D的位数有限!加上一个A/D,不过一般只...
STC 单片机 工作 电压 是5V,电流是多少? 怎么用3--4节干电池(5...怎么用3--4节干电池(5号或七号电池)给STC单片机供电?举报相机电池ST5人讨论1.0w次围观关注问题写回答讨论回答(5)qvhe123STC89C52RC的工作电压范围....
通过52 单片机 如何对直流 电压 电流进行测量?52单片机只是内核的通称,你要可以选型一款带AD数模转换的单片机型号,比如国产的STC系列;网上可以搜到一堆程序(搜51单片机AD程序);测量电压先要看电压的...
STM32 单片机 怎么 检测 0-24 电压 和电流 - 懂得32的采集范围是0-3.3v你需0-24v电压衰减电路:电压跟随器高精度用运放,中精度用T型网络衰减电路,要求低用电阻分压的。电压缩小到0-3.3v范围内采集,...
单片机 复位 电压 是多少?上电复位的典型门限电压是1.4V和1.3V,即在单片机上电时,其电源电压要低于此值,才能使单片机上电复位。上电复位时,电阻给电容充电,电容的电压缓慢上升直到vcc...
求 单片机 电路采集380V交流电路电流信息的办法?采集端用电流互感器,然后互感器末端的输出信号通过一些限流措施加到ADC0809(模拟到数字)转换芯片的某个通道上,最后芯片的数据输出端接到单片机的I/O上就可以...