我们经常看到家用电源的电压波动,这可能会导致家用交流电设备出现故障。今天,我们正在构建一个低成本的高低压保护电路,在高低压情况下,该电路将切断电器的电源。它还将在16x2 LCD上显示警报消息。在本项目中,我们使用PIC单片机读取并比较了输入电压与参考电压,并采取相应的措施。
我们已经在PCB上制作了该电路,并出于相同的目的在PCB上添加了额外的电路,但这一次使用运算放大器LM358(不带微控制器)。出于演示目的,我们选择了低电压限制为150v,高电压限制为200v。在此项目中,我们没有使用任何继电器进行切断,我们只是使用LCD进行了演示,请查看本文结尾处的视频。但是用户可以在该电路上连接一个继电器,并将其与PIC的GPIO连接。
在此处进一步检查我们的其他PCB项目。
所需组件:
- PIC单片机PIC18F2520
- PCB(从EasyEDA订购)
- 集成电路LM358
- 3针端子连接器(可选)
- 16x2 LCD
- BC547晶体管
- 1K电阻
- 2K2电阻
- 30K贴片电阻
- 10k贴片
- 电容器-0.1uf,10uF,1000uF
- 28针IC底座
- 男/女汉堡
- 7805稳压器-7805,7812
- Pickit2程序员
- LED
- 齐纳二极管-5.1v,7.5v,9.2v
- 变压器12-0-12
- 12MHz晶体
- 33pF电容器
- 调压器(风扇调速器)
工作说明:
在此高低压切断电路中,我们已使用PIC微控制器借助变压器,桥式整流器和分压器电路读取了交流电压,并通过16x2 LCD进行了显示。然后,我们将交流电压与预定义的限制进行了比较,并在LCD上相应地显示了警报消息。例如,如果电压低于150v,则显示“低电压”,如果电压高于200v,则在液晶显示屏上显示“高电压”文本。我们可以在项目末尾更改PIC代码中的限制。在这里,我们已经使用风扇调节器来增加和降低输入电压,以用于视频演示。
在该电路中,我们还增加了一个简单的欠压和过压保护电路,而无需使用任何微控制器。在这个简单的电路中,我们使用了LM358比较器来比较输入电压和参考电压。因此,在此项目中,我们有三个选项:
- 借助变压器,桥式整流器,分压器电路和PIC微控制器来测量和比较交流电压。
- 在变压器,整流器和比较器LM358(不带微控制器)的帮助下,通过使用LM358来检测过压和欠压
- 使用比较器LM358检测欠压和过压,并将其输出馈送到PIC微控制器,以通过代码采取措施。
在这里,我们演示了该项目的首选。其中,我们已经降低了交流输入电压,然后使用桥式整流器将其转换为直流,然后再次将该直流电压映射到5v,最后将该电压馈入PIC微控制器进行比较和显示。
在PIC单片机中,我们已读取了该映射的直流电压,并根据该映射的值借助给定的公式计算了输入的交流电压:
伏特=((adcValue * 240)/ 1023)
其中 adcValue 是PIC控制器ADC引脚上的等效直流输入电压值, 伏特 是施加的交流电压。这里我们以240v作为最大输入电压。
或者,我们可以使用给定的方法来映射等效的直流输入值。
伏特=地图(adcVlaue,530,895,100,240)
其中 adcValue 是PIC控制器ADC引脚上的等效DC输入电压值,530是最小DC电压等效值,而895是最大DC电压等效值。100v是最小映射电压,而240v是最大映射电压。
表示PIC ADC引脚上的10mV DC输入等于2.046 ADC等效值。因此,这里我们选择530作为最小值,PIC的ADC引脚上的电压为:
((((530 / 2.046)* 10)/ 1000)伏
2.6v,将映射为最小值100VAC
(最大限制的相同计算)。
最后检查PIC程序代码中是否提供了 映射 功能。在此处了解有关分压器电路和使用ADC映射电压的更多信息。
这个项目的工作很容易。在此项目中,我们使用了交流电压风扇调节器进行演示。我们已将风扇调节器连接到变压器的输入。然后,通过增加或减小其电阻,我们可以获得所需的电压输出。
在代码中,我们为高电压和低电压检测设置了固定的最大和最小电压值。我们将200v固定为过电压限制,将150v固定为较低电压限制。现在,给电路加电后,我们可以在LCD上看到交流输入电压。当输入电压增加时,我们可以看到LCD上的电压变化,如果电压超过电压上限,则LCD会通过“高电压警报”向我们发出警报;如果电压低于电压上限,则LCD会通过显示“ “低电压警报”消息。这样,它也可以用作电子断路器。
我们可以进一步添加一个继电器,以将任何交流设备连接到低电压或高电压时自动断开。我们只需要在显示代码的LCD警报消息下方添加一行代码以关闭设备即可。选中此处以将继电器与AC电器一起使用。
电路说明:
在高低压保护电路中,我们使用了LM358运算放大器,该放大器的两个输出连接到PIC微控制器的2和3个数字引脚。分压器用于分压并将其输出连接到PIC微控制器的第4个数字引脚。LCD以4位模式连接到PIC的PORTB。RS和EN直接连接到B0和B1,LCD的数据引脚D4,D5,D6和D7分别连接到B2,B3,B4和B5。在该项目中,我们使用了两个稳压器:7805用于微控制器电源,而7812用于LM358电路。此外,还使用一个12v-0-12v降压变压器来降低AC电压。其余组件显示在下面的电路图中。
编程说明:
该项目的编程部分很容易。在此代码中,我们只需要使用来自分压器电路的映射0-5v电压来计算交流电压,然后将其与预定义值进行比较即可。您可以在完成该项目后检查完整的PIC代码。
首先,在代码中,我们包含了一个标头并配置了PIC微控制器的配置位。如果您不熟悉PIC编码,请在此处学习PIC微控制器及其配置位。
然后我们使用了一些驱动LCD的功能,例如 void lcdbegin() 初始化LCD, void lcdcmd(char ch) 向LCD发送命令, void lcdwrite(char ch) 向LCD发送数据和 void lcdprint(char *)。 str) 用于将字符串发送到LCD。检查下面代码中的所有功能。
以下给定的函数用于映射值:
长映射(long x,long in_min,long in_max,long out_min,long out_max){return(x-in_min)*(out_max-out_min)/(in_max-in_min)+ out_min; }
给定 int AnalogRead(int ch) 函数用于初始化和读取ADC:
int AnalogRead(int ch){int adcData = 0; if(ch == 0)ADCON0 = 0x03; // ADC通道0否则if(ch == 1)ADCON0 = 0x0b; //选择adc通道1否则if(ch == 2)ADCON0 = 0x0b; //选择adc通道2 ADCON1 = 0b00001100; //选择ADC ADCON2 = 0b10001010的模拟i / p 0,1和2通道; //均衡时间保持上限时间while(GODONE == 1); //开始转换adc值adcData =(ADRESL)+(ADRESH << 8); //存储10位输出ADON = 0; //关闭adc返回adcData; }
给定的线用于获取ADC样本并计算它们的平均值,然后计算电压:
while(1){long adcValue = 0; 内部电压= 0; for(int i = 0; i <100; i ++)//进行采样{adcValue + = analogRead(2); delay(1); } adcValue / = 100; #if method == 1 volt =(((float)adcValue * 240.0)/1023.0); #else volt = map(adcValue,530,895,100,240); #endif sprintf(result,“%d”,volt);
最后使用给定的函数执行结果操作:
if(伏特> 200){lcdcmd(1); lcdprint(“高压”); lcdcmd(192); lcdprint(“ Alert”); 延迟(1000); } else if(volt <150){lcdcmd(1); lcdprint(“低电压”); lcdcmd(192); lcdprint(“ Alert”); 延迟(1000); }
使用EasyEDA的电路和PCB设计:
为了设计这种高低压检测电路,我们选择了在线EDA工具EasyEDA。我们以前使用过EasyEDA多次,发现与其他PCB制造商相比,它使用起来非常方便。在这里检查我们所有的PCB项目。 EasyEDA不仅是原理图捕获,电路仿真和PCB设计的一站式解决方案,而且还提供低成本的PCB原型和元件采购服务。他们最近启动了组件采购服务,在那里他们拥有大量电子组件,用户可以与PCB订单一起订购所需的组件。
在设计电路和PCB时,您还可以公开电路和PCB设计,以便其他用户可以复制或编辑它们并从中受益,我们还针对这种高电压和低电压公开了整个电路和PCB布局 保护电路,请检查以下链接:
easyeda.com/circuitdigest/HIGH_LOW_Voltage_Detector-4dc240b0fde140719c2401096e2410e6
以下是EasyEDA的PCB布局顶层快照,您可以通过选择“层”窗口中的层来查看PCB的任何层(顶层,底层,顶层丝绸,底层丝绸等)。
您也可以使用EasyEDA检出PCB的照片视图:
在线计算和订购PCB:
完成PCB设计后,您可以单击 上面的 Fabrication输出 图标 。然后,您将访问PCB订购页面,以下载PCB的Gerber文件并将其发送给任何制造商,直接在EasyEDA中订购它也容易得多(且便宜很多)。在这里,您可以选择要订购的PCB数量,所需的铜层数,PCB的厚度,铜的重量,甚至PCB的颜色。选择所有选项后,单击“保存到购物车”并完成您的订单,几天后您将获得PCB。用户也可以与当地的PCB供应商一起使用Gerber文件制作PCB。
EasyEDA的交货速度非常快,在订购PCB几天后,我得到了PCB样品:
下面是将元件焊接到PCB上的 图片:
这样我们就可以轻松地为我们的房屋建立低压保护电路。此外,您只需要添加一个继电器即可将任何交流设备连接到它,以保护它免受电压波动的影响。只需将继电器与PIC MCU的任何通用引脚连接,然后编写代码以使该引脚为高电平和低电平以及LCD警报消息代码即可。