91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

如何構(gòu)建基于Arduino的電壓指示器

454398 ? 來源:工程師吳畏 ? 2019-07-30 11:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

為什么電池電量監(jiān)控很重要

您是否經(jīng)歷過建設(shè)電池供電項(xiàng)目,然后突然無法工作,因?yàn)樾枰召M(fèi)?

我們都知道電池有一定的電壓限制。超過或完全失去電池電壓可能導(dǎo)致很多挫折,元件損壞或數(shù)據(jù)丟失。因此,能夠監(jiān)控電池電量以便您決定是否需要充電或更換電池不是很好嗎?這就是本讀者將為您做的事情!

需要的材料

Arduino Uno

16 x 2 LCD顯示器

LED條形圖/10個(gè)LED燈泡

Arduino IDE

4 x 1.2V電池

電池座

什么是LED條形圖?

LED條形圖是一個(gè)由10個(gè)獨(dú)立LED組成的LED陣列,帶有10個(gè)輸出引腳。它有各種應(yīng)用,包括音頻設(shè)備和工業(yè)控制面板。

在我們的項(xiàng)目中,我們將其用作電池電量指示器。與任何其他LED一樣,當(dāng)將LED條連接到微控制器時(shí),必須使用端到地的電阻將陽極引腳連接到正極和陰極引腳。

該項(xiàng)目如何測(cè)量電池電量?

很高興理解電池具有我們稱之為電量的電池。它可以理解為電池中包含的電壓量。

Arduino的模擬引腳充當(dāng)一個(gè)簡(jiǎn)單的電壓表,可以檢索電壓值。然后,我們可以使用ADC轉(zhuǎn)換公式將模擬值轉(zhuǎn)換為數(shù)字電壓值。

我們轉(zhuǎn)換的值將顯示在LED條形圖上,它可以投射強(qiáng)度。因此,如果所有十個(gè)LED都點(diǎn)亮,則電池處于全強(qiáng)度狀態(tài)。如果只有五個(gè)LED亮,則電池的強(qiáng)度為一半。

Arduino Uno ADC的分辨率為10位。 ADC轉(zhuǎn)換器將0到5伏之間的輸入電壓映射到0到1023之間的整數(shù)值。因此,如果我們將輸入analogValue乘以(5/1024),那么我們得到輸入電壓的數(shù)字值。

項(xiàng)目示意圖

下面是構(gòu)建的原理圖。

電池電量監(jiān)控代碼演練

首先,我們需要定義LCD庫并指定我們將與Arduino一起使用的引腳。我們將模擬引腳A4分配為用于檢查電池電壓的模擬引腳。這些值在float中設(shè)置,因此我們可以得到最多兩位小數(shù)的電壓值。

#include

const int rs = 12, en = 13, d0 = A0, d1 = A1, d2 = A2, d3 = A3;

const int analogPin = A4;

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

float analogValue;

float input_voltage;

然后,我們創(chuàng)建一個(gè)數(shù)組,用于將引腳分配給LED條形圖。連接LED的引腳編號(hào)數(shù)組。

int ledPins[] = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; // The LEDs attach to this array of pin numbers

int pinCount = 10; // the number of pins

我們將LCD和模擬引腳設(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”);

}

接下來,我們創(chuàng)建一個(gè)函數(shù), LED_function ,用于使用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);

}

}

一旦我們有了這個(gè)功能,我們需要一種方法將模擬值轉(zhuǎn)換成數(shù)字電壓值。通過使用Arduino的內(nèi)置模數(shù)轉(zhuǎn)換器和ADC轉(zhuǎn)換公式,我們將能夠輕松轉(zhuǎn)換這些值。我們還希望在LCD顯示屏上顯示這些轉(zhuǎ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);

然后我們創(chuàng)建一些條件來控制LED條形圖,相對(duì)于我們從模擬引腳讀取的輸入電壓值A(chǔ)4。

if (input_voltage 《 0.50 && input_voltage 》= 0.00 )

{

digitalWrite(2, HIGH);

delay (30);

digitalWrite(2, LOW);

delay (30);

}

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

}

在上圖中,您可以看到我們得到一個(gè)幾乎完全充電的電池讀數(shù),相當(dāng)于大約3.84V。

完整項(xiàng)目代碼

#include

const int rs = 12, en = 13, d0 = A0, d1 = A1, d2 = A2, d3 = A3;

const int analogPin = A4;

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

float analogValue;

float input_voltage;

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)

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

}

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

}

}

void loop()

{

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

if (input_voltage 《 0.50 && input_voltage 》= 0.00 )

{

digitalWrite(2, HIGH);

delay (30);

digitalWrite(2, LOW);

delay (30);

}

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

}

}

現(xiàn)在您不必?fù)?dān)心電池意外運(yùn)行不足。希望這有助于您的下一個(gè)電池供電項(xiàng)目!

聲明:本文內(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)投訴
  • 指示器
    +關(guān)注

    關(guān)注

    0

    文章

    260

    瀏覽量

    39322
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6526

    瀏覽量

    197083
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    線路暫態(tài)特征型遠(yuǎn)傳型故障指示器:“技術(shù)+管理”雙輪驅(qū)動(dòng)

    。本文從故障類型解析入手,結(jié)合鼎信智慧科技的線路暫態(tài)特征型遠(yuǎn)傳型故障指示器JYZ-DX,為運(yùn)維人員提供一套高效、精準(zhǔn)的故障定位方法。 一、配電線路常見故障類型及誘因 1、短路故障 :導(dǎo)體間或?qū)w與地間異常導(dǎo)通,電流激增
    的頭像 發(fā)表于 03-04 18:25 ?49次閱讀

    STM32H5開發(fā)VL53L8CX(4)----運(yùn)動(dòng)指示器

    VL53L8CX傳感內(nèi)置了一個(gè)固件功能,可以檢測(cè)場(chǎng)景中的運(yùn)動(dòng)。這個(gè)運(yùn)動(dòng)指示器是基于連續(xù)幀之間來計(jì)算的。使用插件vl53l8cx_plugin_motion_indicator可以使用這個(gè)選項(xiàng)
    的頭像 發(fā)表于 12-22 17:15 ?1707次閱讀
    STM32H5開發(fā)VL53L8CX(4)----運(yùn)動(dòng)<b class='flag-5'>指示器</b>

    VL53L8CX小板開發(fā)(4)----運(yùn)動(dòng)指示器

    VL53L8CX設(shè)備的引用。 配置運(yùn)動(dòng)指示器: ○ 使用4x4的分辨率初始化運(yùn)動(dòng)指示器。如果失敗,則打印錯(cuò)誤信息并返回狀態(tài)。 ○ 可選地更改用于檢測(cè)運(yùn)動(dòng)的最小和最大距離。這些距離有一些限制,如果超出
    的頭像 發(fā)表于 12-22 15:00 ?1.1w次閱讀
    VL53L8CX小板開發(fā)(4)----運(yùn)動(dòng)<b class='flag-5'>指示器</b>

    ?基于ST EVLIOL4LSV1 IO-Link執(zhí)行的工業(yè)物聯(lián)網(wǎng)技術(shù)解析

    STMicroelectronics EVLIOL4LSV1 IO-Link執(zhí)行設(shè)計(jì)用于工廠自動(dòng)化和系統(tǒng)報(bào)警指示器應(yīng)用中使用的傳統(tǒng)塔式燈:它是一套完整的解決方案,可用作工業(yè)化的參考設(shè)計(jì)。通過IO-Link,EVLIOL4LSV1成為智能塔式燈的執(zhí)行
    的頭像 發(fā)表于 10-17 15:25 ?600次閱讀
    ?基于ST EVLIOL4LSV1 IO-Link執(zhí)行<b class='flag-5'>器</b>的工業(yè)物聯(lián)網(wǎng)技術(shù)解析

    TPS563212同步降壓轉(zhuǎn)換技術(shù)解析與應(yīng)用指南

    的電源正常狀態(tài)指示器或外部軟啟動(dòng)。通過正確配置使能引腳、電源正常狀態(tài)指示器或外部軟啟動(dòng)可以實(shí)現(xiàn)電源時(shí)序控制。4.2V至18V的寬輸入電壓范圍支持12V和15V等各種常見的輸入電壓軌。其
    的頭像 發(fā)表于 09-26 10:22 ?708次閱讀
    TPS563212同步降壓轉(zhuǎn)換<b class='flag-5'>器</b>技術(shù)解析與應(yīng)用指南

    TPS562212同步降壓轉(zhuǎn)換技術(shù)解析與應(yīng)用指南

    軟啟動(dòng)。通過正確配置使能引腳、電源正常狀態(tài)指示器或外部軟啟動(dòng)可以實(shí)現(xiàn)電源時(shí)序控制。4.2V至18V的寬輸入電壓范圍支持12V和15V等各種常見的輸入電壓軌。其輸出電壓為0.6V至7V,
    的頭像 發(fā)表于 09-26 09:37 ?699次閱讀
    TPS562212同步降壓轉(zhuǎn)換<b class='flag-5'>器</b>技術(shù)解析與應(yīng)用指南

    德州儀器UCC256404技術(shù)方案 使用數(shù)字控制在次級(jí)側(cè)實(shí)現(xiàn)LLC電流模式控制

    歡迎來到 德州儀器的 電源設(shè)計(jì)小貼士 Power Tips 系列文章 ? 本期,我們將介紹 LLC 電流模式控制 的詳細(xì)知識(shí) ? 電流模式控制 LLC 注意事項(xiàng) 如圖 1 所示, 指示器 - 指示器
    的頭像 發(fā)表于 08-14 10:50 ?4318次閱讀
    德州儀器UCC256404技術(shù)方案  使用數(shù)字控制<b class='flag-5'>器</b>在次級(jí)側(cè)實(shí)現(xiàn)LLC電流模式控制

    TPS60140 穩(wěn)壓5V電荷泵電壓三倍,帶低電量指示器數(shù)據(jù)手冊(cè)

    TPS6014x 升壓穩(wěn)壓電荷泵可±從 1.8V至3.6V輸入電壓范圍。這些器件通常由兩個(gè)堿性、鎳鎘或 鎳氫電池,并從 2V 輸入提供至少 100 mA 的輸出電流。只有四個(gè) 需要外部電容器來構(gòu)建
    的頭像 發(fā)表于 08-04 15:33 ?951次閱讀
    TPS60140 穩(wěn)壓5V電荷泵<b class='flag-5'>電壓</b>三倍<b class='flag-5'>器</b>,帶低電量<b class='flag-5'>指示器</b>數(shù)據(jù)手冊(cè)

    TPS60124 穩(wěn)壓式 3.0V 高效電荷泵,帶低電量指示器數(shù)據(jù)手冊(cè)

    (TPS60122和 TPS60123 為 100 mA),所有這些都來自 2V 輸入。需要四個(gè)外部電容器來構(gòu)建一個(gè)完整的高效DC/DC電荷泵轉(zhuǎn)換。為了在寬輸入電壓范圍內(nèi)實(shí)現(xiàn)高效率,電荷泵自動(dòng)選擇1.5倍或倍頻轉(zhuǎn)換模式。通過2
    的頭像 發(fā)表于 08-04 11:10 ?1041次閱讀
    TPS60124 穩(wěn)壓式 3.0V 高效電荷泵,帶低電量<b class='flag-5'>指示器</b>數(shù)據(jù)手冊(cè)

    TPS60204 穩(wěn)壓 3.3V 低紋波電荷泵,帶低電量指示器數(shù)據(jù)手冊(cè)

    電流至少為 100 mA。只需四個(gè)外部電容器即可構(gòu)建完整的低紋波DC/DC轉(zhuǎn)換。兩個(gè)單端電荷泵的推挽式工作模式確保了低輸出電壓紋波,因?yàn)殡娏鬟B續(xù)傳輸?shù)捷敵龆恕?/div>
    的頭像 發(fā)表于 08-04 09:57 ?1059次閱讀
    TPS60204 穩(wěn)壓 3.3V 低紋波電荷泵,帶低電量<b class='flag-5'>指示器</b>數(shù)據(jù)手冊(cè)

    TPS563211 4.2V 至 18V、3A、同步降壓轉(zhuǎn)換,精度為 1%,PG/SS 和 PFM/強(qiáng)制 PWM數(shù)據(jù)手冊(cè)

    引腳進(jìn)行配置。通過正確配置 Enable、Power-Good 指示器或外部軟啟動(dòng),可以進(jìn)行電源排序。4.2 V 至 18 V 的寬輸入電壓范圍支持 12 V 和 15 V 等各種常見輸入軌。它在 0.6V 至 7V 的輸出電壓
    的頭像 發(fā)表于 06-09 17:30 ?840次閱讀
    TPS563211 4.2V 至 18V、3A、同步降壓轉(zhuǎn)換<b class='flag-5'>器</b>,精度為 1%,PG/SS 和 PFM/強(qiáng)制 PWM數(shù)據(jù)手冊(cè)

    TPS562211 4.2V 至 18V、2A、同步降壓轉(zhuǎn)換,精度為 1%,PG/SS 和 PFM/強(qiáng)制 PWM數(shù)據(jù)手冊(cè)

    引腳進(jìn)行配置。通過正確配置 Enable、Power-Good 指示器或外部軟啟動(dòng),可以進(jìn)行電源排序。4.2 V 至 18 V 的寬輸入電壓范圍支持 12 V 和 15 V 等各種常見輸入軌。它在 0.6 V 至 7 V 的輸出電壓
    的頭像 發(fā)表于 06-09 17:03 ?792次閱讀
    TPS562211 4.2V 至 18V、2A、同步降壓轉(zhuǎn)換<b class='flag-5'>器</b>,精度為 1%,PG/SS 和 PFM/強(qiáng)制 PWM數(shù)據(jù)手冊(cè)

    TPS563212 具有節(jié)能模式和可選 FCCM 的 4.2V 至 18V、3A、1.2MHz 同步降壓轉(zhuǎn)換數(shù)據(jù)手冊(cè)

    正確配置 Enable pin、power-good 指示器或外部軟啟動(dòng),可以進(jìn)行電源排序。4.2 V 至 18 V 的寬輸入電壓范圍支持 12 V 和 15 V 等各種常見輸入軌。該器件在 0.6V 至 7V 的輸出電壓下支持
    的頭像 發(fā)表于 06-09 15:28 ?813次閱讀
    TPS563212 具有節(jié)能模式和可選 FCCM 的 4.2V 至 18V、3A、1.2MHz 同步降壓轉(zhuǎn)換<b class='flag-5'>器</b>數(shù)據(jù)手冊(cè)

    TPS562212 具有節(jié)能模式和可選 FCCM 的 4.2V 至 18V、2A、1.2MHz 同步降壓轉(zhuǎn)換數(shù)據(jù)手冊(cè)

    正確配置 Enable pin、power-good 指示器或外部軟啟動(dòng),可以進(jìn)行電源排序。4.2 V 至 18 V 的寬輸入電壓范圍支持 12 V 和 15 V 等各種常見輸入軌。它在 0.6 V 至 7 V 的輸出電壓下支持
    的頭像 發(fā)表于 06-09 14:38 ?851次閱讀
    TPS562212 具有節(jié)能模式和可選 FCCM 的 4.2V 至 18V、2A、1.2MHz 同步降壓轉(zhuǎn)換<b class='flag-5'>器</b>數(shù)據(jù)手冊(cè)

    超級(jí)電容在故障指示器中的作用有哪些?

    超級(jí)電容在故障指示器中的作用有哪些?安裝在輸配電線路、電力電纜及開關(guān)柜進(jìn)出線上的故障指示器在電流流通的線路中起著非常重要的作用,一旦線路發(fā)生故障,巡線人員可以利用指示燈的報(bào)警顯示快速的確定故障出現(xiàn)
    的頭像 發(fā)表于 05-16 08:41 ?695次閱讀
    超級(jí)電容在故障<b class='flag-5'>指示器</b>中的作用有哪些?