凭借对Arduino和分压器电路的简单了解,我们可以将Arduino转换为数字电压表,并可以使用Arduino和16x2 LCD显示屏测量输入电压。
Arduino有几个模拟输入引脚,它们连接到Arduino内部的模数转换器(ADC)。Arduino ADC是一个十位转换器,这意味着输出值的范围是0到1023。我们将使用 AnalogRead() 函数获得该值。如果您知道参考电压,则可以轻松计算出模拟输入上的电压。我们可以使用分压器电路来计算输入电压。在此处了解有关Arduino中ADC的更多信息。
测得的电压显示在16x2液晶显示器(LCD)上。我们还在Arduino IDE的串行监视器中显示了电压,并使用万用表确认了测得的电压。
所需硬件:
- Arduino Uno
- 16x2 LCD(液晶显示器)
- 100 k欧姆电阻
- 10 k欧姆电阻
- 10 k欧姆电位器
- 面包板
- 跳线
分压器电路:
在进入Arduino电压表电路之前,让我们讨论一下分压器电路。
分压器是一个电阻电路,如图所示。在该电阻网络中,我们有两个电阻。如图所示,R1和R2分别为10k和100k欧姆。分支的中点作为对Arduino的模拟输入进行测量。R2两端的电压降称为Vout,这是我们电路的分压电压。
公式:
使用已知值(两个电阻值R1,R2和输入电压),我们可以代入下面的公式来计算输出电压。
Vout = Vin(R2 / R1 + R2)
该方程式表明,输出电压与输入电压以及R1和R2之比成正比。
通过在Arduino代码中应用此公式,可以轻松得出输入电压。Arduino只能测量+ 55v的直流输入电压,换句话说,当测量55V时,Arduino模拟引脚将处于其最大电压5V,因此可以安全地在此范围内进行测量。此处,电阻R2和R1的值设置为100000和10000,即比例为100:10。
电路图和连接:
此Arduino数字电压表的连接 很简单,并在下面的电路图中显示:
LCD的引脚DB4,DB5,DB6,DB7,RS和EN直接连接到Arduino Uno的引脚D4,D5,D6,D7,D8,D9
构成分压器电路的两个电阻器R1和R2的中心点连接到Arduino引脚A0。而另一端连接到输入电压(要测量的电压)和接地。
编码说明:
下面的代码部分给出了用于测量DC电压的完整Arduino代码。代码很简单,很容易理解。
该代码的主要部分是借助上述给定方程Vout = Vin(R2 / R1 + R2)将给定的输入电压转换并映射为显示的输出电压。如前所述,Arduino ADC的输出值范围是0到1023,Arduino的最大输出电压是5v,因此我们必须将A0处的模拟输入值乘以5/1024才能获得实际电压。
void loop(){int AnalogValue = AnalogRead(A0); temp =(模拟值* 5.0)/ 1024.0; //用于转换电压的公式input_volt = temp /(r2 /(r1 + r2));
在这里,我们已经在LCD和Arduino的串行监视器上显示了测得的电压值。因此,这里的代码 Serial.println 用于在串行监视器上打印值,而 lcd.print 用于在16x2 LCD上打印值。
Serial.print(“ v =”); //在串行监视器Serial.println(input_volt)中打印电压值;lcd.setCursor(0,1); lcd.print(“ Voltage =”); //在LCD显示屏上显示电压值lcd.print(input_voltage);
这就是我们可以使用Arduino轻松计算直流电压的方式。查看下面的视频进行演示。使用Arduino计算交流电压有点困难,您可以在此处进行检查。