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

发布时间:2023-03-21  

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


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


所需组件:

一台 12-0-12 变压器

1N4007二极管

1uf电容器

电阻 10k;4.7k。

齐纳二极管(5V)

Arduino UNO

连接线

Arduino电压表电路图:

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

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


连接:


将变压器的高压侧(220V)连接到主电源,将低压侧(12V)连接到分压器电路。

将 10k 电阻与 4.7k 电阻串联,但确保将电压作为 4.7k 电阻的输入。

如图所示连接二极管。

连接 4.7k 上的电容器和齐纳二极管

将一根电线从二极管的n端连接到Arduino的模拟引脚A0。

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

5c424a2e86e27439972a1b8939c0bf1a_poYBAGO2mqyAaq2HAAiMdNwgNZ4176.png

需要分压器电路吗?


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


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


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


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


齐纳二极管的用途?


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


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

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


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


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


Arduino 将此电压作为引脚 A0 的输入,以 0 到 1023 之间的模拟值的形式出现。0 是 0 伏,1023 是 5V。

然后,Arduino 通过公式将此模拟值转换为相应的电源交流电压。(在代码部分中解释)。

模拟:

013f279012ca0bf5eaff1e42c0d60c96_pYYBAGO2mnWACORKAACho0aTMUg490.png

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


在使交流发电机的峰值电压为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();


}


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>