全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 测量仪表 >

如何使用Arduino制作一个交流电压测量设备

时间:2023-01-25 17:41

人气:

作者:admin

标签: 交流电压  Ardui  测量设备 

导读:如何使用Arduino制作一个交流电压测量设备-在这个项目中,我们将使用Arduino制作一个交流电压测量设备, 该设备将测量我们家中交流电源的电压。我们将在Arduino IDE的串行监视器上打印...

在这个项目中,我们将 使用Arduino制作一个交流电压测量设备, 该设备将测量我们家中交流电源的电压。我们将在Arduino IDE的串行监视器上打印该电压,并在万用表上显示。

制作数字电压表比制作模拟电压表容易得多,因为在模拟电压表的情况下,您必须对扭矩、摩擦损耗等物理参数有很好的了解,而在数字电压表的情况下,您只需使用 LCD 或 LED 矩阵甚至您的笔记本电脑(如本例)为您打印电压值。

所需组件:

  1. 一台 12-0-12 变压器
  2. 1N4007二极管
  3. 1uf电容器
  4. 电阻 10k;4.7k。
  5. 齐纳二极管(5V)
  6. Arduino UNO
  7. 连接线

Arduino电压表电路图:

使用Arduino电路图的交流电压表

Arduino电压表的电路图如上所示。

连接:

  1. 将变压器的高压侧(220V)连接到主电源,将低压侧(12V)连接到分压器电路。
  2. 将 10k 电阻与 4.7k 电阻串联,但确保将电压作为 4.7k 电阻的输入。
  3. 如图所示连接二极管。
  4. 连接 4.7k 上的电容器和齐纳二极管
  5. 将一根电线从二极管的n端连接到Arduino的模拟引脚A0。

** 注意:将Arduino的接地引脚连接到图中所示的点,否则电路将不起作用。

1.png

需要分压器电路吗?

当我们使用 220/12 V 变压器时,我们在 l.v 侧得到 12 v。由于该电压不适合作为Arduino的输入,因此我们需要一个分压器电路,该电路可以提供合适的电压值作为Arduino的输入。

为什么连接二极管和电容器?

由于Arduino不将负电压值作为输入,因此我们首先需要消除降压AC的负循环,以便Arduino仅获取正电压值。因此,连接二极管以整流降压。查看我们的半波整流器和全波整流器电路,了解有关整流的更多信息

该整流电压不平滑,因为它包含较大的纹波,无法为我们提供任何精确的模拟值。因此,连接电容器以平滑交流信号

齐纳二极管的用途?

如果将大于 5v 的电压馈送到 Arduino,它可能会受到损坏。因此,连接了一个 5v 齐纳二极管以确保 Arduino 的安全性,如果该电压超过 5v,该二极管会击穿。

基于Arduino的交流电压表的工作:

  1. 变压器的L.V侧获得降压电压,适用于正常额定功率电阻器。

2.然后我们在4.7k电阻上得到合适的电压值

通过在变形杆菌上模拟该电路,可以找到可以测量的最大电压(在模拟部分中解释)。

  1. Arduino 将此电压作为引脚 A0 的输入,以 0 到 1023 之间的模拟值的形式出现。0 是 0 伏,1023 是 5V。
  2. 然后,Arduino 通过公式将此模拟值转换为相应的电源交流电压。(在代码部分中解释)。

模拟:

交流电压表使用Arduino模拟311V

精确的电路是在变形杆菌中制造的,然后进行模拟。为了找到该电路可以测量命中的最大电压,请使用试验方法。

在使交流发电机的峰值电压为440(311 r.m.s)时,发现引脚A0上的电压为5伏,即最大。因此,该电路可以测量最大311 r.m.s电压。

对 220 r.m.s 至 440v 之间的各种电压进行仿真

使用交流 Arduino 电压表模拟交流 285 RMS 电压

代码说明:

完整的Arduino电压表代码在本项目结束时给出,并通过评论进行了很好的解释。在这里,我们将解释其中的一小部分。

m 是引脚 A0 上接收到的输入模拟值,即

m=    pinMode (A0,INPUT) ;  // set pin a0 as input pin

将变量 n 分配给此公式 n=(m * 304177), 首先使用在模拟部分获得的数据执行某种计算:

如仿真照片所示,当输入交流电压为 311V 时,在引脚 A0 处获得 5v 或 1023 模拟值。因此:

1023 模拟值对应于 311 伏电源

因此,任何随机模拟值对应于 (311/1023)*m,其中 m 是获得的模拟值。

因此,我们得出这个公式:

n=(311/1023) m 伏特或 n=(m .304177)

现在,该电压值使用串行命令打印在串行监视器上,如下所述。并且还显示在万用表上,如下面的视频所示。

屏幕上打印的值为:

代码中指定的模拟输入值:

Serial.print("   analog input  ") ; // this gives name which is “analog input”  to the printed analog value 

Serial.print(m);// this simply prints the input analog value

代码中指定的所需交流电压:

Serial.print("   ac voltage  ") ; // this gives name  “ac voltage”  to the printed analog value 

 Serial.print(n) ;  // this simply prints the ac voltage value

int m;// initialise variable m

float n;//initialise variable n

void setup()

{

pinMode(A0,INPUT); // set pin a0 as input pin

Serial.begin(9600);// begin serial communication between arduino and pc

}

void loop()

{

m=analogRead(A0);// read analog values from pin A0 across capacitor

n=(m* .304177);// converts analog value(x) into input ac supply value using this formula ( explained in woeking section)

Serial.print(" analaog input " ) ; // specify name to the corresponding value to be printed

Serial.print(m) ; // print input analog value on serial monitor

Serial.print(" ac voltage ") ; // specify name to the corresponding value to be printed

Serial.print(n) ; // prints the ac value on Serial monitor

Serial.println();

}


温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信