chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

我們都知道電池有一定的電壓限制。超過(guò)或完全失去電池電壓可能導(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í),必須使用端到地的電阻將陽(yáng)極引腳連接到正極和陰極引腳。

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

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

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庫(kù)并指定我們將與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”);

}

接下來(lái),我們創(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ù)字電壓值。通過(guò)使用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)建一些條件來(lái)控制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)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 指示器
    +關(guān)注

    關(guān)注

    0

    文章

    255

    瀏覽量

    39057
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6509

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

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

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

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

    歡迎來(lái)到 德州儀器的 電源設(shè)計(jì)小貼士 Power Tips 系列文章 ? 本期,我們將介紹 LLC 電流模式控制 的詳細(xì)知識(shí) ? 電流模式控制 LLC 注意事項(xiàng) 如圖 1 所示, 指示器 - 指示器
    的頭像 發(fā)表于 08-14 10:50 ?3177次閱讀
    德州儀器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è) 需要外部電容器來(lái)構(gòu)建
    的頭像 發(fā)表于 08-04 15:33 ?577次閱讀
    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),所有這些都來(lái)自 2V 輸入。需要四個(gè)外部電容器來(lái)構(gòu)建一個(gè)完整的高效DC/DC電荷泵轉(zhuǎn)換。為了在寬輸入電壓范圍內(nèi)實(shí)現(xiàn)高效率,電荷泵自動(dòng)選擇1.5倍或倍頻轉(zhuǎn)換模式。通過(guò)2
    的頭像 發(fā)表于 08-04 11:10 ?713次閱讀
    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 ?702次閱讀
    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)行配置。通過(guò)正確配置 Enable、Power-Good 指示器或外部軟啟動(dòng),可以進(jìn)行電源排序。4.2 V 至 18 V 的寬輸入電壓范圍支持 12 V 和 15 V 等各種常見(jiàn)輸入軌。它在 0.6V 至 7V 的輸出電壓
    的頭像 發(fā)表于 06-09 17:30 ?524次閱讀
    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)行配置。通過(guò)正確配置 Enable、Power-Good 指示器或外部軟啟動(dòng),可以進(jìn)行電源排序。4.2 V 至 18 V 的寬輸入電壓范圍支持 12 V 和 15 V 等各種常見(jiàn)輸入軌。它在 0.6 V 至 7 V 的輸出電壓
    的頭像 發(fā)表于 06-09 17:03 ?480次閱讀
    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 等各種常見(jiàn)輸入軌。該器件在 0.6V 至 7V 的輸出電壓下支持
    的頭像 發(fā)表于 06-09 15:28 ?458次閱讀
    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 等各種常見(jiàn)輸入軌。它在 0.6 V 至 7 V 的輸出電壓下支持
    的頭像 發(fā)表于 06-09 14:38 ?422次閱讀
    TPS562212 具有節(jié)能模式和可選 FCCM 的 4.2V 至 18V、2A、1.2MHz 同步降壓轉(zhuǎn)換<b class='flag-5'>器</b>數(shù)據(jù)手冊(cè)

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

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

    通過(guò)Arduino Nano Matter開(kāi)發(fā)板構(gòu)建智能卷簾系統(tǒng)

    在本指南中,您將學(xué)習(xí)如何通過(guò)Arduino NanoMatter開(kāi)發(fā)板和板上的Silicon Labs(芯科科技)MGM240S多協(xié)議無(wú)線模塊來(lái)構(gòu)建一個(gè)智能卷簾系統(tǒng)。該系統(tǒng)可通過(guò) Amazon
    的頭像 發(fā)表于 02-28 09:46 ?765次閱讀
    通過(guò)<b class='flag-5'>Arduino</b> Nano Matter開(kāi)發(fā)板<b class='flag-5'>構(gòu)建</b>智能卷簾系統(tǒng)

    一搖、二遙型配網(wǎng)自動(dòng)化終端原理和功能介紹

    一搖二遙型配網(wǎng)自動(dòng)化終端是配套電纜型故障指示器使用的。通信終端能夠與指示器通過(guò)光纖通信,接收指示器傳輸?shù)倪b信(故障信息)、遙測(cè)(負(fù)荷電流)信息進(jìn)行分析、編譯;可以實(shí)時(shí)監(jiān)測(cè)24路開(kāi)關(guān)節(jié)點(diǎn)狀態(tài),并生成相應(yīng)的遙信變位信息及SOE信息;
    的頭像 發(fā)表于 02-11 15:51 ?982次閱讀
    一搖、二遙型配網(wǎng)自動(dòng)化終端原理和功能介紹

    不同類(lèi)型熔斷的優(yōu)缺點(diǎn) 熔斷在電路中的作用

    熔斷 優(yōu)點(diǎn) :分?jǐn)嚯娏鬏^大,可用于電壓等級(jí)500V及其以下、電流等級(jí)200A以下的電路中,且?guī)в腥蹟?b class='flag-5'>指示器,一旦熔體熔斷,指示器會(huì)彈出,便于觀察和判斷。 缺點(diǎn) :結(jié)構(gòu)相對(duì)復(fù)雜,可能增
    的頭像 發(fā)表于 12-10 10:49 ?2784次閱讀

    淺談架空暫態(tài)特征型遠(yuǎn)傳故障指示器

    新品—架空暫態(tài)特征型遠(yuǎn)傳故障指示器—深圳鼎信生產(chǎn)廠家 型號(hào):JY -DX 一、背景 隨著電力系統(tǒng)的不斷發(fā)展,對(duì)架空線路的安全運(yùn)行和故障快速定位的要求越來(lái)越高。傳統(tǒng)的故障指示器大多只能提供就地指示
    的頭像 發(fā)表于 12-04 16:35 ?931次閱讀