【雕爷学编程】Arduino动手做(61)---电压检测传感器

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料+代码+图形+仿真)

实验六十一:电压检测模块 Voltage Sensor 电压传感器

电压检测传感器模块资料

由于目前电子产品各式各样,供电电源的电压也各不相同,要想检测就需要一款合适的电压检测模块和控制器。控制器模拟接口检测输入电压上限为5V,也就是说大于5V的电压将无法检测。

2011 年新推出的这款电压检测模块能够解决此问题,实现检测大于5V的电压,此模块基于电阻分压原理所设计,能使红色端子接口输入的电压缩小5倍,模拟输入电压上限为5V,那么电压检测模块的输入电压则不能大于5V×5=25V(如果用到3.3V系统,输入电压不能大于3.3Vx5=16.5V)。因为Arduino所用AVR 芯片为10位AD,所以此模块的模拟分辨率为0.00489V(5V/1023),故电压检测模块检测输入下限电压为 0.00489V×5=0.02445V。

通过3P传感器连接线插接到传感器扩展板,不仅可以轻松实现对电压电量大小的检测,监控互动媒体作品或机器人电池供电的电量,也可以通过IICLCD1602液晶模块显示电压制作电压监测器。

为配合实验,找了一块DC-DC升压模块

升压模块

1、体积小可调升压模块,可轻松安装于各种小型设备里面。

2、可采用MicroUSB输入,用USB充电器或者移动电源通过手机数据线即3、可轻松得到9V,12V,15V,18V,24V的常用电压,使用非常方便。

4、宽的输入和输出电压,高的转换效率。

升压模块特性

1)大输出电流:2A(建议在1A内使用)

2)输入电压:2 v--24 v

3)大输出电压:> 28 v(建议在26V内使用)

4)效率:> 93%(效率与输入和输出的压差有关)

5)尺寸:30mm* 17mm* 14mm(长*宽*高)

 

注意事项

1)此模块是升压模块,输出电压要大于输入电压

2)  峰值电流输出电流不过2A

电压检测传感器模块

此模块基于电阻分压原理所设计,能使端子接口输入的电压缩小5倍,Arduino模拟输入电压最大为5V,那么电压检测模块的输入电压则不能大于5V×5=25V(如果用到3.3V系统,输入电压不能大于3.3Vx5=16.5V)。因为Arduino所用AVR芯片为10位AD,所以此模块的模拟分辨率为0.00489V(5V/1023),故电压检测模块检测输入最小电压为0.00489V×5=0.02445V。

电压传感器模块参数

电压输入范围:DC0-25V

电压工作范围:DC0-25V

电压检测范围:DC0.02445V-25V

数据类型:模拟输入

电压模拟分辨率:0.00489V

DC输入接口:红色端子正极接VCC,负极接GND

尺寸:30mm x 25mm

接口类型:KF2510-3P

输出接口:

"-"接GND,

"+"接5/3.3V,

"S"接Arduino的AD引脚(A0)

实验接线示意图

实验开源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*
 
【Arduino】66种传感器模块系列实验(61)
 
实验六十一:电压检测模块 Voltage Sensor 电压传感器
 
试试看波形如何
 
*/
 
  
 
void setup()
 
{
 
  Serial.begin(9600);
 
}
 
void loop()
 
{
 
      int val;
 
      float temp;
 
      val=analogRead(0);
 
      temp=val/40.92; 
 
      val=(int)temp;
 
      Serial.println(val);
 
      delay(1000);
 
}

  串口输出的实验电压变动波形图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/*
 
【Arduino】66种传感器模块系列实验(61)
 
实验六十一:电压检测模块 Voltage Sensor 电压传感器
 
程序之二
 
*/
 
  
 
int analogpin=0;                           
 
int val,val5;                    
 
int val2=0;                    
 
int val3=0;                    
 
int val4=0;                    
 
void setup()
 
{
 
    Serial.begin(9600);    
 
}
 
void loop()
 
{
 
    int val,val5;
 
    float val1;
 
    val=analogRead(analogpin);            
 
    val1=val/3.9;
 
    val5=(int)val1;
 
    val3=val5/100;
 
    val2=(val5%100)/10;
 
    val4=val5%10;
 
    Serial.print("$CLEAR\r\n");                
 
    Serial.print("$GO 1 1\r\n");                
 
    Serial.print("$PRINT Voltage:\r\n");        
 
    Serial.print("$GO 1 9\r\n");
 
    Serial.print("$PRINT ");        
 
    Serial.print(val3);                             
 
    Serial.print(val2);                             
 
    Serial.print(".");                              
 
    Serial.print(val4);                             
 
    Serial.println("V");                            
 
    delay(1000);                                     
 
}

  串口输出的实验电压实时变动数值

实验开源图形编程(Mind+)

 

 

设定12V为监控电压阙值,当电压小于12V时自动报警(板载LED亮),十分精准

 

posted @   行者花雕  阅读(5093)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示