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
    +关注

    关注

    36

    文章

    4638

    浏览量

    178489
  • 液晶显示
    +关注

    关注

    6

    文章

    605

    浏览量

    41722
  • 电池电压
    +关注

    关注

    0

    文章

    215

    浏览量

    12337
  • Arduino
    +关注

    关注

    191

    文章

    6535

    浏览量

    197759
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    EPC9154开发板:高效脉冲激光二极管驱动解决方案

    电流脉冲驱动激光二极管提供了优秀的解决方案。 文件下载: EPC9154.pdf 一、开发板概述 EPC9154开发板主要用于驱动短高电流脉冲的激光二极管,具备最小脉冲宽度小于2 ns、峰值电流大于10 A以及30 V的总线
    的头像 发表于 05-14 15:45 102次阅读

    EPC9097开发板快速上手指南

    。 文件下载: EPC9097.pdf 一、开发板概述 EPC9097开发板是一款最大器件电压为100 V、最大输出电流为20 A的半桥开发板,采用了EPC2204 GaN场效应晶体管
    的头像 发表于 05-14 15:05 286次阅读

    EPC9032开发板快速上手指南

    (FET)提供了便捷的解决方案。 文件下载: EPC9032.pdf 开发板概述 EPC9032开发板的最大器件电压为40 V,最大输出电流为40 A,采用半桥结构并集成了栅极驱动器,
    的头像 发表于 05-14 14:40 246次阅读

    EPC9013开发板:高电流应用的高效评估方案

    EPC9013开发板:高电流应用的高效评估方案 在电子工程领域,对于高电流应用的评估和开发,一款合适的开发板至关重要。今天,我们就来详细了解一下EPC9013
    的头像 发表于 05-14 14:05 234次阅读

    EPC90154开发板快速上手指南

    开发板,下面将从多个方面为大家介绍其特性、使用方法及相关注意事项。 文件下载: EPC90154.pdf 一、开发板概述 EPC90154是一款带有板载栅极驱动器的半桥开发板,采用了额定电压
    的头像 发表于 05-14 13:25 173次阅读

    Adafruit 1-Wire GPIO Breakout - DS2413 开发板使用指南

    。Adafruit 的 DS2413 1-Wire GPIO 开发板就是解决这个问题的理想方案。下面就为大家详细介绍这款开发板的相关信息。 文件下载: 1551.pdf 一、概述 DS2413
    的头像 发表于 05-10 16:05 324次阅读

    MCU 开发板大比拼:STM32、ESP32、Arduino、树莓派谁更强?

    嵌入式开发板琳琅满目,STM32、ESP32、Arduino、RaspberryPi各有特色。新手容易纠结:到底哪块适合我的项目?本文整理了一份开发板对比速查表,帮你快速理清思路。一
    的头像 发表于 01-09 19:03 1667次阅读
    MCU <b class='flag-5'>开发板</b>大比拼:STM32、ESP32、<b class='flag-5'>Arduino</b>、树莓派谁更强?

    STM32 Nucleo-144开发板技术解析与应用指南

    。 STMicroelectronics开发板支持多种连接选项,包括Arduino、ST Zio和Morpho,同时集成了开关模式电源(SMPS),可实现高效的电源管理。该非常适合用于测试不同的性能和功耗配置,因此成为探索想
    的头像 发表于 10-17 14:40 1678次阅读
    STM32 Nucleo-144<b class='flag-5'>开发板</b>技术解析与应用指南

    ‌STM32 Nucleo-64开发板技术解析与应用指南

    STMicroelectronics -C051C8 STM32 Nucleo-64开发板通过由STM32微控制器为概念测试和原型创建提供了一种经济实惠且灵活的途径。该开发板支持ARDUINO
    的头像 发表于 10-16 10:50 1142次阅读
    ‌STM32 Nucleo-64<b class='flag-5'>开发板</b>技术解析与应用指南

    如何用Arduino Nano/UNO R3开发板给另一个Arduino IDE不能下载的Arduino Nano/UNO R3开发板重新烧录引导程序bootlaoder

    本文介绍了如何用能够Arduino IDE下载的Arduino Nano/UNO R3开发板给另一个Arduino IDE不能下载的Arduino
    的头像 发表于 08-08 20:16 4123次阅读
    如何用<b class='flag-5'>Arduino</b> Nano/UNO R3<b class='flag-5'>开发板</b>给另一个<b class='flag-5'>Arduino</b> IDE不能下载的<b class='flag-5'>Arduino</b> Nano/UNO R3<b class='flag-5'>开发板</b>重新烧录引导程序bootlaoder

    基于米尔全志T536开发板的多协议物联网关的方案测试

    本文将介绍基于米尔电子MYD-LT536开发板(米尔基于全志T536开发板)的多协议物联网关方案开发测试。摘自优秀创作者-ALSET米尔基于全志T536
    的头像 发表于 06-19 08:03 2454次阅读
    基于米尔全志T536<b class='flag-5'>开发板</b>的多协议物联网关的<b class='flag-5'>方案</b>测试

    有ARM,NPU,FPGA三种核心的开发板 — 米尔安路飞龙派开发板

    ,是A股首家专注于FPGA业务的上市公司。YM90X开发板的就是安路的SALDRAGON1(飞龙1,以下简称DR1)系列FPSoC。FPSoC就是将ARM、NPU和
    的头像 发表于 06-13 08:03 2133次阅读
    有ARM,NPU,FPGA三种核心的<b class='flag-5'>开发板</b> — 米尔安路飞龙派<b class='flag-5'>开发板</b>

    【新品】远距离图传数传模块开发板、蓝牙模块开发板、无线模块开发板

    新品上市图传数传模块开发板蓝牙模块开发板国产无线模块开发板部分型号参与送样文末了解详情↓↓↓EWT611-900NW20S远距离图传数传模块开发板EWT611-900NW20S是一款入
    的头像 发表于 06-12 19:33 1564次阅读
    【新品】远距离图传数传模块<b class='flag-5'>开发板</b>、蓝牙模块<b class='flag-5'>开发板</b>、无线模块<b class='flag-5'>开发板</b>

    【免费试用】开发板评测大赛开启!OH 、RISC-V、Rockchip顶级开发板等你试用~

    道OpenHarmony、RISC-V、Rockchip(下称RK)全面覆盖前沿技术方向,等你代码与创意点燃科技未来!——点击开发板图片立即申请————点击开发板图片立即申请———
    的头像 发表于 06-05 08:05 1285次阅读
    【免费试用】<b class='flag-5'>开发板</b>评测大赛开启!OH 、RISC-V、Rockchip顶级<b class='flag-5'>开发板</b>等你试用~

    基于米尔全志T536开发板的视频识别应用方案

    本文将介绍基于米尔电子MYD-LT536开发板(米尔基于全志T536开发板)的视频识别应用方案测试。摘自优秀创作者-鲁治驿基于米尔-全志T536开发板的视频识别程序
    的头像 发表于 06-05 08:01 2653次阅读
    基于米尔全志T536<b class='flag-5'>开发板</b>的视频识别应用<b class='flag-5'>方案</b>