Izveidojiet šo uzlaboto digitālo ampermetru, izmantojot Arduino

Izmēģiniet Mūsu Instrumentu Problēmu Novēršanai





Šajā ziņojumā mēs izveidosim digitālo ampērmetru, izmantojot 16 x 2 LCD displeju un Arduino. Mēs sapratīsim strāvas mērīšanas metodiku, izmantojot šunta rezistoru, un ieviesīsim dizainu, kura pamatā ir Arduino. Piedāvātais digitālais ampērmetrs ar saprātīgu precizitāti var izmērīt strāvu no 0 līdz 2 ampēriem (absolūtais maksimums).

Kā darbojas ampērmetri

Ir divu veidu ampērmetri: analogie un digitālie, to darbība ir ļoti atšķirīga. Bet abiem ir viens kopīgs jēdziens: šunta rezistors.



Šunta rezistors ir rezistors ar ļoti mazu pretestību, kas novietots starp avotu un slodzi, mērot strāvu.

Apskatīsim, kā darbojas analogais ampērmetrs, un tad būs vieglāk saprast digitālo.



kā darbojas analogais ampērmetrs

Šunta rezistors ar ļoti zemu pretestību R un pieņem, ka visā rezistorā ir pievienots kaut kāds analogais skaitītājs, kura novirze ir tieši proporcionāla spriegumam caur analogo skaitītāju.

Tagad nodosim zināmu strāvas daudzumu no kreisās puses. i1 ir strāva pirms ievadīšanas šunta rezistorā R, un i2 būs strāva pēc šunta rezistora iziešanas.

Pašreizējais i1 būs lielāks par i2, jo tas samazināja strāvas daļu caur šunta rezistoru. Pašreizējā atšķirība starp šunta rezistoru pie V1 un V2 rada ļoti mazu sprieguma daudzumu.
Sprieguma lielumu mēra ar šo analogo skaitītāju.

Visā šunta rezistorā attīstītais spriegums ir atkarīgs no diviem faktoriem: strāva, kas plūst caur šunta rezistoru, un šunta rezistora vērtība.

Ja strāvas plūsma caur šunti ir lielāka, attīstītais spriegums ir lielāks. Ja šunta vērtība ir augsta, šuntā attīstītais spriegums ir lielāks.

Šunta rezistoram ir jābūt ļoti niecīgai vērtībai, un tam jābūt augstākam jaudas vērtējumam.

Neliels rezistors nodrošina, ka slodze normālai darbībai saņem pietiekamu strāvas un sprieguma daudzumu.

Arī šunta rezistoram jābūt ar lielāku jaudu, lai tas varētu izturēt augstāku temperatūru, mērot strāvu. Lielāka strāva caur šuntu, jo vairāk rodas siltums.

Tagad jūs jau būtu ieguvis pamatideju, kā darbojas analogais skaitītājs. Tagad pārejam pie digitālā dizaina.

Tagad mēs zinām, ka rezistors radīs spriegumu, ja pastāv strāvas plūsma. No diagrammas V1 un V2 ir punkti, kur sprieguma paraugus nogādājam mikrokontrollerī.

Aprēķinot spriegumu līdz strāvas pārrēķinu

Tagad redzēsim vienkāršo matemātiku, kā mēs varam pārveidot saražoto spriegumu strāvā.

Oma likums: I = V / R

Mēs zinām šunta rezistora R vērtību, un tā tiks ievadīta programmā.

Šunta rezistorā radītais spriegums ir:

V = V1 - V2

Or

V = V2 - V1 (lai izvairītos no negatīva simbola mērīšanas laikā, un arī negatīvs simbols ir atkarīgs no strāvas plūsmas virziena)

Tātad mēs varam vienkāršot vienādojumu,

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

Viens no iepriekš minētajiem vienādojumiem tiks ievadīts kodā, un mēs varam atrast pašreizējo plūsmu, un tas tiks parādīts LCD.

Tagad redzēsim, kā izvēlēties šunta rezistora vērtību.

Arduino ir iebūvējis 10 bitu analogo ciparu pārveidotāju (ADC). Tas var noteikt no 0 līdz 5 V 0 līdz 1024 pakāpēs vai sprieguma līmeņos.

Tātad šī ADC izšķirtspēja būs 5/1024 = 0,00488 volti vai 4,88 milivolti vienā solī.

Tātad 4,88 milivolti / 2 mA (minimālā ampermetra izšķirtspēja) = 2,44 vai 2,5 omi rezistors.

Mēs varam paralēli izmantot četrus 10 omu, 2 vatu rezistoru, lai iegūtu 2,5 omus, kas tika pārbaudīti prototipā.

Tātad, kā mēs varam pateikt ierosinātā ampērmetra maksimālo izmērāmo diapazonu, kas ir 2 ampēri.

ADC var mērīt tikai no 0 līdz 5 V, t.i. Viss, kas norādīts iepriekš, sabojās mikrokontrollera ADC.

No pārbaudītā prototipa mēs novērojām, ka divās analogajās ieejās no punktiem V1 un V2, kad pašreizējā izmērītā vērtība X mA, analogais spriegums ir X / 2 (sērijveida monitorā).

Piemēram, ja ampērmetrs nolasa 500 mA, seriālā monitora analogās vērtības nolasa 250 pakāpes vai sprieguma līmeņus. ADC var izturēt līdz 1024 soļiem vai maksimāli 5 V, Tātad, kad ampermetra rādījums ir 2000 mA, seriālais monitors nolasa aptuveni 1000 soļus. kas ir tuvu 1024.

Viss, kas pārsniedz 1024 sprieguma līmeni, kaitēs ADC Arduino. Lai no tā izvairītos tieši pirms 2000 mA, LCD ekrānā tiks parādīts brīdinājuma paziņojums par atvienošanu.

Tagad jūs jau būtu sapratuši, kā darbojas piedāvātais ampērmetrs.

Tagad pārejam pie konstrukcijas detaļām.

Shematiska diagramma:

Arduino DC digitālais ampērmetrs

Piedāvātā shēma ir ļoti vienkārša un draudzīga iesācējiem. Konstruējiet atbilstoši shēmai. Pielāgojiet 10K potenciometru, lai pielāgotu displeja kontrastu.

Arduino var darbināt no USB vai caur DC ligzdu ar 9 V baterijām. Četri 2 vatu rezistori vienmērīgi izkliedēs siltumu, nekā izmantojot vienu 2,5 omu rezistoru ar 8-10 vatu rezistoru.

Ja strāva nepāriet, displejs var nolasīt nelielu nejaušu vērtību, kuru jūs varat ignorēt, tas var būt saistīts ar klaiņojošu spriegumu mērīšanas spailēs.

PIEZĪME. Nepārveidojiet ievades slodzes padeves polaritāti.

Programmas kods:

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

Ja jums ir kādi īpaši jautājumi par šo Arduino balstītās digitālās ampērmetra ķēdes projektu, lūdzu, izsakiet komentāru sadaļā, jūs varat saņemt ātru atbildi.




Pāri: Digitālā potenciometra MCP41xx izmantošana ar Arduino Nākamais: pārmērīga strāvas pārtraukuma barošana, izmantojot Arduino