電流表用于測量通過任何負載或設備的電流。在此Arduino電流表中,我們將解釋使用歐姆定律測量電流。這將是非常有趣的,也是我們在學生時代學習的基礎科學的一個很好的應用。
我們所有人都都知道歐姆定律,它指出“導體的兩個極或端子之間的電位差與通過同一導體的電流量成正比”對于比例常數,我們使用電阻,所以這里是歐姆定律方程。
V = 紅外
V = 導體兩端的電壓,單位為 Volt (v)。
I = 通過導體的電流,單位為安培 (A)。
R = 以歐姆 (Ω) 為單位的比例電阻常數。
為了找到通過設備的電流,我們只需按如下方式重新排列方程,或者我們可以使用歐姆定律計算器進行計算。
I = V / R
因此,為了找出電流,我們需要一些數據:
電壓
電阻
我們將與設備一起構建一系列電阻。由于我們需要找到器件兩端的壓降,為此我們需要電壓降前后的電壓讀數,由于沒有極性,因此在電阻中是可能的。
如上圖所示,我們必須找到流過電阻的兩個電壓。電阻兩端的電壓(V1-V2)之差為電阻器(R)兩端的壓降,我們將壓降除以電阻值,得到流經器件的電流(I)。這就是我們如何計算通過它的當前值,讓我們進入實際實現。
所需組件:
Arduino Uno。
電阻 22Ω。
液晶屏 16x2。
發光二極管。
10K鍋。
面包板。
萬用表。
跳線電纜。
電路圖和連接:
Arduino電流表項目的示意圖如下
示意圖顯示了Arduino Uno與16x2 LCD,電阻器和LED的連接。Arduino Uno是所有其他組件的電源。
Arduino具有模擬和數字引腳。傳感器電路連接到模擬輸入,從中我們獲得電壓值。液晶屏與數字針腳(7,8,9,10,11,12)連接。
LCD有16個引腳,前兩個引腳(VSS,VDD)和后兩個引腳(陽極,陰極)連接到GND和5v。復位 (RS) 和使能 (E) 引腳連接到 Arduino 數字引腳 7 和 8。數據引腳D4-D7連接到Arduino的數字引腳(9,10,11,12)。V0引腳連接到電位器的中間引腳。紅線和黑線是 5v 和 gnd。
電流檢測電路:
該電流表電路由電阻器和LED作為負載組成。電阻串聯連接到LED,電流流過負載,壓降由電阻確定。終端V1,V2將與Arduino的模擬輸入連接。
在Arduino的ADC中,將電壓隱藏為0-1023的10位分辨率數字。因此,我們需要使用編程將其隱藏在電壓值中。在此之前,我們需要知道Arduino的ADC可以檢測到的最小電壓,該值為4.88mV。我們將ADC的值乘以4.88mV,得到進入ADC的實際電壓。在此處了解有關 Arduino ADC 的更多信息。
計算:
Arduino ADC 的電壓值范圍在 0-1023 之間,基準電壓范圍在 0-5v 之間。
例如:
V1=710、V2=474和R=22Ω的值,電壓之差為236。我們將其乘以 0.00488 將其轉換為電壓,然后得到 1.15v。所以電壓差是 1.15v,在這里除以 22,我們得到電流值 0.005A。這里我們使用低值22歐姆電阻作為電流傳感器。這就是我們使用Arduino測量電流的方式。
Arduino 代碼:
本文末尾給出了基于 arduino 的電流表測量電流的完整代碼。
Arduino編程與c編程幾乎相同,首先我們聲明頭文件。頭文件調用存儲中的文件,就像計算我使用模擬讀取功能獲取電壓值一樣。
int voltage_value0 = analogRead(A0);
int voltage_value1 = analogRead(A1);
聲明一個臨時浮點變量用于保持浮temp_val等電壓值。將該值乘以 0.00488 得到實際電壓差,然后除以電阻值以求出電流。0.00488v是Arduino的ADC可以檢測到的最小電壓。
int subraction_value =(voltage_value0 - voltage_value1) ;
float temp_val = (subraction_value*0.00488);
float current_value = (temp_val/22);
#include
LiquidCrystal lcd (7,8,9,10,11,12);
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
lcd.begin(16,2);
lcd.clear();
}
void loop() {
// put your main code here, to run repeatedly:
int voltage_value0 = analogRead(A0);
int voltage_value1 = analogRead(A1);
int subraction_value =(voltage_value0 - voltage_value1) ;
float temp_val = (subraction_value*0.00488);
float current_value = (temp_val/22);
Serial.print(current_value);
lcd.setCursor(0,0);
lcd.print("current value=");
lcd.setCursor(0,1);
lcd.print (current_value);
lcd.print("A");
delay(1000);
}
-
電流表
+關注
關注
2文章
229瀏覽量
26188 -
Arduino
+關注
關注
187文章
6464瀏覽量
186645
發布評論請先 登錄
相關推薦
評論