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

    文章

    4578

    浏览量

    175798
  • 液晶显示
    +关注

    关注

    6

    文章

    602

    浏览量

    41408
  • 电池电压
    +关注

    关注

    0

    文章

    215

    浏览量

    12217
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

    STMicroelectronics -C051C8 STM32 Nucleo-64开发板通过由STM32微控制器为概念测试和原型创建提供了一种经济实惠且灵活的途径。该开发板支持ARDUINO
    的头像 发表于 10-16 10:50 404次阅读
    ‌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 3059次阅读
    如何用<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 1473次阅读
    基于米尔全志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 1357次阅读
    有ARM,NPU,FPGA三种核心的<b class='flag-5'>开发板</b> — 米尔安路飞龙派<b class='flag-5'>开发板</b>

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

    新品上市图传数传模块开发板蓝牙模块开发板国产无线模块开发板部分型号参与送样文末了解详情↓↓↓EWT611-900NW20S远距离图传数传模块开发板EWT611-900NW20S是一款入
    的头像 发表于 06-12 19:33 893次阅读
    【新品】远距离图传数传模块<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 748次阅读
    【免费试用】<b class='flag-5'>开发板</b>评测大赛开启!OH 、RISC-V、Rockchip顶级<b class='flag-5'>开发板</b>等你试用~

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

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

    技术分享|iTOP-RK3588开发板Ubuntu20系统旋转屏幕方案

    技术分享|iTOP-RK3588开发板Ubuntu20系统旋转屏幕方案
    的头像 发表于 04-18 15:19 1054次阅读
    技术分享|iTOP-RK3588<b class='flag-5'>开发板</b>Ubuntu20系统旋转屏幕<b class='flag-5'>方案</b>

    如何在米尔-STM32MP257开发板上实现环境监测系统

    本文将介绍基于米尔电子MYD-LD25X开发板(米尔基于STM35MP257开发板)的环境监测系统方案测试。摘自优秀创作者-lugl4313820一、前言环境
    的头像 发表于 04-17 08:06 2367次阅读
    如何在米尔-STM32MP257<b class='flag-5'>开发板</b>上实现环境<b class='flag-5'>监测</b>系统

    STM32开发板一般都会配置arduino接口,是不是基本上也都会支持arduino

    STM32开发板一般都会配置arduino接口,是不是基本上也都会支持arduino?这个在哪里可以查询开发板是否支持
    发表于 03-07 06:33

    AI人脸识别开发板BW21-CBV-Kit驱动墨水屏

    试着BW21-CBV-Kit点亮2.9寸墨水屏,开发板例程非常丰富,在arduino开发的话上手超级容易。
    的头像 发表于 03-04 18:24 1529次阅读
    <b class='flag-5'>用</b>AI人脸识别<b class='flag-5'>开发板</b>BW21-CBV-Kit驱动墨水屏

    通过Arduino Nano Matter开发板构建智能卷帘系统

    在本指南中,您将学习如何通过Arduino NanoMatter开发板上的Silicon Labs(芯科科技)MGM240S多协议无线模块来构建一个智能卷帘系统。该系统可通过 Amazon
    的头像 发表于 02-28 09:46 914次阅读
    通过<b class='flag-5'>Arduino</b> Nano Matter<b class='flag-5'>开发板</b>构建智能卷帘系统

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

    本文介绍瑞芯微方案主板/开发板Linux系统播放音频的方法,触觉智能RK3562开发板演示,通用RK3566、RK3568、RK3588等
    的头像 发表于 12-13 11:40 1400次阅读
    瑞芯微主板/<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 1429次阅读