0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于用Arduino开发板电池电压监测方案

电子设计 来源:一板网 作者:风筝 2021-01-09 11:51 次阅读

电池有一定的电压限制,如果电压在充电或放电时超出规定的限制,电池的使用寿命就会受到影响或降低。每当我们在项目中使用电池供电时,有时我们需要检查电池的电压电量,确定是否需要充电或更换。本篇文章将帮助您如何使用Arduino开发板监测电池电压。该电池电压指示器可以指示电池状态,并且能够根据电池的不同电压在10段LED光柱上点亮LED。它还将一个LCD连接到Arduino开发板,并在LCD上显示电池电压。

所需的材料

● Arduino UNO开发板

● 10段LED光柱显示器件

● LCD液晶显示模块(16 * 2)

● 10K的电位器

电阻(10个100ohm; 330ohm)

● 电池(将要被测试)

● 连接导线

● 适用于Arduino的12v适配器

电路原理

pIYBAF_5J8iAHecUAALHykgfMTM990.png

使用Arduino和LED光柱显示器件的电池电压指示器电路图

LED光柱显示

LED光柱显示器件采用工业标准尺寸,并且功耗低。光柱根据发光强度进行分类。该产品本身仍然符合RoHS标准。它具有高达2.6V的正向电压。每段功耗为65mW。 LED光柱显示的工作温度为-40℃至80℃。LED光柱显示器件有很多的应用,如音频设备、仪表板和数字读出显示器等。

以下是LED光柱显示器件的引脚图:

pIYBAF_5J9SABPDwAABTf3-8T08708.png

以下是LED光柱显示器件的引脚配置:

pIYBAF_5J-GACTzPAAD-VgCUaPc293.png


Arduino电池电压监测程序

在本文的末尾处给出了完整的Arduino代码。这里我们简单解释代码的一些重要部分。

在这里,我们定义LCD库并指定用于Arduino的LCD引脚。模拟输入取自A4引脚,用于检查电池电压。我们将该值设置为Float,以使电压达到两位小数。

#include

const int rs = 12, en = 13, d4 = A0, d5 = A1, d6 = A2, d7 = A3;

LiquidCrystal lcd(rs, en, d0, d1, d2, d3);

const int analogPin = A4;

float analogValue;

float input_voltage;

以下数组用于将引脚分配给LED光柱显示器件。

int ledPins[] = {

2, 3, 4, 5, 6, 7, 8, 9, 10, 11

}; // an array of pin numbers to which LEDs are attached

int pinCount = 10; // the number of pins (i.e. the length of the array)

将LCD和模拟引脚(A0、A1、A2、A3)设置为OUTPUT引脚。

void setup()

{

Serial.begin(9600); //opens serial port, sets data rate to 9600 bps

lcd.begin(16, 2); //// set up the LCD's number of columns and rows:

pinMode(A0,OUTPUT);

pinMode(A1,OUTPUT);

pinMode(A2,OUTPUT);

pinMode(A3,OUTPUT);

pinMode(A4,INPUT);

lcd.print("Voltage Level");

}

这里,我们编写一个函数,以一种简单的方式使用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上进一步显示。

//Conversion formula for voltage

analogValue = analogRead (A4);

Serial.println(analogValue);

delay (1000);

input_voltage = (analogValue * 5.0) / 1024.0;

lcd.setCursor(0, 1);

lcd.print("Voltage= ");

lcd.print(input_voltage);

Serial.println(input_voltage);

delay(100);

根据输入电压的值,我们给出了一些条件来控制LED光柱显示器件。您可以在代码中查看以下条件:

if (input_voltage < 0.50 && input_voltage >= 0.00 )

{

digitalWrite(2, HIGH);

delay (30);

digitalWrite(2, LOW);

delay (30); // when the voltage is zero or low the 1st LED will indicate by blinking

}

else if (input_voltage < 1.00 && input_voltage >= 0.50)

{

LED_function(2);

}

else if (input_voltage < 1.50 && input_voltage >= 1.00)

{

LED_function(3);

}

else if (input_voltage < 2.00 && input_voltage >= 1.50)

{

LED_function(4);

}

else if (input_voltage < 2.50 && input_voltage >= 2.00)

{

LED_function(5);

}

else if (input_voltage < 3.00 && input_voltage >= 2.50)

{

LED_function(6);

}

else if (input_voltage < 3.50 && input_voltage >= 3.00)

{

LED_function(7);

}

else if (input_voltage < 4.00 && input_voltage >= 3.50)

{

LED_function(8);

}

else if (input_voltage < 4.50 && input_voltage >= 4.00)

{

LED_function(9);

}

else if (input_voltage < 5.00 && input_voltage >= 4.50)

{

LED_function(10);

}

}

电池电压指示器的工作

电池电压指示器只需读取Arduino的模拟引脚的值,并使用模数转换(ADC)公式将其转换为数字值即可。 Arduino Uno的ADC具有10位分辨率(所以整数值从0 - 2 ^ 10 = 1024)。 这意味着它将0到5伏的输入电压映射到0到1023之间的整数值。所以如果我们将输入模拟电压anlogValue乘以(5/1024),那么我们就可以得到输入电压的数字值。 在这里,我们学习了如何在Arduino中使用ADC输入。 然后使用该数字值相应地点亮LED光柱显示器件。

编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • lcd
    lcd
    +关注

    关注

    34

    文章

    4437

    浏览量

    168031
  • 液晶显示
    +关注

    关注

    6

    文章

    588

    浏览量

    40361
  • 电池电压
    +关注

    关注

    0

    文章

    195

    浏览量

    11755
  • Arduino
    +关注

    关注

    188

    文章

    6477

    浏览量

    187497
收藏 人收藏

    评论

    相关推荐

    瑞芯微主板/开发板Linux系统播放音频方法,触觉智能RK3562开发板演示

    本文介绍瑞芯微方案主板/开发板Linux系统播放音频的方法,触觉智能RK3562开发板演示,通用RK3566、RK3568、RK3588等
    的头像 发表于 12-13 11:40 295次阅读
    瑞芯微主板/<b class='flag-5'>开发板</b>Linux系统播放音频方法,触觉智能RK3562<b class='flag-5'>开发板</b>演示

    Arduino Nano Matter开发板正式上市

    Silicon Labs(芯科科技)和Arduino在近日共同宣布Arduino Nano Matter开发板现已正式上市。这是延续今年3 月芯科科技和Arduino释出
    的头像 发表于 12-10 13:50 277次阅读

    基于Arduino的串口通信项目

    基于Arduino的串口通信项目涉及多个方面,包括硬件连接、软件编程、串口参数配置等。 一、硬件准备 Arduino开发板 :确保你有一块Arduino
    的头像 发表于 11-22 09:24 780次阅读

    【迅为】瑞芯微RK3588开发板RK3568开发板区别及优势

    RK3568开发板
    的头像 发表于 11-18 14:19 524次阅读
    【迅为】瑞芯微RK3588<b class='flag-5'>开发板</b>RK3568<b class='flag-5'>开发板</b>区别及优势

    基于哪吒开发板部署YOLOv8模型

    2024英特尔 “走近开发者”互动活动-哪吒开发套件免费试 AI 创新计划:哪吒开发板是专为支持入门级边缘 AI 应用程序和设备而设计,能够满足人工智能学习、
    的头像 发表于 11-15 14:13 360次阅读
    基于哪吒<b class='flag-5'>开发板</b>部署YOLOv8模型

    正点原子fpga开发板不同型号

    正点原子作为国内领先的FPGA开发板供应商,其产品线覆盖了从入门级到高端应用的各个领域。这些开发板不仅适用于学术研究,还广泛应用于工业控制、通信、图像处理等多个领域。 1. 入门级开发板 1.1
    的头像 发表于 11-13 09:30 1099次阅读

    Air700E开发板+毫米波雷达,手搓了一个睡眠监测

    Air700E开发板+毫米波雷达,手搓一个开箱即用的睡眠监测仪,不花冤枉钱!
    的头像 发表于 10-05 14:43 300次阅读
    <b class='flag-5'>用</b>Air700E<b class='flag-5'>开发板</b>+毫米波雷达,手搓了一个睡眠<b class='flag-5'>监测</b>仪

    51开发板芯片资料

    51开发板芯片资料
    发表于 09-18 09:29 1次下载

    RISC-V有没有类似Arduino那样的开发板

    使用ARduino开发,由于有第三方提供的库支持,在开发上非常方便。RISC-V有没有在Arduino IDE上可以使用的开发板
    发表于 06-23 12:32

    鸿蒙OpenHarmony开发板解析:【芯片解决方案

    芯片解决方案是指基于某款开发板的完整解决方案,包含驱动、设备侧接口适配、开发板sdk等。
    的头像 发表于 05-10 15:42 1291次阅读
    鸿蒙OpenHarmony<b class='flag-5'>开发板</b>解析:【芯片解决<b class='flag-5'>方案</b>】

    SiliconLabs携手Arduino演示基于MGM240模块的新型Nano Matter开发板

    Arduino Nano Matter开发板,从而将Matter协议引入Arduino生态系统,为广大的开发人员提供一个快速涉足Matter互联互通设计的绝佳途径。
    的头像 发表于 04-11 17:35 689次阅读
    SiliconLabs携手<b class='flag-5'>Arduino</b>演示基于MGM240模块的新型Nano Matter<b class='flag-5'>开发板</b>

    fpga开发板是什么?fpga开发板有哪些?

    FPGA开发板是一种基于FPGA(现场可编程门阵列)技术的开发平台,它允许工程师通过编程来定义和配置FPGA芯片上的逻辑电路,以实现各种数字电路和逻辑功能。FPGA开发板通常包括FPGA芯片、时钟模块、电源模块、输入输出接口等组
    的头像 发表于 03-14 18:20 2104次阅读

    fpga开发板使用教程

    FPGA开发板的使用教程主要包括以下几个关键步骤。
    的头像 发表于 03-14 15:50 1216次阅读

    fpga开发板与linux开发板区别

    FPGA开发板与Linux开发板是两种不同的硬件开发平台,各自具有不同的特点和应用场景。在以下的文章中,我将详细介绍FPGA开发板和Linux开发板
    的头像 发表于 02-01 17:09 2374次阅读

    迅为RK3588开发板-智慧能源行业的解决方案

    迅为RK3588开发板-智慧能源行业的解决方案
    的头像 发表于 01-24 15:26 633次阅读
    迅为RK3588<b class='flag-5'>开发板</b>-智慧能源行业的解决<b class='flag-5'>方案</b>