Gawin itong Advanced Digital Ammeter gamit ang Arduino

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Sa post na ito magtatayo kami ng isang digital ammeter gamit ang 16 x 2 LCD display at Arduino. Mauunawaan namin ang pamamaraan ng pagsukat ng kasalukuyang gamit ang isang shunt resistor at magpatupad ng isang disenyo batay sa Arduino. Maaaring sukatin ng ipinanukalang digital ammeter ang kasalukuyang kasalukuyang mula 0 hanggang 2 Ampere (ganap na maximum) na may makatwirang kawastuhan.

Paano Gumagana ang mga Ammeter

Mayroong dalawang uri ng mga ammeter: Analog at digital, ang kanilang mga pagtatrabaho ay magkakaiba-iba sa bawat isa. Ngunit, pareho silang may isang konsepto na pareho: Isang shunt resistor.



Ang isang shunt risistor ay isang risistor na may napakaliit na paglaban na inilagay sa pagitan ng mapagkukunan at ng pag-load habang sinusukat ang kasalukuyang.

Tingnan natin kung paano gumagana ang isang analog ammeter at pagkatapos ay magiging mas madaling maunawaan ang digital.



kung paano gumagana ang isang analog ammeter

Ang isang shunt risistor na may napakababang paglaban sa R ​​at ipinapalagay ang isang uri ng analog meter ay konektado sa kabuuan ng risistor na ang pagpapalihis ay direktang proporsyonal sa boltahe sa pamamagitan ng analog meter.

Ipasa natin ngayon ang ilang halaga ng kasalukuyang mula sa kaliwang kamay. Ang i1 ay ang kasalukuyang bago ipasok ang shunt risistor R at i2 ang magiging kasalukuyang pagkatapos dumaan sa shunt risistor.

Ang kasalukuyang i1 ay magiging mas malaki kaysa sa i2 mula nang bumagsak ito ng isang maliit na bahagi ng kasalukuyang sa pamamagitan ng shunt resistor. Ang kasalukuyang pagkakaiba sa pagitan ng shunt risistor ay bubuo ng napakaliit na halaga ng boltahe sa V1 at V2.
Ang dami ng boltahe ay susukat ng analog meter na iyon.

Ang boltahe na nabuo sa kabuuan ng shunt risistor ay nakasalalay sa dalawang mga kadahilanan: ang kasalukuyang dumadaloy sa pamamagitan ng shunt risistor at ang halaga ng shunt risistor.

Kung ang kasalukuyang daloy ay mas malaki sa pamamagitan ng shunt ang boltahe na binuo ay higit pa. Kung ang halaga ng shunt ay mataas ang boltahe na binuo sa buong shunt ay higit pa.

Ang shunt risistor ay dapat na napakaliit na halaga at dapat itong magtaglay ng mas mataas na rating ng wattage.

Tinitiyak ng isang maliit na risistor ng halaga na ang pag-load ay nakakakuha ng sapat na dami ng kasalukuyang at boltahe para sa normal na operasyon.

Gayundin ang shunt risistor ay dapat magkaroon ng mas mataas na rating ng wattage upang maaari nitong tiisin ang mas mataas na temperatura habang sinusukat ang kasalukuyang. Mas mataas ang kasalukuyang sa pamamagitan ng shunt mas maraming nabuo na init.

Sa ngayon ay nakuha mo na ang pangunahing ideya, kung paano gumagana ang isang analog meter. Ngayon, magpatuloy tayo sa digital na disenyo.

Sa ngayon alam namin na ang isang risistor ay makakagawa ng isang boltahe kung mayroong isang kasalukuyang daloy. Mula sa diagram V1 at V2 ay ang mga puntos, kung saan kinukuha namin ang mga sample ng boltahe sa microcontroller.

Kinakalkula ang Boltahe sa Kasalukuyang Conversion

Ngayon tingnan natin ang simpleng matematika, paano natin mai-convert ang nagawa na boltahe sa kasalukuyang.

Batas ng ohm: I = V / R

Alam namin ang halaga ng shunt resistor R at ipapasok ito sa programa.

Ang boltahe na ginawa sa kabuuan ng shunt risistor ay:

V = V1 - V2

O kaya naman

V = V2 - V1 (upang maiwasan ang negatibong simbolo habang ang pagsukat at pati na rin ang negatibong simbolo ay nakasalalay sa direksyon ng kasalukuyang daloy)

Kaya't maaari nating gawing simple ang equation,

Ako = (V1 - V2) / R
O kaya naman
Ako = (V2 - V1) / R

Ang isa sa mga equation sa itaas ay ipapasok sa code at mahahanap namin ang kasalukuyang daloy at ipapakita sa LCD.

Tingnan natin ngayon kung paano pumili ng halaga ng shunt resistor.

Ang Arduino ay nagtayo ng 10 bit na analog sa digital converter (ADC). Maaari itong tuklasin mula 0 hanggang 5V sa 0 hanggang 1024 na mga hakbang o antas ng boltahe.

Kaya't ang resolusyon ng ADC na ito ay magiging 5/1024 = 0.00488 volt o 4.88 millivolt bawat hakbang.

Kaya 4.88 millivolt / 2 mA (minimum na resolusyon ng ammeter) = 2.44 o 2.5 ohm risistor.

Maaari naming gamitin ang apat na 10 ohm, 2 Watt risistor kahanay upang makakuha ng 2.5 ohm na nasubukan sa prototype.

Kaya, paano natin masasabi ang maximum na nasusukat na saklaw ng ipinanukalang ammeter na kung saan ay 2 Ampere.

Maaaring sukatin ng ADC ang 0 hanggang 5 V lamang ibig sabihin. Ang anumang bagay sa itaas ay makakasira sa ADC sa microcontroller.

Mula sa nasubok na prototype kung ano ang aming naobserbahan na, sa dalawang analog na input mula sa point V1 at V2 kapag ang kasalukuyang sinusukat na halaga X mA, ang boltahe ng analog ay binabasa ang X / 2 (sa serial monitor).

Halimbawa, sabihin, kung ang ammeter ay nagbabasa ng 500 mA ang mga analog na halaga sa serial monitor ay nagbabasa ng 250 mga hakbang o antas ng boltahe. Maaaring tiisin ng ADC ang hanggang sa 1024 na mga hakbang o maximum na 5 V, Kaya't kapag ang ammeter ay nagbabasa ng 2000 mA, binabasa ng serial monitor ang 1000 na mga hakbang na tinatayang. na malapit sa 1024.

Anumang higit sa 1024 antas ng boltahe ay makakasira sa ADC sa Arduino. Upang maiwasan ito bago pa ang 2000 mA isang mensahe ng babala ay mag-prompt sa LCD na nagsasabing idiskonekta ang circuit.

Sa ngayon ay naiintindihan mo na kung paano gumagana ang iminungkahing ammeter.

Ngayon, magpatuloy tayo sa mga detalye sa konstruksyon.

Diagram ng iskematika:

Arduino DC Digital Ammeter

Ang ipinanukalang circuit ay napaka-simple at magiliw sa baguhan. Bumuo ayon sa diagram ng circuit. Ayusin ang 10K potentiometer upang ayusin ang pagkakaiba sa display.

Maaari mong mapagana ang Arduino mula sa USB o sa pamamagitan ng DC jack na may 9 V na baterya. Ang apat na 2 watt resistors ay magwawaldas ng pantay ang init kaysa sa paggamit ng isang 2.5 ohm risistor na may 8- 10 watt risistor.

Kapag walang kasalukuyang dumadaan ang display ay maaaring basahin ang ilang maliit na random na halaga na maaari mong balewalain ito, maaaring dahil ito sa ligaw na boltahe sa mga terminal ng pagsukat.

TANDAAN: Huwag baligtarin ang polarity ng suplay ng pag-load.

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

Kung mayroon kang anumang tukoy na katanungan tungkol sa proyektong digital na ammeter circuit na nakabatay sa Arduino, mangyaring ipahayag sa seksyon ng komento, maaari kang makatanggap ng mabilis na tugon.




Nakaraan: Paggamit ng Digital Potentiometer MCP41xx Sa Arduino Susunod: Sa Kasalukuyang Kasalukuyang Cut-off Power Supply Gamit ang Arduino