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

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

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

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

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

電池有一定的電壓限制,如果電壓在充電或放電時(shí)超出規(guī)定的限制,電池的使用壽命就會受到影響或降低。每當(dāng)我們在項(xiàng)目中使用電池供電時(shí),有時(shí)我們需要檢查電池的電壓電量,確定是否需要充電或更換。本篇文章將幫助您如何使用Arduino開發(fā)板監(jiān)測電池電壓。該電池電壓指示器可以指示電池狀態(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)

● 電池(將要被測試)

● 連接導(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)測程序

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

在這里,我們定義LCD庫并指定用于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ù),以一種簡單的方式使用LED光柱顯示器件,您甚至也可以通過逐一編程來點(diǎn)亮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);

}

}

在這一部分中,我們使用模擬引腳讀取電壓值。然后,我們使用模數(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)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • lcd
    lcd
    +關(guān)注

    關(guān)注

    34

    文章

    4429

    瀏覽量

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

    關(guān)注

    6

    文章

    588

    瀏覽量

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

    關(guān)注

    0

    文章

    195

    瀏覽量

    11740
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6472

    瀏覽量

    187319
收藏 人收藏

    評論

    相關(guān)推薦

    瑞芯微主板/開發(fā)板Linux系統(tǒng)播放音頻方法,觸覺智能RK3562開發(fā)板演示

    本文介紹瑞芯微方案主板/開發(fā)板Linux系統(tǒng)播放音頻的方法,觸覺智能RK3562開發(fā)板演示,通用RK3566、RK3568、RK3588等
    的頭像 發(fā)表于 12-13 11:40 ?250次閱讀
    瑞芯微主板/<b class='flag-5'>開發(fā)板</b>Linux系統(tǒng)播放音頻方法,觸覺智能RK3562<b class='flag-5'>開發(fā)板</b>演示

    Arduino Nano Matter開發(fā)板正式上市

    Silicon Labs(芯科科技)和Arduino在近日共同宣布Arduino Nano Matter開發(fā)板現(xiàn)已正式上市。這是延續(xù)今年3 月芯科科技和Arduino釋出
    的頭像 發(fā)表于 12-10 13:50 ?241次閱讀

    基于Arduino的串口通信項(xiàng)目

    基于Arduino的串口通信項(xiàng)目涉及多個(gè)方面,包括硬件連接、軟件編程、串口參數(shù)配置等。 一、硬件準(zhǔn)備 Arduino開發(fā)板 :確保你有一塊Arduino
    的頭像 發(fā)表于 11-22 09:24 ?699次閱讀

    【迅為】瑞芯微RK3588開發(fā)板RK3568開發(fā)板區(qū)別及優(yōu)勢

    RK3568開發(fā)板
    的頭像 發(fā)表于 11-18 14:19 ?456次閱讀
    【迅為】瑞芯微RK3588<b class='flag-5'>開發(fā)板</b>RK3568<b class='flag-5'>開發(fā)板</b>區(qū)別及優(yōu)勢

    基于哪吒開發(fā)板部署YOLOv8模型

    2024英特爾 “走近開發(fā)者”互動活動-哪吒開發(fā)套件免費(fèi)試 AI 創(chuàng)新計(jì)劃:哪吒開發(fā)板是專為支持入門級邊緣 AI 應(yīng)用程序和設(shè)備而設(shè)計(jì),能夠滿足人工智能學(xué)習(xí)、
    的頭像 發(fā)表于 11-15 14:13 ?300次閱讀
    基于哪吒<b class='flag-5'>開發(fā)板</b>部署YOLOv8模型

    正點(diǎn)原子fpga開發(fā)板不同型號

    正點(diǎn)原子作為國內(nèi)領(lǐng)先的FPGA開發(fā)板供應(yīng)商,其產(chǎn)品線覆蓋了從入門級到高端應(yīng)用的各個(gè)領(lǐng)域。這些開發(fā)板不僅適用于學(xué)術(shù)研究,還廣泛應(yīng)用于工業(yè)控制、通信、圖像處理等多個(gè)領(lǐng)域。 1. 入門級開發(fā)板 1.1
    的頭像 發(fā)表于 11-13 09:30 ?865次閱讀

    Air700E開發(fā)板+毫米波雷達(dá),手搓了一個(gè)睡眠監(jiān)測

    ? Air700E開發(fā)板+毫米波雷達(dá),手搓一個(gè)開箱即用的睡眠監(jiān)測儀,不花冤枉錢!
    的頭像 發(fā)表于 10-05 14:43 ?280次閱讀
    <b class='flag-5'>用</b>Air700E<b class='flag-5'>開發(fā)板</b>+毫米波雷達(dá),手搓了一個(gè)睡眠<b class='flag-5'>監(jiān)測</b>儀

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

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

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

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

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

    芯片解決方案是指基于某款開發(fā)板的完整解決方案,包含驅(qū)動、設(shè)備側(cè)接口適配、開發(fā)板sdk等。
    的頭像 發(fā)表于 05-10 15:42 ?1261次閱讀
    鴻蒙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 ?668次閱讀
    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)場可編程門陣列)技術(shù)的開發(fā)平臺,它允許工程師通過編程來定義和配置FPGA芯片上的邏輯電路,以實(shí)現(xiàn)各種數(shù)字電路和邏輯功能。FPGA開發(fā)板通常包括FPGA芯片、時(shí)鐘模塊、電源模塊、輸入輸出接口等組
    的頭像 發(fā)表于 03-14 18:20 ?2064次閱讀

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

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

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

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

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

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