Arduino如何测量电源电量,制作简单的电池测试仪

Arduino电池测试仪是一个非常酷炫有用的工具,可以用它来检查电池的充电情况,提示电池的剩余电量。

Arduino-Battery-Tester.jpg

这个教程里的电池测试仪是一个非常初级的Arduino项目,但它可以扩展为完美的商业产品,在教程的最后详细介绍了如何进一步扩展这个项目。

像这样的项目真正展示了如何使用Arduino和一些设备做交互,可以通过这个项目学习更多关于编码和电子学的基础知识。

这个电池测试仪并不是非常精确,但我觉得初学者可以试着做做这个项目,因为它既有趣又有教育意义。

设备清单

下面是我在这个项目中用到的所有设备清单

Arduino电池测试仪电路

这个电池测试仪的电路很容易组装,其中有一个部件是齐纳二极管,这里特别说明一下。

齐纳二极管可以测试电压大于8伏的电池,工作原理是允许电流向一个方向流动,直到达到击穿电压(二极管的极限,在我的例子中是5.1伏)。一旦达到这个极限,它就会准许电压向相反的方向流动。这可以保护只能接受一定电压的部件。在这个案例中是Arduino。

2.2k欧姆的电阻将来自电池的电流降低到Arduino能够承受的程度。如果电流太大,可能会损坏Arduino。

电路中还有三个不同的LED灯,每个LED灯都代表着电池中大概还有多少电量。

  • 红色代表电池电量不足/快没电了。
  • 黄色将代表电池大约用了一半。
  • 最后,绿色将代表电池已满。

每一个LED,从地线引脚到地线连接处连接一个100欧姆的电阻,这样就不会烧坏LED。这与在Arduino红绿灯教程中的做法非常相似。

现在快速将这个电路组装起来。在说明的下面,有一个电路图,可以按照电路图操作。

1. 将Arduino上的地线引脚与面包板上的地线。

2. 在面包板上放置绿色、红色和黄色LED。将地线引脚连接到地线上。

3. 将一个100欧姆的电阻放在LEDS的正端,然后从电阻上钩出一根线到Arduino的相关引脚上。

以下LED应连接到相关引脚号。

  • 红色LED=4
  • 黄色LED = 3
  • 绿色LED = 2

4. 现在从模拟引脚0(A0)连接到面包板上。在这之后加入一个2.2k的电阻和齐纳二极管(齐纳二极管上的线朝向Arduino)。最后有一根线从二极管的另一端出来。

5. 最后,把一根导线与地轨相连。

Arduino-Battery-Tester-Circuit.png

Arduino电池测试仪代码

这个Arduino电池容量测试仪项目的代码很简单,但我会解释每一行都是干啥的,让你能够理解在做什么。

首先,需要设置所有的变量。这包括确保LED变量都被分配到前面提到的相关引脚号。

analogValue变量是存储模拟输入的值的地方。然后,进行计算(我在后面解释),并将计算结果存储到一个名为voltage 的变量中。

最后,ledDelay是希望LED在关闭前保持开启的时间。

int greenLed = 2;
int yellowLed = 3;
int redLed = 4;

int analogValue = 0;
float voltage = 0;
int ledDelay = 1000;

设置函数被调用一次,是设置所有引脚的最佳场所。在这个特定的程序中,只需要将所有的LED引脚设置为输出。

void setup()
{
  pinMode(greenLed, OUTPUT);
  pinMode(yellowLed,OUTPUT);
  pinMode(redLed,OUTPUT);
}

在循环函数里面,会做几件事。首先,读取模拟引脚,这个引脚的值在0-1023之间。需要做一个计算,将其转换为一个变量,所以只要将analogValue乘以0.0048就可以了。

void loop()
{
  analogValue = analogRead(A0);
  voltage = 0.0048*analogValue;

最后这部分比较计算出的电压,将其与定义的电压值进行比较。每当电压落在一组值之间时,就打开相应的LED。


  if( voltage >= 1.6 )
    digitalWrite(greenLed, HIGH);
  else if (voltage > 1.2 && voltage < 1.6)
    digitalWrite(yellowLed, HIGH);
  else if( voltage <= 1.2)
    digitalWrite(redLed, HIGH);  
 
  delay(ledDelay);
  digitalWrite(redLed, LOW);
  digitalWrite(yellowLed, LOW); 
  digitalWrite(greenLed, LOW);
}

完成电路后,只需将Arduino插入电脑并上传代码。然后可以继续到测试和检查它的工作是否正常。

测试电路和代码

第一次打开并将新代码部署到Arduino时,应该会注意LED一致在跳跃闪烁。这是因为模拟输入线是悬空的,拾取噪音导致我程序检测到假的高电位。

要停止跳动,可以简单地将模拟线接地到地轨上,也可以尝试将其他模拟引脚接地,来减少它所接收的噪声。

测试时,只需将电池接上两根线即可。将地线接到电池的负极,正线接到电池的正极。

Arduino应该接收到电压并让相关的LED灯亮起。

项目扩展

本教程只是涵盖了使用Arduino设置电池测量仪非常基本的内容,但还可以把它扩展得更好,成为真正有用的设备。

一种改进是将输出打印到Arduino的LCD屏幕上,而不是使用LED,这可以显示更准确的信息。

也可以加一个合适的电池支架,而不是用两根线来检查电池。这可能会使它更安全一些,并让它看起来更像一个专业的电池测试仪装置。

希望你按照教程已经顺利完成了电池测量仪的搭建,如果你遇到任何问题或有任何其他想分享的东西,欢迎在下面留言讨论。

平均: 4 / 5. votes: 1

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » Arduino如何测量电源电量,制作简单的电池测试仪

赞 (0)

评论

8+1=