yaboPP电子
项目

使用Arduino制作数字电压表

2015年6月4日通过蒂姆杨ood

使用Arduino和16x2液晶显示器(LCD)可以轻松制作简单的数字电压表。

使用Arduino和16x2液晶显示器(LCD)可以轻松制作简单的数字电压表。

使用Arduino测量电压是相对简单的。Arduino有几种模拟输入引脚,可连接到Arduino内的模数转换器(ADC)。Arduino ADC是十比特转换器,这意味着输出值将从0到1023。我们将使用Analogread()函数获取此值。如果您知道参考电压 - 在这种情况下,我们将使用5 V - 您可以轻松地计算模拟输入处存在的电压。

为了显示测量的电压,我们将使用两行16个字符的液晶显示器(LCD)。液晶显示器广泛用于显示数据的设备,如计算器,微波炉和许多其他电器。

该项目还将通过使用分压器向您展示如何测量高于参考电压的电压。


实验1

在这个实验中,我们将制作能够测量最多5V的数字电压表Arduino Board和16x2 LCD。


需要硬件

  • 1 x Arduino Mega2560
  • 1x LCD(液晶显示器)
  • 1x 5 Kohm电位器
  • 1 x电路试验板
  • 女性连接器
  • 跳线


接线图

该实验中使用的16x2 LCD共有16个引脚。如下表所示,八个引脚是数据线(引脚7-14),两个是用于电源和地面(引脚1和16),三个用于控制LCD(引脚4-6)的操作,并且一个用于调整LCD屏幕亮度(引脚3)。剩余的两个引脚(15和16)为背光电源。

1号航站楼 接地
码头2. + 5 v
码头3. 电位器的中间终端(用于亮度控制)
码头4. 电阻选择(RS)
码头5. 读/写(RW)
终端6. 启用(EN)
码头7. DB0.
码头8. DB1.
码头9. DB2.
码头10. DB3.
码头11. DB4.
终端12. DB5.
终端13. DB6.
终端14. DB7.
终端15. + 4.2-5V.
终端16. 接地

请看下图,如何将LCD连接到Arduino上。注意电位器连接到5V源和GND,中间端子连接到LCD引脚3。旋转这个锅可以改变LCD的亮度。四个数据引脚DB4-DB7连接到Arduino引脚4-7。Enable连接Arduino的引脚9,RS连接Arduino的引脚8。RW接地。背光LED接5V,接地。下表显示了引脚的连接:

DB4——> pin4

DB5跑车——>平快

DB6 -----> PIN6

DB7——> pin7

RS -----> PIN8

en -----> Pin9



代码

下面的程序使用液晶文库。此库包含写入LCD所需的所有功能。

该循环从模拟输入读取模拟值,因为参考电压为5 V,它倍增值5,然后将1024分开以计算实际电压值。计算电压后,将值写入LCD。

下面的照片显示了典型的显示。

#include "LiquidCrystal.h" LiquidCrystal lcd(8, 9, 4, 5, 6, 7);Float input_voltage = 0.0;浮动temp = 0.0;void setup() {Serial.begin(9600);//打开串行端口,将数据速率设置为9600 bps lcd.begin(16,2);////设置LCD的列和行号:LCD.Print(“数字电压表”);} void loop(){//电压的转换公式int analog_value = analogRead(A0);Input_voltage = (analog_value * 5.0) / 1024.0;If (input_voltage < 0.1) {input_voltage=0.0;serial.print(“v =”); Serial.println(input_voltage); lcd.setCursor(0, 1); lcd.print("Voltage= "); lcd.print(input_voltage); delay(300); }

Make_A_Digital_Voltmeter.zip

实验2

为了测量大于5 V参考电压的电压,您需要除以输入电压,使实际输入到Arduino的电压为5 V或更小。在该实验中,我们将使用90.9 kohm电阻和10个kohm电阻,以创建10:1分隔件。这将使我们可以测量高达50 V的电压。


需要硬件

  • 1x Arduino Mega2560
  • 1x 90.9 kohm电阻
  • 1x 10 kohm电阻
  • 1x LCD(液晶显示器)
  • 1x 5K电位器
  • 1 x电路试验板
  • 女性连接器
  • 跳线


接线图

该实验的电路与实验#1完全相同,不同之处在于我们现在具有一个分压器,由90.9 kohm电阻和连接到输入的10个kohm电阻组成。请参阅下图。

程序

这个实验的程序与实验1几乎相同。唯一不同的是,现在我们必须将计算出来的电压除以R2/(R1 + R2),在这个例子中是10,000/(90,900 + 10,000)≈0.1。


代码

#include "LiquidCrystal.h" LiquidCrystal lcd(8, 9, 4, 5, 6, 7);Float input_voltage = 0.0;浮动temp = 0.0;Float R1 = 90900.0;float r2 = 10000.0;void setup() {Serial.begin(9600);//打开串行端口,将数据速率设置为9600 bps lcd.begin(16,2);////设置LCD的列和行号:LCD.Print(“数字电压表”);} void循环(){//转换公式int模拟_value = analogread(a0);temp =(smalim_value * 5.0)/ 1024.0; input_voltage = temp / (r2/(r1+r2)); if (input_voltage < 0.1) { input_voltage=0.0; } Serial.print("v= "); Serial.println(input_voltage); lcd.setCursor(0, 1); lcd.print("Voltage= "); lcd.print(input_voltage); delay(300); }

digital_voltmeter_with_arduino_1.ino.zip.zip.zip

视频

为自己提供这个项目!得到bom。

29评论
  • 年代
    Sophiap. 2015年8月23日

    我目前正在进行这个项目,目前正在困惑。视频显示与给定图表不匹配。LCD连接到面包板,这是如何完成的?

    像。 回复
  • Laszlo Lebrun 2015年10月3日,

    “在这个实验中,我们将使用100 kohm和10个kohm电阻来创建10:1分隔线。”
    抱歉:您的分压器公式不正确。
    正确的公式是R1 + R2 / R2

    你应该使用90 9KΩ和10 0KΩ电阻对。

    像。 回复