Naredite ta napredni digitalni ampermeter z uporabo Arduina

Preizkusite Naš Instrument Za Odpravo Težav





V tem prispevku bomo izdelali digitalni ampermeter z uporabo 16 x 2 LCD zaslona in Arduina. Razumeli bomo metodologijo merjenja toka z uporabo ranžirnega upora in izvedli zasnovo, ki temelji na Arduinu. Predlagani digitalni ampermeter lahko z razumno natančnostjo meri tok od 0 do 2 Ampera (absolutni maksimum).

Kako delujejo ampermetri

Obstajata dve vrsti ampermetrov: analogni in digitalni, ki se med seboj precej razlikujeta. Ampak oba imata en skupni koncept: ranžirni upor.



Premični upor je upor z zelo majhnim uporom, nameščen med virom in obremenitvijo med merjenjem toka.

Poglejmo, kako deluje analogni ampermeter in potem bo lažje razumeti digitalnega.



kako deluje analogni ampermeter

Prehodni upor z zelo nizkim uporom R in predpostavimo, da je nekakšen analogni merilnik povezan z uporom, katerega odklon je neposredno sorazmeren napetosti skozi analogni merilnik.

Zdaj pa prepustimo nekaj toka z leve strani. i1 je tok pred vstopom v ranžirni upor R, i2 pa bo tok po prehodu skozi ranžirni upor.

Tok i1 bo večji od i2, saj je skozi uporni upor spustil delček toka. Trenutna razlika med ranžirnim uporom razvije zelo majhno napetost pri V1 in V2.
Količina napetosti bo izmerjena s tem analognim merilnikom.

Napetost, razvita na ranžirnem uporu, je odvisna od dveh dejavnikov: toka, ki teče skozi ranžirni upor, in vrednosti ranžirnega upora.

Če je tok skozi prehod večji, je napetost večja. Če je vrednost šanta visoka, je napetost, razvita čez šant, večja.

Preklopni upor mora imeti zelo majhno vrednost in mora imeti višjo moč.

Upor majhne vrednosti zagotavlja, da obremenitev dobiva dovolj toka in napetosti za normalno delovanje.

Tudi ranžirni upor mora imeti višjo moč, da lahko med merjenjem toka prenaša višjo temperaturo. Višji je tok skozi prehod, več toplote se ustvari.

Do zdaj bi že dobili osnovno idejo, kako deluje analogni števec. Zdaj pa pojdimo na digitalno oblikovanje.

Zdaj vemo, da bo upor ustvaril napetost, če bo tok tekel. Iz diagrama V1 in V2 sta točki, kjer vzorce napetosti odnesemo na mikrokrmilnik.

Izračun pretvorbe napetosti v tok

Zdaj pa poglejmo preprosto matematiko, kako pretvoriti proizvedeno napetost v tok.

Ohmov zakon: I = V / R

Vrednost ranžirnega upora R vemo in bo vnesen v program.

Napetost, ustvarjena na ranžirnem uporu, je:

V = V1 - V2

Ali

V = V2 - V1 (da se izognemo negativnemu simbolu med merjenjem in tudi negativni simbol je odvisen od smeri toka toka)

Tako lahko poenostavimo enačbo,

I = (V1 - V2) / R
Ali
I = (V2 - V1) / R

V kodo bo vnesena ena od zgornjih enačb, poiščemo lahko trenutni tok in se prikaže na LCD-prikazovalniku.

Zdaj pa poglejmo, kako izbrati vrednost ranžirnega upora.

Arduino ima vgrajen 10-bitni analogno-digitalni pretvornik (ADC). Zazna lahko od 0 do 5V v 0 do 1024 korakih ali napetosti.

Torej bo ločljivost tega ADC 5/1024 = 0,00488 voltov ali 4,88 milivolta na korak.

Torej 4,88 milivolta / 2 mA (najmanjša ločljivost ampermetra) = 2,44 ali 2,5 ohmski upor.

Vzporedno lahko uporabimo štiri 10 ohmske, 2-vatne upore, da dobimo 2,5 ohma, kar je bilo testirano v prototipu.

Torej, kako lahko rečemo, da je največji merljivi obseg predlaganega ampermetra 2 Ampera.

ADC lahko meri od 0 do 5 V, tj. Karkoli zgoraj bo poškodovalo ADC v mikrokrmilniku.

Iz preizkušenega prototipa smo opazili, da se na dveh analognih vhodih iz točk V1 in V2, ko je trenutna izmerjena vrednost X mA, analogna napetost bere X / 2 (v serijskem monitorju).

Recimo na primer, če ampermeter bere 500 mA, analogne vrednosti na serijskem monitorju berejo 250 korakov ali napetostne ravni. ADC lahko prenese do 1024 korakov ali največ 5 V, torej, ko ampermeter odčita 2000 mA, serijski monitor odčita približno 1000 korakov. kar je blizu 1024.

Vse, kar je nad napetostjo 1024, bo poškodovalo ADC v Arduinu. Da bi se temu izognili tik pred 2000 mA, se na LCD-prikazovalniku prikaže opozorilno sporočilo o prekinitvi vezja.

Do zdaj bi že razumeli, kako deluje predlagani ampermeter.

Zdaj pa pojdimo na konstrukcijske podrobnosti.

Shematski diagram:

Arduino DC digitalni ampermeter

Predlagano vezje je zelo preprosto in prijazno do začetnikov. Konstruirajte po vezju. Prilagodite potenciometer 10K, da prilagodite kontrast zaslona.

Arduino lahko napajate prek USB-ja ali prek enosmernega priključka z 9 V baterijami. Štirje 2-vatni upori bodo toploto odvajali enakomerno kot pri uporabi enega 2,5-ohmskega upora z 8-10-vatnim uporom.

Ko ni nobenega toka, lahko zaslon odčita neko majhno naključno vrednost, ki jo lahko prezrete, kar je lahko posledica zaostale napetosti na merilnih terminalih.

OPOMBA: Ne spreminjajte polarnosti napajanja vhodne obremenitve.

Koda programa:

//------------------Program Developed by R.GIRISH------------------//
#include
#define input_1 A0
#define input_2 A1
LiquidCrystal lcd(12, 11, 5, 4, 3, 2)
int AnalogValue = 0
int PeakVoltage = 0
float AverageVoltage = 0
float input_A0 = 0
float input_A1 = 0
float output = 0
float Resolution = 0.00488
unsigned long sample = 0
int threshold = 1000
void setup()
{
lcd.begin(16,2)
Serial.begin(9600)
}
void loop()
{
PeakVoltage = 0
for(sample = 0 sample <5000 sample ++)
{
AnalogValue = analogRead(input_1)
if(PeakVoltage {
PeakVoltage = AnalogValue
}
else
{
delayMicroseconds(10)
}
}
input_A0 = PeakVoltage * Resolution
PeakVoltage = 0
for(sample = 0 sample <5000 sample ++)
{
AnalogValue = analogRead(input_2)
if(PeakVoltage {
PeakVoltage = AnalogValue
}
else
{
delayMicroseconds(10)
}
}
input_A1 = PeakVoltage * Resolution
output = (input_A0 - input_A1) * 100
output = output * 4
while(analogRead(input_A0) >= threshold)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Reached Maximum')
lcd.setCursor(0,1)
lcd.print('Limit!!!')
delay(1000)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Disconnect now!!')
delay(1000)
}
while(analogRead(input_A0) >= threshold)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Reached Maximum')
lcd.setCursor(0,1)
lcd.print('Limit!!!')
delay(1000)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Disconnect now!!')
delay(1000)
}
lcd.clear()
lcd.setCursor(0,0)
lcd.print('DIGITAL AMMETER')
lcd.setCursor(0,1)
lcd.print(output)
lcd.print(' mA')
Serial.print('Volatge Level at A0 = ')
Serial.println(analogRead(input_A0))
Serial.print('Volatge Level at A1 = ')
Serial.println(analogRead(input_A1))
Serial.println('------------------------------')
delay(1000)
}
//------------------Program Developed by R.GIRISH------------------//

Če imate kakršno koli posebno vprašanje v zvezi s tem projektom digitalnega ampermetra, ki temelji na Arduinu, prosimo, izrazite v oddelku za komentarje, lahko boste hitro prejeli odgovor.




Prejšnja: Uporaba digitalnega potenciometra MCP41xx z Arduinom Naprej: Prekinjeno napajanje prek Arduina