0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于用Arduino開發(fā)板電池電壓監(jiān)測(cè)方案

電子設(shè)計(jì) ? 來源:一板網(wǎng) ? 作者:風(fēng)箏 ? 2021-01-09 11:51 ? 次閱讀

電池有一定的電壓限制,如果電壓在充電或放電時(shí)超出規(guī)定的限制,電池的使用壽命就會(huì)受到影響或降低。每當(dāng)我們?cè)陧?xiàng)目中使用電池供電時(shí),有時(shí)我們需要檢查電池的電壓電量,確定是否需要充電或更換。本篇文章將幫助您如何使用Arduino開發(fā)板監(jiān)測(cè)電池電壓。該電池電壓指示器可以指示電池狀態(tài),并且能夠根據(jù)電池的不同電壓在10段LED光柱上點(diǎn)亮LED。它還將一個(gè)LCD連接到Arduino開發(fā)板,并在LCD上顯示電池電壓。

所需的材料

● Arduino UNO開發(fā)板

● 10段LED光柱顯示器件

● LCD液晶顯示模塊(16 * 2)

● 10K的電位器

電阻(10個(gè)100ohm; 330ohm)

● 電池(將要被測(cè)試)

● 連接導(dǎo)線

● 適用于Arduino的12v適配器

電路原理

pIYBAF_5J8iAHecUAALHykgfMTM990.png

使用Arduino和LED光柱顯示器件的電池電壓指示器電路圖

LED光柱顯示

LED光柱顯示器件采用工業(yè)標(biāo)準(zhǔn)尺寸,并且功耗低。光柱根據(jù)發(fā)光強(qiáng)度進(jìn)行分類。該產(chǎn)品本身仍然符合RoHS標(biāo)準(zhǔn)。它具有高達(dá)2.6V的正向電壓。每段功耗為65mW。 LED光柱顯示的工作溫度為-40℃至80℃。LED光柱顯示器件有很多的應(yīng)用,如音頻設(shè)備、儀表板和數(shù)字讀出顯示器等。

以下是LED光柱顯示器件的引腳圖:

pIYBAF_5J9SABPDwAABTf3-8T08708.png

以下是LED光柱顯示器件的引腳配置:

pIYBAF_5J-GACTzPAAD-VgCUaPc293.png


Arduino電池電壓監(jiān)測(cè)程序

在本文的末尾處給出了完整的Arduino代碼。這里我們簡(jiǎn)單解釋代碼的一些重要部分。

在這里,我們定義LCD庫(kù)并指定用于Arduino的LCD引腳。模擬輸入取自A4引腳,用于檢查電池電壓。我們將該值設(shè)置為Float,以使電壓達(dá)到兩位小數(shù)。

#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;

以下數(shù)組用于將引腳分配給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)設(shè)置為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");

}

這里,我們編寫一個(gè)函數(shù),以一種簡(jiǎn)單的方式使用LED光柱顯示器件,您甚至也可以通過逐一編程來點(diǎn)亮LED,但代碼會(huì)變得冗長(zhǎng)。

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);

}

}

在這一部分中,我們使用模擬引腳讀取電壓值。然后,我們使用模數(shù)轉(zhuǎn)換公式將模擬值轉(zhuǎn)換為數(shù)字電壓值,并在LCD上進(jìn)一步顯示。

//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);

根據(jù)輸入電壓的值,我們給出了一些條件來控制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的模擬引腳的值,并使用模數(shù)轉(zhuǎn)換(ADC)公式將其轉(zhuǎn)換為數(shù)字值即可。 Arduino Uno的ADC具有10位分辨率(所以整數(shù)值從0 - 2 ^ 10 = 1024)。 這意味著它將0到5伏的輸入電壓映射到0到1023之間的整數(shù)值。所以如果我們將輸入模擬電壓anlogValue乘以(5/1024),那么我們就可以得到輸入電壓的數(shù)字值。 在這里,我們學(xué)習(xí)了如何在Arduino中使用ADC輸入。 然后使用該數(shù)字值相應(yīng)地點(diǎn)亮LED光柱顯示器件。

編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • lcd
    lcd
    +關(guān)注

    關(guān)注

    34

    文章

    4363

    瀏覽量

    166201
  • 液晶顯示
    +關(guān)注

    關(guān)注

    6

    文章

    581

    瀏覽量

    40147
  • 電池電壓
    +關(guān)注

    關(guān)注

    0

    文章

    194

    瀏覽量

    11578
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6453

    瀏覽量

    185927
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    51開發(fā)板芯片資料

    51開發(fā)板芯片資料
    發(fā)表于 09-18 09:29 ?1次下載

    RISC-V有沒有類似Arduino那樣的開發(fā)板

    使用ARduino開發(fā),由于有第三方提供的庫(kù)支持,在開發(fā)上非常方便。RISC-V有沒有在Arduino IDE上可以使用的開發(fā)板
    發(fā)表于 06-23 12:32

    鴻蒙OpenHarmony開發(fā)板解析:【芯片解決方案

    芯片解決方案是指基于某款開發(fā)板的完整解決方案,包含驅(qū)動(dòng)、設(shè)備側(cè)接口適配、開發(fā)板sdk等。
    的頭像 發(fā)表于 05-10 15:42 ?961次閱讀
    鴻蒙OpenHarmony<b class='flag-5'>開發(fā)板</b>解析:【芯片解決<b class='flag-5'>方案</b>】

    SiliconLabs攜手Arduino演示基于MGM240模塊的新型Nano Matter開發(fā)板

    Arduino Nano Matter開發(fā)板,從而將Matter協(xié)議引入Arduino生態(tài)系統(tǒng),為廣大的開發(fā)人員提供一個(gè)快速涉足Matter互聯(lián)互通設(shè)計(jì)的絕佳途徑。
    的頭像 發(fā)表于 04-11 17:35 ?480次閱讀
    SiliconLabs攜手<b class='flag-5'>Arduino</b>演示基于MGM240模塊的新型Nano Matter<b class='flag-5'>開發(fā)板</b>

    fpga開發(fā)板是什么?fpga開發(fā)板有哪些?

    FPGA開發(fā)板是一種基于FPGA(現(xiàn)場(chǎng)可編程門陣列)技術(shù)的開發(fā)平臺(tái),它允許工程師通過編程來定義和配置FPGA芯片上的邏輯電路,以實(shí)現(xiàn)各種數(shù)字電路和邏輯功能。FPGA開發(fā)板通常包括FPGA芯片、時(shí)鐘模塊、電源模塊、輸入輸出接口等組
    的頭像 發(fā)表于 03-14 18:20 ?1495次閱讀

    fpga開發(fā)板使用教程

    FPGA開發(fā)板的使用教程主要包括以下幾個(gè)關(guān)鍵步驟。
    的頭像 發(fā)表于 03-14 15:50 ?783次閱讀

    fpga開發(fā)板與linux開發(fā)板區(qū)別

    FPGA開發(fā)板與Linux開發(fā)板是兩種不同的硬件開發(fā)平臺(tái),各自具有不同的特點(diǎn)和應(yīng)用場(chǎng)景。在以下的文章中,我將詳細(xì)介紹FPGA開發(fā)板和Linux開發(fā)板
    的頭像 發(fā)表于 02-01 17:09 ?1676次閱讀

    迅為RK3588開發(fā)板-智慧能源行業(yè)的解決方案

    迅為RK3588開發(fā)板-智慧能源行業(yè)的解決方案
    的頭像 發(fā)表于 01-24 15:26 ?444次閱讀
    迅為RK3588<b class='flag-5'>開發(fā)板</b>-智慧能源行業(yè)的解決<b class='flag-5'>方案</b>

    小安派Arduino開發(fā)板 ,全新支持以太網(wǎng)口

    前面幾款小安派出來的時(shí)候,經(jīng)常有粉絲詢問是否支持Arduino?其它款小安派也是支持的,大家可以去安信可社區(qū)搜索查看,小安派-UNO-ET485 Arduino開發(fā)板來了,兼容UNO的經(jīng)典外形,易
    的頭像 發(fā)表于 12-06 16:00 ?616次閱讀
    小安派<b class='flag-5'>Arduino</b><b class='flag-5'>開發(fā)板</b> ,全新支持以太網(wǎng)口

    基于全志XR806開發(fā)板的家用環(huán)境監(jiān)測(cè)傳感器設(shè)計(jì)

    本文來自全志XR806開發(fā)板評(píng)測(cè)活動(dòng)文章,作者使用XR806開發(fā)板制作一個(gè)簡(jiǎn)單的家用環(huán)境監(jiān)測(cè)傳感器,可以獲取當(dāng)前的溫度、濕度、氣壓、海拔這四個(gè)參數(shù),同時(shí)能夠通過外部的屏幕實(shí)時(shí)顯示刷新。
    的頭像 發(fā)表于 12-03 10:20 ?564次閱讀
    基于全志XR806<b class='flag-5'>開發(fā)板</b>的家用環(huán)境<b class='flag-5'>監(jiān)測(cè)</b>傳感器設(shè)計(jì)

    小安派-UNO-ET485 Arduino開發(fā)板簡(jiǎn)介

    前面幾款小安派出來的時(shí)候,經(jīng)常有粉絲詢問是否支持Arduino?其它款小安派也是支持的,大家可以去安信可社區(qū)搜索查看,小安派-UNO-ET485 Arduino開發(fā)板來了,兼容UNO的經(jīng)典外形,易上手。
    的頭像 發(fā)表于 12-03 09:58 ?762次閱讀
    小安派-UNO-ET485 <b class='flag-5'>Arduino</b><b class='flag-5'>開發(fā)板</b>簡(jiǎn)介

    Arduino IDE打開開發(fā)板管理器搜索Arduino SAM的開發(fā)板不能找到怎么解決?

    Arduino IDE打開開發(fā)板管理器搜索Arduino SAM的開發(fā)板不能找到怎么解決 可能被墻 也沒有其他源可以替換 或者手動(dòng)安裝這個(gè)開發(fā)板
    發(fā)表于 11-10 08:29

    arduino開發(fā)板12v輸入可以嗎?

    arduino開發(fā)板12v輸入可以嗎,開發(fā)板5v輸出端可能喲300mA的電流,請(qǐng)問板子上的1117能承受那么大的功率嗎
    發(fā)表于 11-08 07:51

    聲控遙控汽車需要什么Arduino開發(fā)板?

    聲控遙控汽車需要什么Arduino開發(fā)板?
    發(fā)表于 11-01 06:21

    國(guó)民技術(shù)N32系列開發(fā)板資料合集

    本專題為國(guó)民技術(shù)N32系列開源移植挑戰(zhàn)賽配套資料,包含了N32G45x開發(fā)板、N32G43x開發(fā)板和N32G430開發(fā)板等7款開發(fā)板的詳細(xì)資料
    發(fā)表于 10-08 14:21
    國(guó)民技術(shù)N32系列<b class='flag-5'>開發(fā)板</b>資料合集