Arduino का उपयोग करके इसे उन्नत डिजिटल Ammeter बनाएं

समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें





इस पोस्ट में हम 16 x 2 एलसीडी डिस्प्ले और Arduino का उपयोग करके एक डिजिटल एमीटर बनाने जा रहे हैं। हम एक शंट अवरोधक का उपयोग करके वर्तमान को मापने की कार्यप्रणाली को समझेंगे और Arduino के आधार पर एक डिजाइन लागू करेंगे। प्रस्तावित डिजिटल एमीटर उचित सटीकता के साथ 0 से 2 एम्पियर (पूर्ण अधिकतम) तक के वर्तमान को माप सकता है।

कैसे Ammeters काम करते हैं

दो प्रकार के एमीटर हैं: एनालॉग और डिजिटल, उनके कामकाज एक दूसरे से अलग हैं। लेकिन, उन दोनों में एक अवधारणा है: एक शंट रोकनेवाला।



शंट रेसिस्टर एक प्रतिरोधक होता है जिसमें करंट को मापने के दौरान स्रोत और लोड के बीच बहुत कम प्रतिरोध होता है।

आइए देखें कि एनालॉग एमीटर कैसे काम करता है और फिर डिजिटल को समझना आसान हो जाएगा।



एक एनालॉग एमीटर कैसे काम करता है

बहुत कम प्रतिरोध आर के साथ एक शंट रोकनेवाला और कुछ प्रकार के एनालॉग मीटर को रोकने वाले से जुड़ा हुआ है, जो कि विक्षेपण एनालॉग मीटर के माध्यम से वोल्टेज के सीधे आनुपातिक है।

अब बाएं हाथ की ओर से कुछ करंट पास करें। शंट रेसिस्टर में प्रवेश करने से पहले i1 करंट है और शंट रेसिस्टर से गुजरने के बाद i2 करंट होगा।

वर्तमान i1 i2 से अधिक होगा क्योंकि यह शंट रेसिस्टर के माध्यम से धारा का एक अंश गिरा देता है। शंट रोकनेवाला के बीच का वर्तमान अंतर V1 और V2 में बहुत कम मात्रा में वोल्टेज विकसित करता है।
वोल्टेज की मात्रा को उस एनालॉग मीटर द्वारा मापा जाएगा।

शंट रेसिस्टर के पार विकसित वोल्टेज दो कारकों पर निर्भर करता है: शंट रेसिस्टर के माध्यम से बहने वाला वर्तमान और शंट रेसिस्टर का मूल्य।

यदि वर्तमान प्रवाह शंट के माध्यम से अधिक है तो विकसित वोल्टेज अधिक है। यदि शंट का मूल्य अधिक है, तो शंट के पार विकसित वोल्टेज अधिक है।

शंट रोकनेवाला बहुत छोटा मूल्य होना चाहिए और यह उच्च वाट क्षमता रेटिंग के अधिकारी होना चाहिए।

एक छोटा मूल्य रोकनेवाला यह सुनिश्चित करता है कि लोड को सामान्य ऑपरेशन के लिए वर्तमान और वोल्टेज की पर्याप्त मात्रा मिल रही है।

इसके अलावा शंट रोकनेवाला की उच्च वाट क्षमता रेटिंग होनी चाहिए ताकि यह वर्तमान को मापने के दौरान उच्च तापमान को सहन कर सके। शंट के माध्यम से करंट ज्यादा होने से गर्मी पैदा होती है।

अब तक आपको मूल विचार मिल गया होगा कि एनालॉग मीटर कैसे काम करता है। अब डिजिटल डिज़ाइन पर चलते हैं।

अब तक हम जानते हैं कि यदि एक प्रवाह है तो एक रोकनेवाला एक वोल्टेज उत्पन्न करेगा। आरेख से V1 और V2 ऐसे बिंदु हैं, जहां हम वोल्टेज के नमूनों को माइक्रोकंट्रोलर में ले जाते हैं।

वर्तमान रूपांतरण के लिए वोल्टेज की गणना

अब सरल गणित देखते हैं, हम उत्पादित वोल्टेज को वर्तमान में कैसे बदल सकते हैं।

ओम का नियम: I = V / R

हम शंट रोकनेवाला आर के मूल्य को जानते हैं और इसे कार्यक्रम में दर्ज किया जाएगा।

शंट रोकनेवाला में उत्पादित वोल्टेज है:

वी = वी 1 - वी 2

या

V = V2 - V1 (माप करते समय नकारात्मक प्रतीक से बचने के लिए और नकारात्मक प्रवाह वर्तमान प्रवाह की दिशा पर निर्भर करता है)

तो हम समीकरण को सरल बना सकते हैं,

I = (V1 - V2) / आर
या
I = (V2 - V1) / आर

उपरोक्त समीकरणों में से एक कोड में दर्ज किया जाएगा और हम वर्तमान प्रवाह को पा सकते हैं और एलसीडी में प्रदर्शित किया जाएगा।

अब देखते हैं कि शंट रेसिस्टर वैल्यू कैसे चुनें।

Arduino ने डिजिटल कनवर्टर (ADC) के 10 बिट एनालॉग में बनाया है। यह 0 से 1024 चरणों या वोल्टेज के स्तर में 0 से 5 वी तक का पता लगा सकता है।

तो इस ADC का रिज़ॉल्यूशन 5/1024 = 0.00488 वोल्ट या 4.88 मिलीवेट प्रति कदम होगा।

तो 4.88 मिलीवोल्ट / 2 एमएए (एमीटर का न्यूनतम रिज़ॉल्यूशन) = 2.44 या 2.5 ओम रोकनेवाला।

हम 2.5 ओम प्राप्त करने के लिए समानांतर में चार 10 ओम, 2 वाट प्रतिरोधक का उपयोग कर सकते हैं जिसे प्रोटोटाइप में परीक्षण किया गया था।

तो, हम प्रस्तावित एमीटर की अधिकतम औसत दर्जे की सीमा कैसे कह सकते हैं जो 2 एम्पियर है।

एडीसी 0 से 5 वी तक ही माप सकता है यानी। उपरोक्त कुछ भी माइक्रोकंट्रोलर में एडीसी को नुकसान पहुंचाएगा।

परीक्षण किए गए प्रोटोटाइप से हमने क्या देखा है कि, बिंदु V1 और V2 से दो एनालॉग इनपुटों पर जब वर्तमान मापा मूल्य X mA, एनालॉग वोल्टेज X / 2 (धारावाहिक मॉनिटर में) पढ़ता है।

उदाहरण के लिए कहें, अगर एमीटर 500 एमए पढ़ता है तो सीरियल मॉनिटर पर एनालॉग मान 250 कदम या वोल्टेज स्तर पढ़ता है। एडीसी अधिकतम 1024 कदम या 5 वी अधिकतम तक सहन कर सकता है, इसलिए जब एमीटर 2000 एमए पढ़ता है, तो धारावाहिक मॉनिटर 1000 कदम लगभग पढ़ता है। जो 1024 के पास है।

1024 वोल्टेज स्तर से अधिक कुछ भी Arduino में ADC को नुकसान पहुंचाएगा। 2000 एमए से ठीक पहले इससे बचने के लिए एलसीडी पर सर्किट को डिस्कनेक्ट करने के लिए चेतावनी संदेश कहा जाएगा।

अब तक आप समझ गए होंगे कि प्रस्तावित एमीटर कैसे काम करता है।

अब रचनात्मक विवरणों पर चलते हैं।

योजनाबद्ध आरेख:

Arduino DC डिजिटल एममीटर

प्रस्तावित सर्किट बहुत सरल और शुरुआती अनुकूल है। सर्किट आरेख के अनुसार निर्माण। डिस्प्ले कंट्रास्ट को समायोजित करने के लिए 10K पोटेंशियोमीटर को समायोजित करें।

आप Arduino को USB से या DC जैक के जरिए 9 V बैटरी से पावर दे सकते हैं। चार 2 वाट प्रतिरोधों 8-10 वाट प्रतिरोधक के साथ एक 2.5 ओम रोकनेवाला का उपयोग करने की तुलना में समान रूप से गर्मी को नष्ट कर देगा।

जब कोई करंट नहीं गुजर रहा होता है तो डिस्प्ले कुछ छोटे यादृच्छिक मान पढ़ सकता है जिसे आप इसे अनदेखा कर सकते हैं, यह मापने के टर्मिनलों में आवारा वोल्टेज के कारण हो सकता है।

नोट: इनपुट लोड आपूर्ति ध्रुवीयता को उल्टा न करें।

कार्यक्रम कोड:

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

यदि आपके पास इस Arduino आधारित डिजिटल एमीटर सर्किट परियोजना के बारे में कोई विशिष्ट प्रश्न है, तो कृपया टिप्पणी अनुभाग में व्यक्त करें, आपको एक त्वरित उत्तर प्राप्त हो सकता है।




की एक जोड़ी: Arduino के साथ डिजिटल पोटेंशियोमीटर MCP41xx का उपयोग करना अगला: Arduino का उपयोग करके वर्तमान कट-ऑफ बिजली की आपूर्ति