在本文中,我们将学习如何使用Arduino制作无变压器的交流电压表。
使模拟电压表这不是一个容易的任务,因为要建立一个你必须有良好的知识的物理量,如扭矩,速度;当涉及到它们的实际应用时,这是非常困难的。
通过Ankit Negi
但是一个数字电压表相比可以制作模拟电压表速度很快,而且不费什么力气。现在一天的数字电压表可以使用微控制器或开发板,如arduino使用4-5行代码。
为什么这个交流电压表电路是不同的?
如果你去谷歌和搜索“交流电压表使用arduino”;你会在互联网上找到很多线路。但在几乎所有这些电路中,你都会发现使用变压器。
本课题的电路完全解决了这一问题,用高瓦特分压器电路替换了变压器。这种电路可以在几分钟内很容易地在一个小面包板上制成。组件要求:
为了制作这个项目,你需要以下组件:
1.Arduino
2.100k欧姆电阻(2瓦)
3.1k欧姆电阻(2瓦)
5.一个齐纳二极管5伏
6.1超滤电容
7.连接电线
线路图:
按电路图所示进行连接。
A)使用电阻做一个分压器,记住1 k欧姆电阻应该连接到地。
B)如图所示,将二极管的p端直接接在1 k欧姆电阻后,n端接在1 uf电容上。
C)不要忘记将齐纳二极管并联到电容器(解释如下)
D)将一根电线从电容器的正极连接到arduino的模拟引脚A0上。
E) **请务必将arduino的接地引脚连接到整体接地,否则电路将无法工作。
ARDUINO的目的:
好吧,你可以使用任何微控制器,但我使用arduino,因为它的容易IDE。arduino或这里的任何微控制器的基本功能是将1k欧姆电阻上的电压作为模拟输入,通过公式(在工作部分解释)将其转换为市电交流电压值。Arduino进一步将这个主要值打印在串行监视器或笔记本电脑屏幕上。
分压器电路:
正如在元件部分已经提到的,电阻(组成一个分压器电路)必须是高额定功率,因为我们要把它们直接连接到市电交流电源。
因此,这个分压器电路取代了变压器。由于arduino最大可取5v作为模拟输入,因此采用分压器电路将市电高压分割为低压(小于5v)。让我们假设市电电压为350伏(均方根)。
哪个给出最大或峰值电压= 300*1.414= 494.2伏
所以1k欧姆电阻的峰值电压是=(494.2伏特/101k)*1k = 4.9伏特(最大)
注意:*但即使是350均方根,4.9伏特不是均方根,这意味着在现实中arduino的模拟引脚上的电压将小于4.9伏特。
因此,从这些计算中可以观察到,该电路可以安全地测量约385均方根的交流电压。
为什么二极管?
由于arduino不能将负电压作为输入,所以通过1k欧姆电阻将输入交流正弦波的负部分去掉是非常重要的。为了做到这一点,它使用二极管进行整流。你也可以使用桥式整流器更好的结果。
为什么电容?
即使经过整流,波中仍然存在波纹,为了消除这种波纹,需要使用电容器。电容器在将电压送入arduino之前将其平滑。
为什么齐纳二极管
电压超过5伏会损坏arduino。因此,为了保护它,使用了一个5伏齐纳二极管。如果交流市电电压增加超过380伏,即在模拟引脚上超过5伏,齐纳二极管将发生击穿。从而使电容器对地短路。这确保了arduino的安全性。
代码:
在arduino中刻录此代码:
//初始化变量x
//初始化变量y
无效的设置()
{
pinMode (A0、输入);//设置a0引脚为输入引脚
Serial.begin(9600);//开始arduino与pc之间的串行通信
}
无效循环()
{
x=analogRead(A0);//从A0引脚通过电容读取模拟值
Y =(x*.380156);//用这个公式将模拟值(x)转换为输入交流电源值(工作部分解释)
系列。Print("模拟输入");//将name指定为要打印的值
并同时(x);//在串行监视器上打印输入模拟值
系列。打印("交流电压");//将name指定为要打印的值
并同时(y);//在串行监视器上打印ac值
以();
}
理解代码:
1.变量x:
X是从引脚A0接收的输入模拟值(电压),在代码中指定,即,
x = pinMode (A0,INPUT);//设置a0引脚为输入引脚
2.变量Y:
为了得到这个公式y=(x*.380156),首先我们必须做一些计算:
由于电容和二极管的作用,这个电路在这里提供的电压总是小于arduino引脚A0上的实际值。这意味着模拟引脚上的电压总是小于1k欧姆电阻上的电压。
因此,我们必须找出输入交流电压的值,在此值我们得到5伏特或1023模拟值在引脚A0。通过敲击和试验的方法,该值是550伏(峰值),如图所示。
在均方根中,550峰值电压= 550/1.414= 388.96伏特。因此,对于这个均方根值,我们在引脚A0上得到5伏特。所以这个电路可以测量最大值为389伏。
现在1023模拟值在引脚A0 - 389交流电压= y
对于任意模拟值(x);Y = (389/1023)*x交流电压
或y =。3.8015*x a.c volts
从图中可以清楚地看到,串行监视器上输出的交流电压也是389伏
在屏幕上打印所需值::
我们需要在串行监视器上打印两个值,如图仿真图所示:
1.模拟引脚A0接收的模拟输入值在代码中指定:
系列。Print("模拟输入");//将name指定为要打印的值
并同时(x);//在串行监视器上打印输入模拟值
2.规范中规定的来自市电的交流电压的实际值:
系列。打印("交流电压");//将name指定为要打印的值
并同时(y);//在串行监视器上打印ac值
使用arduino的无变压器交流电压表的工作
1.分压器电路将市电交流电压转换或降压成相应的低压值。
2.这个整流后的电压是由arduino的模拟引脚通过公式获取的
Y = 0.38015*x交流电压转换成实际市电交流电压值。
3.然后将转换后的值打印在arduino IDE的串行监视器上。
仿真:
为了查看屏幕上的打印值与实际交流值的接近程度,对不同的交流电压值进行模拟:
A) 220伏或311振幅
B) 235伏特或332.9振幅
C) 300伏或44.2伏
因此,从以下结果可以观察到,在220交流电源,arduino显示217伏。随着交流值的增加,模拟结果变得更加准确,更接近输入交流值。
拉杰什白肢野牛说
我可以改变分压器电路电阻的值吗??如果是,那么我在PRGM或ckt中需要做什么改变?
Swagatam说
您可以更改,但它必须与所显示的比例成比例(根据作者,100:1),最好不应该减少100K值
Swagatam说
它是变形杆菌
拉胡尔说
先生,如何测量三相电压。适用于三相三线制。
赃物说
据我所知,你可以通过3条线中的任意一条测量交流电压,这将是所有3相系统的电压读数。
拉胡尔说
但是我必须分别测量3个电压来测量是否不平衡。你能告诉我怎么测量吗?
赃物说
通过接地线测量它们。临时接地线可以从浴室的金属管道和水龙头中获取
拉胡尔说
先生,我是否可以将4.7 k电阻跨越三个相(星形连接),并将其作为接地点?
赃物说
是的,可以试试。
贝维斯说
你能用1N4007二极管代替齐纳二极管吗?
赃物说
齐纳将为Arduino创造5V…
Oluwadamilare说
先生,我做过这种电路,但我增加了一点功能。其功能是,当电压高于或低于某一值时,继电器开关应该被激活,但一旦继电器激活,液晶显示错误,但如果继电器没有连接液晶,读数是正确的。先生,请帮我解决这个问题
赃物说
你好,Oluwadamilare,你是如何连接接力的?这种类型的电源将不能直接驱动继电器。请给我看一下你的示意图,我来帮忙