风筝
发表于: 2022-4-6 09:44:57 | 显示全部楼层

在本篇文章中,我们将学习如何将0-25V直流电压传感器连接到Arduino开发板实现测量直流电压。电压传感器模块是一种基于电阻分压电路的0-25V直流电压传感装置。它将输入电压信号降低5倍,并生成相应的模拟输出电压。这就是为什么您可以使用任何微控制器的5V模拟引脚测量高达25V的电压的原因。


在本文中,我们将电压传感器模块与Arduino连接并测量不同的电池电压。该电压测量电路小巧便携,可用于检测电路中的欠压或过压故障。


所需的组件

●      Arduino Nano开发板

●      0-25V电压传感器模块

●      连接跳线

●      面包板


0-25V电压传感器模块

Voltage-Sensor-Module.jpg


电压传感器模块是一个简单但非常有用的模块,它使用分压器将输入电压降低5 倍。0-25V电压传感器模块允许您使用微控制器的模拟输入来监控远高于它能够感应的电压。


特性和规格

1.    输出类型:模拟信号

2.    输入电压(V):0至25

3.    电压检测范围(V):0.02445~25

4.    模拟电压分辨率(V):0.00489

5.    尺寸:4×3×2cm


电压传感器模块引脚排列

电压传感器模块有5个引脚,正面2个,背面3个。

●      VCC:外部电压源正极端子(0-25V)

●      GND:外部电压源负极端子

●      S:模拟引脚连接到微控制器的模拟引脚

●      +:未连接

●      -:接地引脚,连接到微控制器的GND


电压传感器模块设计与构造

电压传感器实际上是一个分压器,由两个电阻组成,电阻值分别为30KΩ和7.5KΩ,即一个5比1的分压器。因此,对于任何输入电压,输出电压都会降低5倍。电压传感器模块的内部电路图如下所示。

Arduino-Voltage-Sensor-Module-Schematic.png


Arduino 模拟输入引脚最高可接受5V的电压。因此,您可以轻松地将这个模块与Arduino开发板一起使用。如果控制器使用的是3.3V,那输入电压不应大于3.3Vx5=16.5V。


Arduino AVR芯片带有10位AD,所以本模块模拟0.00489V(5V/1023)的分辨率,所以输入电压检测模块的最小电压为0.00489Vx5=0.02445V。


0-25V直流电压传感器模块与Arduino的硬件连接

让我们学习电压传感器模块与Arduino的连接方法,电路图如下所示。

Untitled-Sketch_bb.jpg


连接非常简单。将电压传感器的信号 (S) 和负极 (-) 引脚分别连接到 Arduino A0 和 GND 引脚。


代码

Arduino代码比较简单,无需使用外部库文件即可实现所有功能。

  1. // Define analog input
  2. #define ANALOG_IN_PIN A0

  3. // Floats for ADC voltage & Input voltage
  4. float adc_voltage = 0.0;
  5. float in_voltage = 0.0;

  6. // Floats for resistor values in divider (in ohms)
  7. float R1 = 30000.0;
  8. float R2 = 7500.0;

  9. // Float for Reference Voltage
  10. float ref_voltage = 5.0;

  11. // Integer for ADC value
  12. int adc_value = 0;

  13. void setup()
  14. {
  15.    // Setup Serial Monitor
  16.    Serial.begin(9600);
  17.    Serial.println("DC Voltage Test");
  18. }

  19. void loop(){
  20.    // Read the Analog Input
  21.    adc_value = analogRead(ANALOG_IN_PIN);
  22.    
  23.    // Determine voltage at ADC input
  24.    adc_voltage  = (adc_value * ref_voltage) / 1024.0;
  25.    
  26.    // Calculate voltage at divider input
  27.    in_voltage = adc_voltage / (R2/(R1+R2)) ;
  28.    
  29.    // Print results to Serial Monitor to 2 decimal places
  30.   Serial.print("Input Voltage = ");
  31.   Serial.println(in_voltage, 2);
  32.   
  33.   // Short delay
  34.   delay(500);
  35. }
复制代码

测试结果

为了测试传感器的工作情况,我使用了3种不同类型的电池,并观察串口监视器上的电压。


首先,传感器使用3.7V普通锂离子电池进行测试。

A.jpg


串口监视器根据电池的电压显示正确的读数。

111.png


同样,用9V电池测试传感器也可以正常工作。

B.jpg


222.png


使用可充电的3S锂离子电池进行测试时,电压传感器检测到读数约为5V。

C.jpg


333.png


以上就是使用Arduino开发板连接电压传感器模块的方法,如果有任何疑问,请随时在本帖下面进行回复。

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 705 | 回复: 1492



手机版|

GMT+8, 2024-11-21 19:15 , Processed in 0.042925 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表