电池具有一定的电压限制,如果在充电或放电时电压超过规定的限制,则电池的寿命会受到影响或缩短。每当我们使用电池供电的项目时,有时我们都需要检查电池电压水平,是否需要对其进行充电或更换。该电路将帮助您监视电池电压。该Arduino电池电压指示器通过根据电池电压在10段LED条形图上发光的LED指示电池的状态。它还在连接到Arduino的LCD上显示您的电池电压。
所需材料
- Arduino UNO
- 10段LED条形图
- 液晶屏(16 * 2)
- 电位器10k
- 电阻(100ohm-10; 330ohm)
- 电池(待测)
- 连接线
- Arduino的12v适配器
电路原理图
LED条形图
LED条形图具有工业标准尺寸,且功耗低。该条按发光强度分类。产品本身仍符合RoHS兼容版本。它具有高达2.6v的正向电压。每段的功耗为65mW。LED条形图的工作温度为-40℃至80℃。LED条形图有很多应用,例如音频设备,仪表板和数字读数显示。
引脚图
引脚配置
Arduino电池电压监控程序:
在完整的Arduino代码和演示视频在这篇文章的末尾。在这里,我们解释了代码的一些重要部分。
在这里,我们定义LCD库并指定要与Arduino一起使用的LCD引脚。模拟输入来自引脚A4,用于检查电池电压。我们将值设置为Float以使电压最高为两位小数。
#包括
int ledPins = {2,3,4,5,6,7,8,8,9,10,11}; //与LED相连的引脚号数组int pinCount = 10; //引脚数(即数组的长度)
将LCD和模拟引脚(A0,A1,A2,A3)设置为OUTPUT引脚。
void setup(){Serial.begin(9600); //打开串行端口,将数据速率设置为9600 bps lcd.begin(16,2); ////设置LCD的列数和行数:pinMode(A0,OUTPUT); pinMode(A1,OUTPUT); pinMode(A2,OUTPUT); pinMode(A3,OUTPUT); pinMode(A4,INPUT); lcd.print(“电压等级”); }
在这里,我们提供了一种使用LED条形图以简单方式使用的功能,您甚至可以通过逐个编程LED来发光LED,但是代码很长。
void LED_function(int stage){for(int j = 2; j <= 11; j ++){digitalWrite(j,LOW); } for(int i = 1,l = 2; i <= stage; i ++,l ++){digitalWrite(l,HIGH); // delay(30); 在这一部分中,我们已使用模拟引脚读取电压值。然后,我们使用模数转换公式将模拟值转换为数字电压值,并将其进一步显示在LCD上。
//电压的转换公式AnalogValue = AnalogRead(A4); Serial.println(analogValue); 延迟(1000); input_voltage =(模拟值* 5.0)/ 1024.0; lcd.setCursor(0,1); lcd.print(“ Voltage =”); lcd.print(input_voltage); Serial.println(输入电压); 延迟(100);
根据输入电压的值,我们给出了一些条件来控制LED条形图LED。您可以在下面的代码中检查条件:
如果(input_voltage <0.50 && input_voltage> = 0.00){digitalWrite(2,HIGH);延误(30); digitalWrite(2,LOW);延误(30); //当电压为零或低时,第一个LED将闪烁}表示,否则(input_voltage <1.00 && input_voltage> = 0.50){LED_function(2); }否则,如果(input_voltage <1.50 && input_voltage> = 1.00){LED_function(3); }否则,如果(input_voltage <2.00 && input_voltage> = 1.50){LED_function(4); }否则,如果(input_voltage <2.50 && input_voltage> = 2.00){LED_function(5); }否则,如果(input_voltage <3.00 && input_voltage> = 2.50){LED_function(6); }否则,如果(input_voltage <3.50 && input_voltage> = 3.00){LED_function(7); }否则,如果(input_voltage <4.00 && input_voltage> = 3.50){LED_function(8);}否则,如果(input_voltage <4.50 && input_voltage> = 4.00){LED_function(9); }否则,如果(input_voltage <5.00 && input_voltage> = 4.50){LED_function(10); }}
电池电压指示器的工作
电池电压指示器仅从Arduino Analog引脚读取值,然后使用模数转换(ADC)公式将其转换为数字值。的 Arduino的乌诺ADC 是10位分辨率的(所以从0的整数值- 2 ^ 10 = 1024个值)。这意味着它将把0到5伏之间的输入电压映射为0到1023之间的整数值。因此,如果将输入 anlogValue 乘以(5/1024),则可以得到输入电压的数字值。在这里了解如何在Arduino中使用ADC输入。然后,数字值将用于相应地使LED条形图发光。
另外,检查此简单的电池电量监测器,不带任何微控制器