通過對(duì)Arduino和分壓器電路的簡(jiǎn)單了解,我們可以將Arduino轉(zhuǎn)換為數(shù)字電壓表,并可以使用Arduino和16x2 LCD顯示器測(cè)量輸入電壓。
Arduino有幾個(gè)模擬輸入引腳,連接到Arduino內(nèi)部的模數(shù)轉(zhuǎn)換器(ADC)。Arduino ADC是一個(gè)十位轉(zhuǎn)換器,這意味著輸出值的范圍為0到1023。我們將使用 analogRead() 函數(shù)獲取此值。如果您知道基準(zhǔn)電壓,則可以輕松計(jì)算模擬輸入端的電壓。我們可以使用分壓器電路來(lái)計(jì)算輸入電壓。
測(cè)量的電壓顯示在 16x2 液晶顯示器 (LCD) 上。我們還在Arduino IDE的串行監(jiān)視器中顯示了電壓,并使用萬(wàn)用表確認(rèn)了測(cè)量的電壓。
所需硬件:
Arduino uno
16x2 液晶顯示器(液晶顯示器)
100 k 歐姆電阻器
10 k 歐姆電阻器
10 k 歐姆電位計(jì)
面包板
跳線
分壓器電路:
在進(jìn)入此Arduino電壓表電路之前,讓我們討論一下分壓器電路。
分壓器是一種電阻電路,如圖所示。在這個(gè)電阻網(wǎng)絡(luò)中,我們有兩個(gè)電阻器。如圖所示,R1和R2分別為10k和100k歐姆。分支的中點(diǎn)作為Arduino的異常輸入進(jìn)行測(cè)量。R2兩端的壓降稱為Vout,這是我們電路的分壓。
公式:
使用已知值(兩個(gè)電阻值R1、R2和輸入電壓),我們可以在下面的公式中代入以計(jì)算輸出電壓。
Vout = Vin (R2/R1+R2)
該公式表明輸出電壓與輸入電壓以及R1和R2的比值成正比。
通過在Arduino代碼中應(yīng)用此公式,可以輕松推導(dǎo)出輸入電壓。Arduino只能測(cè)量+55v的直流輸入電壓,換句話說(shuō),當(dāng)測(cè)量55V時(shí),Arduino模擬引腳將處于其最大電壓5V,因此在此限制內(nèi)測(cè)量是安全的。此處,電阻R2和R1值設(shè)置為100000和10000,即比率為100:10。
電路圖和連接:
此Arduino數(shù)字電壓表的連接很簡(jiǎn)單,如下圖所示:
LCD 的引腳 DB4、DB5、DB6、DB7、RS 和 EN 直接連接到 Arduino Uno 的引腳 D4、D5、D6、D7、D8、D9
構(gòu)成分壓器電路的兩個(gè)電阻R1和R2的中心點(diǎn)連接到Arduino引腳A0。而其他 2 端連接到輸入電壓(待測(cè)量電壓)和 GND。
編碼說(shuō)明:
用于測(cè)量直流電壓的完整Arduino代碼在下面的代碼部分中給出。代碼很簡(jiǎn)單,很容易理解。
代碼的主要部分是借助上述給定方程Vout = Vin(R2 / R1 + R2)將給定的輸入電壓轉(zhuǎn)換并映射到顯示的輸出電壓。如前所述,Arduino ADC輸出值的范圍為0到1023,Arduino最大輸出電壓為5v,因此我們必須將A0處的模擬輸入乘以5/1024才能獲得實(shí)際電壓。
void loop()
{
int analogvalue = analogRead(A0);
temp = (analogvalue * 5.0) / 1024.0; // FORMULA USED TO CONVERT THE VOLTAGE
input_volt = temp / (r2/(r1+r2));
在這里,我們?cè)贏rduino的LCD和串行監(jiān)視器上顯示了測(cè)量的電壓值。因此,在代碼中,Serial.println用于在串行監(jiān)視器上打印值,lcd.print用于在16x2 LCD上打印值。
Serial.print("v= "); // prints the voltage value in the serial monitor
Serial.println(input_volt);
lcd.setCursor(0, 1);
lcd.print("Voltage= "); // prints the voltage value in the LCD display
lcd.print(input_voltage);
-
直流電壓
+關(guān)注
關(guān)注
1文章
299瀏覽量
20171 -
Arduino
+關(guān)注
關(guān)注
188文章
6477瀏覽量
187571
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論