Vyrobte si tento pokročilý digitálny ampérmeter pomocou Arduina

Vyskúšajte Náš Nástroj Na Odstránenie Problémov





V tomto príspevku zostrojíme digitálny ampérmeter s použitím 16 x 2 LCD displeja a Arduina. Pochopíme metodiku merania prúdu pomocou bočníka a implementujeme návrh založený na Arduine. Navrhovaný digitálny ampérmeter môže s primeranou presnosťou merať prúd v rozmedzí od 0 do 2 A (absolútne maximum).

Ako fungujú ampérmetre

Existujú dva typy ampérmetrov: analógové a digitálne, ich fungovanie sa navzájom veľmi líši. Ale obaja majú jeden spoločný koncept: bočníkový rezistor.



Bočníkový rezistor je odpor s veľmi malým odporom kladeným medzi zdrojom a záťažou pri meraní prúdu.

Pozrime sa, ako funguje analógový ampérmeter a potom bude ľahšie pochopiť ten digitálny.



ako funguje analógový ampérmeter

Bočníkový rezistor s veľmi nízkym odporom R a predpokladajme, že na rezistor je pripojený nejaký analógový merač, ktorého vychýlenie je priamo úmerné napätiu cez analógový merač.

Teraz prenesieme trochu prúdu z ľavej strany. i1 je prúd pred vstupom do bočného odporu R a i2 bude prúd po prechode cez bočný odpor.

Prúd i1 bude väčší ako i2, pretože poklesom zlomku prúdu prešiel cez bočníkový odpor. Rozdiel prúdu medzi bočným rezistorom vyvíja veľmi malé množstvo napätia pri V1 a V2.
Množstvo napätia bude merané týmto analógovým meradlom.

Napätie vyvinuté cez bočný odpor závisí od dvoch faktorov: prúd pretekajúci bočným odporom a hodnota bočného odporu.

Ak je prúd prúdom väčší ako bočník, je vyvinuté napätie väčšie. Ak je hodnota bočníka vysoká, napätie vyvíjané v bočníku je viac.

Bočníkový rezistor musí mať veľmi malú hodnotu a musí mať vyšší príkon.

Rezistor s malou hodnotou zaisťuje, že záťaž získava dostatočné množstvo prúdu a napätia pre normálnu prevádzku.

Aj bočníkový rezistor musí mať vyšší príkon, aby mohol tolerovať vyššiu teplotu pri meraní prúdu. Čím vyšší je prúd bočníkom, tým viac tepla sa vytvára.

Teraz by ste už mali základnú predstavu o tom, ako funguje analógový merač. Poďme teraz k digitálnemu dizajnu.

Teraz už vieme, že rezistor bude produkovať napätie, ak bude prúdovať. Z diagramu V1 a V2 sú body, kde odoberáme vzorky napätia do mikrokontroléra.

Výpočet premeny napätia na prúd

Teraz sa pozrime na jednoduchú matematiku, ako môžeme prevádzať vyrobené napätie na prúd.

Ohmov zákon: I = V / R

Poznáme hodnotu posunovacieho odporu R a bude zadaná do programu.

Napätie produkované cez bočníkový odpor je:

V = V1 - V2

Alebo

V = V2 - V1 (aby sa zabránilo zápornému symbolu pri meraní a záporný symbol závisí aj od smeru prúdenia)

Takže môžeme rovnicu zjednodušiť,

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

Jedna z vyššie uvedených rovníc bude zadaná do kódu a nájdeme aktuálny prietok a zobrazí sa na LCD.

Teraz sa pozrime, ako zvoliť hodnotu bočného odporu.

Arduino má zabudovaný 10-bitový analógovo-digitálny prevodník (ADC). Dokáže detekovať od 0 do 5 V v 0 až 1024 krokoch alebo napäťových úrovniach.

Takže rozlíšenie tohto ADC bude 5/1024 = 0,00488 voltu alebo 4,88 milivoltu na krok.

Takže 4,88 milivoltu / 2 mA (minimálne rozlíšenie ampérmetra) = odpor 2,44 alebo 2,5 ohmu.

Môžeme použiť paralelne štyri 10 ohmové, 2 W rezistory, aby sme dostali 2,5 ohmu, ktorý bol testovaný v prototype.

Ako teda môžeme povedať, že maximálny merateľný rozsah navrhovaného ampérmetra je 2 ampéry.

ADC môže merať iba od 0 do 5 V t.j. Čokoľvek vyššie uvedené poškodí ADC v mikrokontroléri.

Z testovaného prototypu sme zistili, že na dvoch analógových vstupoch z bodu V1 a V2, keď je aktuálna nameraná hodnota X mA, analógové napätie číta X / 2 (na sériovom monitore).

Povedzme napríklad, že ak ampérmeter číta 500 mA, analógové hodnoty na sériovom monitore čítajú 250 krokov alebo úrovne napätia. ADC môže tolerovať až 1024 krokov alebo maximum 5 V, takže keď ampérmeter zobrazuje 2 000 mA, sériový monitor číta asi 1 000 krokov. čo je takmer 1024.

Čokoľvek nad úrovňou napätia 1024 poškodí ADC v Arduine. Aby sa tomu zabránilo tesne pred 2 000 mA, na LCD displeji sa zobrazí výstražná správa s výzvou na odpojenie obvodu.

Teraz by ste už pochopili, ako navrhovaný ampérmeter funguje.

Poďme teraz k konštrukčným detailom.

Schematický diagram:

Digitálny ampérmeter Arduino DC

Navrhovaný obvod je veľmi jednoduchý a vhodný pre začiatočníkov. Zostrojte podľa schémy zapojenia. Nastavením potenciometra 10K upravte kontrast displeja.

Arduino môžete napájať z USB alebo cez DC jack s 9 V batériami. Štyri 2 wattové odpory budú rozptyľovať teplo rovnomerne ako pri použití jedného 2,5 ohmového odporu s 8 až 10 wattovým odporom.

Ak na displeji neprechádza žiadny prúd, môže byť načítaná malá náhodná hodnota, ktorú môžete ignorovať. Môže to byť spôsobené bludným napätím na meracích svorkách.

POZNÁMKA: Nezmeňte polaritu napájacieho zdroja na vstupe.

Programový kód:

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

Ak máte akékoľvek konkrétne otázky týkajúce sa tohto projektu obvodu digitálneho ampérmetra založeného na Arduine, vyjadrite sa v sekcii komentárov, môžete dostať rýchlu odpoveď.




Dvojica: Použitie digitálneho potenciometra MCP41xx s Arduinom Ďalej: Nadprúdový medzný zdroj napájania pomocou Arduina