使用Arduino计算直流电压的方式

描述

通过对Arduino和分压器电路的简单了解,我们可以将Arduino转换为数字电压表,并可以使用Arduino和16x2 LCD显示器测量输入电压。

Arduino有几个模拟输入引脚,连接到Arduino内部的模数转换器(ADC)。Arduino ADC是一个十位转换器,这意味着输出值的范围为0到1023。我们将使用 analogRead() 函数获取此值。如果您知道基准电压,则可以轻松计算模拟输入端的电压。我们可以使用分压器电路来计算输入电压。

测量的电压显示在 16x2 液晶显示器 (LCD) 上。我们还在Arduino IDE的串行监视器中显示了电压,并使用万用表确认了测量的电压。

所需硬件:

Arduino uno

16x2 液晶显示器(液晶显示器)

100 k 欧姆电阻器

10 k 欧姆电阻器

10 k 欧姆电位计

面包板

跳线

分压器电路:

在进入此Arduino电压表电路之前,让我们讨论一下分压器电路。

分压器是一种电阻电路,如图所示。在这个电阻网络中,我们有两个电阻器。如图所示,R1和R2分别为10k和100k欧姆。分支的中点作为Arduino的异常输入进行测量。R2两端的压降称为Vout,这是我们电路的分压。

Arduino

公式:

使用已知值(两个电阻值R1、R2和输入电压),我们可以在下面的公式中代入以计算输出电压。

Vout = Vin (R2/R1+R2)

该公式表明输出电压与输入电压以及R1和R2的比值成正比。

通过在Arduino代码中应用此公式,可以轻松推导出输入电压。Arduino只能测量+55v的直流输入电压,换句话说,当测量55V时,Arduino模拟引脚将处于其最大电压5V,因此在此限制内测量是安全的。此处,电阻R2和R1值设置为100000和10000,即比率为100:10。

电路图和连接:

此Arduino数字电压表的连接很简单,如下图所示:

Arduino

LCD 的引脚 DB4、DB5、DB6、DB7、RS 和 EN 直接连接到 Arduino Uno 的引脚 D4、D5、D6、D7、D8、D9

构成分压器电路的两个电阻R1和R2的中心点连接到Arduino引脚A0。而其他 2 端连接到输入电压(待测量电压)和 GND。

编码说明:

用于测量直流电压的完整Arduino代码在下面的代码部分中给出。代码很简单,很容易理解。

代码的主要部分是借助上述给定方程Vout = Vin(R2 / R1 + R2)将给定的输入电压转换并映射到显示的输出电压。如前所述,Arduino ADC输出值的范围为0到1023,Arduino最大输出电压为5v,因此我们必须将A0处的模拟输入乘以5/1024才能获得实际电压。

void loop()
{
int analogvalue = analogRead(A0);
temp = (analogvalue * 5.0) / 1024.0; // FORMULA USED TO CONVERT THE VOLTAGE
input_volt = temp / (r2/(r1+r2));

在这里,我们在Arduino的LCD和串行监视器上显示了测量的电压值。因此,在代码中,Serial.println用于在串行监视器上打印值,lcd.print用于在16x2 LCD上打印值。

Serial.print("v= "); // prints the voltage value in the serial monitor
Serial.println(input_volt);
lcd.setCursor(0, 1);
lcd.print("Voltage= "); // prints the voltage value in the LCD display 
lcd.print(input_voltage);

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分