- ESP32 పవర్ మీటర్ కోసం అవసరమైన పదార్థాలు
- Arduino మరియు ESP32 బేస్డ్ ఎఫిషియెన్సీ మీటర్ - సర్క్యూట్ రేఖాచిత్రం
- ఆర్డునో మరియు ఇఎస్పి 32 బేస్డ్ ఎఫిషియెన్సీ మీటర్ కోసం పిసిబి డిజైన్
- Arduino మరియు ESP32 బేస్డ్ ఎఫిషియెన్సీ మీటర్ - కోడ్
- Arduino మరియు ESP32 బేస్డ్ ఎఫిషియెన్సీ మీటర్ను పరీక్షిస్తోంది
- మరింత మెరుగుదలలు
ఏదైనా ఎలక్ట్రానిక్ ప్రాజెక్టులు లేదా సర్క్యూట్లపై మీరు విలువలను కొలవడానికి అవసరమైన మూడు ప్రాథమిక విషయాల ప్రాథమిక వోల్టమీటర్, అమ్మీటర్ మరియు వాట్మీటర్ల గురించి మనందరికీ తెలుసు. మల్టీమీటర్ సహాయంతో వోల్టేజ్ మరియు కరెంట్ను కొలవడం ప్రారంభించడానికి మంచి మార్గం, కానీ సర్క్యూట్ను పరీక్షించేటప్పుడు నేను ఎదుర్కొనే అతి పెద్ద సమస్య ఏమిటంటే, శక్తి సామర్థ్యాన్ని కొలవడం. కాబట్టి, ఈ రోజు మనం ఇన్పుట్ వోల్టేజ్, ఇన్పుట్ కరెంట్, అవుట్పుట్ వోల్టేజ్ మరియు అవుట్పుట్ కరెంట్లను కొలవగల ఆర్డునో మరియు ఇఎస్పి 32 ఆధారిత సామర్థ్య మీటర్ను నిర్మించడం ద్వారా ఆ సమస్యను పరిష్కరిస్తాము . అందువల్ల, ఇది ఒకే సమయంలో ఇన్పుట్ శక్తిని మరియు అవుట్పుట్ శక్తిని కొలవగలదు మరియు ఈ విలువలతో, మేము సామర్థ్యాన్ని సులభంగా కొలవగలము. ఇంతకుముందు, మేము మా ఆర్డునో బేస్డ్ వాట్మీటర్ ప్రాజెక్ట్లో కూడా ఇలాంటిదే చేశాము, అయితే ఇక్కడ మనం ఇన్పుట్ శక్తి మరియు అవుట్పుట్ శక్తి రెండింటినీ కొలుస్తాము శక్తి సామర్థ్యాన్ని లెక్కించండి.
ఉద్యోగం కోసం నాలుగు మీటర్లు కొనడం కంటే, నాలుగు మీటర్ల సామర్థ్యాలను ఒకదానిలో చేర్చడం ద్వారా మేము ఈ సమస్యను పరిష్కరించగలుగుతాము. మీ డిజిటల్ మీటర్ను నిర్మించడం ఖర్చును తగ్గించడమే కాక, నవీకరణలు మరియు మెరుగుదలల కోసం మీకు విగ్లే గదిని ఇస్తుంది. ఈ ప్రాజెక్ట్ను నిర్మించడానికి మేము ESP32 ను ఉపయోగిస్తున్నందున, ఈ మీటర్ IoT ని సులభంగా ఎనేబుల్ చేసి, వెబ్ ద్వారా డేటాను లాగ్ చేయవచ్చు, ఇది భవిష్యత్ ప్రాజెక్ట్ యొక్క అంశం. అన్ని ప్రాథమికాలను క్లియర్ చేయడంతో, దానిలోకి ప్రవేశిద్దాం.
గమనిక: ఈ పవర్ మీటర్ DC సర్క్యూట్ల కోసం రూపొందించబడింది. మీరు లెక్కించిన AC శక్తి సామర్థ్యానికి AC కరెంట్ను కొలవాలని చూస్తున్నట్లయితే, మీరు IoT ఆధారిత విద్యుత్ శక్తి మీటర్ మరియు ప్రీపెయిడ్ ఎనర్జీ మీటర్ ప్రాజెక్టులను చూడవచ్చు.
ESP32 పవర్ మీటర్ కోసం అవసరమైన పదార్థాలు
క్రింద ఉన్న చిత్రం సర్క్యూట్ నిర్మించడానికి ఉపయోగించే పదార్థాలను చూపిస్తుంది. ఇది చాలా సాధారణ భాగాలతో తయారు చేయబడినందున, మీరు మీ స్థానిక అభిరుచి దుకాణంలో జాబితా చేయబడిన అన్ని పదార్థాలను కనుగొనగలుగుతారు.
అవసరమైన పరిమాణంతో పాటు దిగువ భాగాలను కూడా జాబితా చేసాను. మీరు సర్క్యూట్ ను మీరే నిర్మిస్తుంటే, దిగువ జాబితా నుండి అన్ని పదార్థాలను పొందడం చాలా మంచిది.
- ESP32 బోర్డు - 1
- 128X64 OLED - 1
- ACS712-20 IC - 2
- DC బారెల్ జాక్ - 1
- 100uF కెపాసిటర్ - 2
- 104 పిఎఫ్ - 2
- 102 పిఎఫ్ - 2
- 10 కె, 1% - 4
- 68 కె, 1% - 2
- 6.8 కె, 1% - 2
Arduino మరియు ESP32 బేస్డ్ ఎఫిషియెన్సీ మీటర్ - సర్క్యూట్ రేఖాచిత్రం
Arduino మరియు ESP32 బేస్డ్ ఎఫిషియెన్సీ మీటర్ యొక్క స్కీమాటిక్ క్రింద చూపబడింది. ఈ సర్క్యూట్ను సృష్టించడం చాలా సులభం మరియు సాధారణ భాగాలను ఉపయోగిస్తుంది.
సర్క్యూట్ యొక్క ఆపరేషన్ చాలా సులభం. మేము ఈ ప్రాజెక్ట్లో వోల్టేజ్ మరియు కరెంట్ను కొలుస్తాము కాని ప్రత్యేకమైన మార్గంలో. మేము ఇన్పుట్ మరియు అవుట్పుట్ రెండింటి కోసం వోల్టేజ్ మరియు కరెంట్ను కొలుస్తున్నాము, అందువల్ల మేము సర్క్యూట్ యొక్క సామర్థ్యాన్ని చూడవచ్చు. కొన్ని ప్రాజెక్టులకు ఇది చాలా ఉపయోగకరంగా ఉంటుంది. ఒక ఉదాహరణ DC నుండి DC కన్వర్టర్ కావచ్చు, ఇక్కడ సామర్థ్యం కొలత తప్పనిసరి అవుతుంది. ఈ సర్క్యూట్ పనిచేసే విధానం క్రింద వివరించబడింది.
ACS712 ప్రస్తుత సెన్సార్ IC:
పై చిత్రంలో మీరు చూడగలిగినట్లుగా, కరెంట్ను కొలవడానికి మేము ACS712 కరెంట్ సెన్సార్ IC ని ఉపయోగిస్తున్నాము. కరెంట్ను కొలవడానికి హాల్-ఎఫెక్ట్ను ఉపయోగిస్తున్నందున ఇది చాలా ఆసక్తికరమైన ఐసి, ఈ ఐసి యొక్క మూడు రకాలు మార్కెట్ ఎఫ్ (లేదా 5 ఎ, 20 ఎ, మరియు 30 ఎ) లో చూడవచ్చు. మేము దీని యొక్క 20A వేరియంట్ను ఉపయోగిస్తున్నాము మరియు ఇది ACS712-20 గా లేబుల్ చేయబడింది.
ACS712 డేటాషీట్ సజావుగా పనిచేయడానికి 4.5 - 5.5 వోల్టేజ్ పరిధిని సిఫార్సు చేస్తుంది. మరియు మేము ESP32 తో కరెంట్ను కొలవబోతున్నాం, ఇది కేవలం 3.3V టాలరెంట్ మాత్రమే, అందుకే ACS712 IC యొక్క అవుట్పుట్ వోల్టేజ్ను తగ్గించడానికి నేను రెండు 10K రెసిస్టర్లతో వోల్టేజ్ డివైడర్ను ఉపయోగించాను. IC ద్వారా కరెంట్ ప్రవహించనప్పుడు, అది 2.5V ని ఉత్పత్తి చేస్తుంది, మరియు కొంత మొత్తంలో IC ద్వారా ప్రవహించినప్పుడు, అది వోల్టేజ్ను తగ్గిస్తుంది లేదా ప్రస్తుత ప్రవాహ దిశను బట్టి వోల్టేజ్ను పెంచుతుంది. ఇన్పుట్ మరియు అవుట్పుట్ కరెంట్ను కొలవడానికి మేము ఈ రెండు ఐసిలను ఉపయోగించాము. మేము ఈ ACS712 సెన్సార్ను ఉపయోగించిన మా మునుపటి ప్రాజెక్ట్లను (క్రింద) చూడండి.
- Arduino మరియు ESP8266 Wi-Fi మాడ్యూల్ ఉపయోగించి IoT బేస్డ్ ఎలక్ట్రిసిటీ ఎనర్జీ మీటర్
- PIC మైక్రోకంట్రోలర్ మరియు ACS712 ఉపయోగించి డిజిటల్ అమ్మీటర్ సర్క్యూట్
ఈ సెన్సార్ల పనితీరు గురించి మేము ఎక్కడ వివరంగా చర్చించాము. మీరు ఈ సెన్సార్ల గురించి మరింత తెలుసుకోవాలనుకుంటే మీరు వాటిని తనిఖీ చేయవచ్చు.
వోల్టేజ్ డివైడర్:
ఇన్పుట్ మరియు అవుట్పుట్ వోల్టేజ్ను కొలవడానికి, ఇన్పుట్ మరియు సర్క్యూట్ యొక్క అవుట్పుట్ వైపు మాకు రెండు వోల్టేజ్ డివైడర్లు ఉన్నాయి. సర్క్యూట్ కొలవగల గరిష్ట వోల్టేజ్ 35 వి, కానీ వోల్టేజ్ డివైడర్ కోసం రెసిస్టర్ విలువలను మార్చడం ద్వారా దీన్ని సులభంగా మార్చవచ్చు.
వోల్టేజ్ రెగ్యులేటర్:
ESP32, OLED మరియు ACS712 IC లను శక్తివంతం చేయడానికి సాధారణ LM7805 వోల్టేజ్ రెగ్యులేటర్ ఉపయోగించబడుతుంది. మేము దానిని చాలా శుభ్రమైన శక్తితో శక్తివంతం చేస్తున్నందున, డికౌప్లింగ్ కెపాసిటర్లు ఉపయోగించబడవు, కాని మేము IC ని స్థిరీకరించడానికి ఇన్పుట్ మరియు అవుట్పుట్ రెండింటిలో 100uF కెపాసిటర్లను ఉపయోగించాము.
ESP32 IC మరియు OLED డిస్ప్లే:
మేము ESP32 ను ప్రధాన ప్రాసెసర్గా ఉపయోగించాము, ఇది అన్ని రీడింగులు, లెక్కలు, ఇన్పుట్లు మరియు అవుట్పుట్లకు బాధ్యత వహిస్తుంది. అలాగే, విలువలను తెలుసుకోవడానికి మేము 128X64 OLED డిస్ప్లేని ఉపయోగించాము.
ఆర్డునో మరియు ఇఎస్పి 32 బేస్డ్ ఎఫిషియెన్సీ మీటర్ కోసం పిసిబి డిజైన్
మా Arduino మరియు ESP32 బేస్డ్ ఎఫిషియెన్సీ మీటర్ కోసం PCB ఒకే-వైపు బోర్డులో రూపొందించబడింది. నా పిసిబిని రూపొందించడానికి నేను ఈగిల్ని ఉపయోగించాను కాని మీకు నచ్చిన ఏదైనా డిజైన్ సాఫ్ట్వేర్ను మీరు ఉపయోగించవచ్చు. నా బోర్డు డిజైన్ యొక్క 2D చిత్రం క్రింద చూపబడింది.
అన్ని భాగాలలో సరైన గ్రౌండ్ కనెక్షన్లు చేయడానికి తగినంత గ్రౌండ్ ట్రేస్ ఉపయోగించబడుతుంది. అలాగే, శబ్దాన్ని తగ్గించడానికి మరియు సామర్థ్యాన్ని మెరుగుపరచడానికి సరైన 5 వి మరియు 3.3 వి జాడలను ఉపయోగించాలని మేము చూశాము.
- పిసిబి డిజైన్ మరియు గెర్బెర్ ఫైళ్ళను డౌన్లోడ్ చేసుకోండి ఆర్డునో మరియు ఇఎస్పి 32 బేస్డ్ ఎఫిషియెన్సీ మీటర్
చేతితో తయారు చేసిన పిసిబి:
సౌలభ్యం మరియు పరీక్ష కోసం, నేను పిసిబి యొక్క చేతితో తయారు చేసిన సంస్కరణను తయారు చేసాను మరియు ఇది క్రింద చూపబడింది. మొదటి సంస్కరణలో, నేను కొన్ని తప్పులు చేసాను, కొన్ని జంపర్ వైర్లను ఉపయోగించి నేను సరిదిద్దుకున్నాను. కానీ చివరి సంస్కరణలో, నేను వాటిని పరిష్కరించాను, మీరు ఫైళ్ళను డౌన్లోడ్ చేసి వాటిని ఉపయోగించవచ్చు.
Arduino మరియు ESP32 బేస్డ్ ఎఫిషియెన్సీ మీటర్ - కోడ్
ఇప్పుడు, మనకు హార్డ్వేర్ విషయాల గురించి మంచి అవగాహన ఉన్నందున, మేము ఆర్డునో IDE ని తెరిచి, మా కోడింగ్ను ప్రారంభించవచ్చు. ESP32 బోర్డు యొక్క పిన్ 35 మరియు 33 నుండి అనలాగ్ వోల్టేజ్ చదవడం కోడ్ యొక్క ఉద్దేశ్యం. అలాగే, మేము 32 నుండి వోల్టేజ్ మరియు ప్రస్తుత విలువ అయిన 34 పిన్ను చదువుతాము. మేము దీన్ని చేసిన తర్వాత, ఇన్పుట్ శక్తి మరియు అవుట్పుట్ శక్తిని పొందడానికి వాటిని గుణించవచ్చు మరియు దానిని సమర్థత సూత్రానికి ఉంచడం ద్వారా, మేము సామర్థ్యాన్ని పొందవచ్చు.
చివరగా, మేము దానిని LCD తెరపై ప్రదర్శిస్తాము. అదే విధంగా చేయటానికి పూర్తి ప్రోగ్రామ్ చివరిలో ఇవ్వబడుతుంది, ఇది పైన చర్చించిన హార్డ్వేర్ కోసం ఉపయోగించబడుతుంది. ఇంకా, కోడ్ చిన్న స్నిప్పెట్లుగా విభజించబడింది మరియు వివరించబడింది.
మేము ఒక 128X64 OLED డిస్ప్లే ఉపయోగిస్తున్నారు వంటి, మేము అవసరం Adafruit_GFX లైబ్రరీ మరియు Adafruit_SSD1306 లైబ్రరీ ప్రదర్శన తో కమ్యూనికేట్ చేయడానికి. మీరు ఆర్డునో యొక్క డిఫాల్ట్ బోర్డ్ మేనేజర్ టెర్మినల్ నుండి రెండింటినీ డౌన్లోడ్ చేసుకోవచ్చు; మీకు బోర్డు మేనేజర్ భాగంతో ఏవైనా సమస్యలు ఉంటే, మీరు దాని అనుబంధిత గిట్హబ్ రిపోజిటరీ నుండి లైబ్రరీలను డౌన్లోడ్ చేసి చేర్చవచ్చు, ఇది క్రింద ఇవ్వబడింది.
- Adafruit_GFX లైబ్రరీని డౌన్లోడ్ చేయండి
- Adafruit_SSD1306 లైబ్రరీని డౌన్లోడ్ చేయండి
ఎప్పటిలాగే, అవసరమైన అన్ని లైబ్రరీలను చేర్చడం ద్వారా మేము మా కోడ్ను ప్రారంభిస్తాము. అప్పుడు మేము అవసరమైన అన్ని పిన్స్ మరియు వేరియబుల్స్ ను క్రింద నిర్వచించాము.
# చేర్చండి
SCREEN_WIDTH & SCREEN_HEIGHT నిర్వచనాలు స్క్రీన్ పరిమాణం నిర్వచించే ఉపయోగిస్తారు. తరువాత మేము అవసరమైన అన్ని పిన్నులను నిర్వచించాము, దీని ద్వారా మనం వోల్టేజ్ మరియు కరెంట్ను కొలవబోతున్నాము. తరువాత, మీరు స్కీమాటిక్ నుండి చూడగలిగే విధంగా హార్డ్వేర్లో ఉపయోగించే రెసిస్టర్ విలువలను మేము నిర్వచించాము. మీకు ఈ విలువలు లేకపోతే లేదా మీటర్ పరిధిని మార్చాలనుకుంటే, మీరు ఆ విలువలను మార్చవచ్చు, కోడ్ బాగా పనిచేస్తుంది.
కరెంట్ను కొలవడానికి మేము ACS712 ఉపయోగిస్తున్నందున, వోల్టేజ్ నుండి కరెంట్ను లెక్కించడానికి మాకు mVperAmp విలువ అవసరం. నేను 20A ACS712 మాడ్యూల్ ఉపయోగిస్తున్నప్పుడు, డేటాషీట్లో ఇచ్చిన విధంగా mV / A విలువ 100. కానీ మేము ESP32 మరియు వోల్టేజ్ డివైడర్ను ఉపయోగిస్తున్నందున, మనకు సగం విలువ 50 ఉంటుంది, అందుకే మేము mV / AMP విలువలో ఉంచాము.
ACSoffset అనేది వోల్టేజ్ నుండి విద్యుత్తును లెక్కించడానికి అవసరమైన ఆఫ్సెట్. ACS712 IC లు 5V నుండి శక్తిని కలిగి ఉన్నందున, ఆఫ్సెట్ వోల్టేజ్ 2.5V. మేము వోల్టేజ్ డివైడర్ ఉపయోగిస్తున్నప్పుడు, ఇది 1.25V కి తగ్గుతుంది. ESP32 యొక్క గజిబిజి ADC మీకు ఇప్పటికే తెలిసి ఉండవచ్చు, కాబట్టి నేను 1136 విలువను ఉపయోగించాల్సి వచ్చింది. మీకు అమరిక సమస్యలు ఉంటే, మీరు విలువలను సర్దుబాటు చేయవచ్చు మరియు ADC కి భర్తీ చేయవచ్చు.
చివరగా, మేము Adafruit_SSD1306 క్లాస్ యొక్క ప్రదర్శన వస్తువును తయారు చేసి, స్క్రీన్ వెడల్పు, ఎత్తు, I 2 C కాన్ఫిగరేషన్ను దాటడం ద్వారా ఈ విభాగాన్ని పూర్తి చేస్తాము మరియు రీసెట్ కార్యాచరణను నిర్వచించడానికి చివరి -1 పారామితి ఉపయోగించబడుతుంది. మీ ప్రదర్శనకు బాహ్య రీసెట్ పిన్ లేకపోతే (ఇది ఖచ్చితంగా నా ప్రదర్శన కోసం), అప్పుడు మీరు చివరి వాదన కోసం -1 ను ఉపయోగించాలి.
void setup () {Serial.begin (115200); if (! display.begin (SSD1306_SWITCHCAPVCC, 0x3C)) x // 128x64 Serial.println (F ("SSD1306 కేటాయింపు విఫలమైంది") కోసం చిరునామా 0x3D; (;;); } display.clearDisplay (); display.setRotation (2); display.setTextSize (1); ఆలస్యం (100); }
తరువాత, మా సెటప్ () విభాగం ఉంది. ఈ విభాగంలో, డీబగ్గింగ్ కోసం మేము సీరియల్ని ఎనేబుల్ చేస్తాము, డిస్ప్లే ఆబ్జెక్ట్ యొక్క ప్రారంభ పద్ధతి సహాయంతో I 2 C డిస్ప్లే అందుబాటులో ఉందో లేదో తనిఖీ చేస్తాము. అలాగే, మేము I 2 C చిరునామాను సెట్ చేసాము. తరువాత, మేము క్లియర్ డిస్ప్లే () పద్ధతిలో ప్రదర్శనను క్లియర్ చేస్తాము . అలాగే, మేము సెట్రోటేషన్ పద్ధతిలో డిస్ప్లేని తిప్పాము , ఎందుకంటే నేను నా పిసిబి డిజైన్ను గందరగోళంలో పడేశాను. తరువాత, ఫంక్షన్లు అమలులోకి రావడానికి మేము 100 ఎంఎస్ ఆలస్యం చేస్తాము. అది పూర్తయిన తర్వాత, మనం ఇప్పుడు లూప్ ఫంక్షన్కు వెళ్ళవచ్చు. కానీ లూప్ ఫంక్షన్కు వెళ్లడానికి ముందు, రిటర్న్_వోల్టేజ్_వాల్యూ () , మరియు రిటర్న్_కరెంట్_వాల్యూ () అనే రెండు ఫంక్షన్లను మనం చర్చించాలి .
డబుల్ రిటర్న్_వోల్టేజ్_వాల్యూ (పూర్ణాంక పిన్_నో) {డబుల్ టిఎంపి = 0; డబుల్ ADC వోల్టేజ్ = 0; డబుల్ ఇన్పుట్ వోల్టేజ్ = 0; డబుల్ సగటు = 0; (int i = 0; i <150; i ++) {tmp = tmp + అనలాగ్ రీడ్ (పిన్_నో); } avg = tmp / 150; ADCVoltage = ((సగటు * 3.3) / (4095%) + 0.138; inputVoltage = ADCVoltage / (R2_VOLTAGE / (R1_VOLTAGE + R2_VOLTAGE)); // GND రిటర్న్ ఇన్పుట్ వోల్టేజ్లో వోల్టేజ్ను లెక్కించడానికి ఫార్ములా; }
Return_voltage_value () ఫంక్షన్ ADC రావడం వోల్టేజ్ లెక్కించడానికి ఉపయోగిస్తారు, మరియు అది ఒక వాదన గా pin_no పడుతుంది. ఈ ఫంక్షన్లో, tmp, ADCVoltage, inputVoltage మరియు సగటున కొన్ని వేరియబుల్స్ ప్రకటించడం ద్వారా మేము ప్రారంభిస్తాము. అనలాగ్ రీడ్ () ఫంక్షన్ నుండి మనకు లభించే తాత్కాలిక ADC విలువను నిల్వ చేయడానికి tmp వేరియబుల్ ఉపయోగించబడుతుంది, అప్పుడు మేము దానిని ఫర్ ఫర్ లూప్లో 150 సార్లు సగటున తీసుకుంటాము మరియు విలువను సగటు అని పిలువబడే వేరియబుల్కు నిల్వ చేస్తాము. మేము ఇచ్చిన ఫార్ములా నుండి ADC వోల్టేజ్ను లెక్కిస్తాము, చివరకు, మేము ఇన్పుట్ వోల్టేజ్ను లెక్కించి విలువలను తిరిగి ఇస్తాము. మీరు చూసే +0.138 విలువ వోల్టేజ్ స్థాయిని క్రమాంకనం చేయడానికి నేను ఉపయోగించిన అమరిక విలువ, మీకు ఏమైనా లోపాలు వస్తే ఈ విలువతో ఆడుకోండి.
డబుల్ రిటర్న్_కరెంట్_వాల్యూ (పూర్ణాంక పిన్_నో) {డబుల్ టిఎంపి = 0; డబుల్ సగటు = 0; డబుల్ ADC వోల్టేజ్ = 0; డబుల్ ఆంప్స్ = 0; (int z = 0; z <150; z ++) {tmp = tmp + అనలాగ్ రీడ్ (పిన్_నో); } avg = tmp / 150; ADC వోల్టేజ్ = ((సగటు / 4095.0) * 3300); // మీకు mV Amps = ((ADCVoltage - ACSoffset) / mVperAmp) లభిస్తుంది; రిటర్న్ ఆంప్స్; }
తరువాత, మనకు రిటర్న్_కరెంట్_వాల్యూ () ఫంక్షన్ ఉంది. ఈ ఫంక్షన్ పిన్_నోను ఆర్గ్యుమెంట్గా కూడా తీసుకుంటుంది. ఈ ఫంక్షన్లో మనకు నాలుగు వేరియబుల్స్ ఉన్నాయి. tmp, సగటు, ADC వోల్టేజ్ మరియు ఆంప్స్
తరువాత, మేము పిన్ను అనలాగ్ రీడ్ () ఫంక్షన్తో చదివి సగటున 150 సార్లు చదువుతాము, తరువాత ADC వోల్టేజ్ను లెక్కించడానికి ఫార్ములాను ఉపయోగిస్తాము, దానితో మేము కరెంట్ను లెక్కిస్తాము మరియు విలువను తిరిగి ఇస్తాము. దానితో, మేము లూప్ విభాగంలోకి వెళ్ళవచ్చు.
void loop () {float input_voltage = abs (return_voltage_value (INPUT_VOLTAGE_SENSE_PIN)); float input_current = abs (return_current_value (INPUT_CURRENT_SENSE_PIN)); ఫ్లోట్ అవుట్పుట్_వోల్టేజ్ = అబ్స్ (రిటర్న్_వోల్టేజ్_వాల్యూ (OUTPUT_VOLTAGE_SENSE_PIN)); ఫ్లోట్ అవుట్పుట్_కరెంట్ = అబ్స్ ((రిటర్న్_కరెంట్_వాల్యూ (OUTPUT_CURRENT_SENSE_PIN))); input_current = input_current - 0.025; సీరియల్.ప్రింట్ ("ఇన్పుట్ వోల్టేజ్:"); సీరియల్.ప్రింట్ (ఇన్పుట్_వోల్టేజ్); సీరియల్.ప్రింట్ ("- ఇన్పుట్ కరెంట్:"); సీరియల్.ప్రింట్ (ఇన్పుట్_కరెంట్); సీరియల్.ప్రింట్ ("- అవుట్పుట్ వోల్టేజ్:"); సీరియల్.ప్రింట్ (అవుట్పుట్_వోల్టేజ్); సీరియల్.ప్రింట్ ("- అవుట్పుట్ కరెంట్:"); సీరియల్.ప్రింట్ల్న్ (అవుట్పుట్_కరెంట్); ఆలస్యం (300); display.clearDisplay (); display.setCursor (0, 0); display.print ("I / PV:"); display.setCursor (37, 0); display.print (input_voltage); display.setCursor (70, 0); ప్రదర్శన.ముద్రణ ("V"); }
నాలుగు వేరియబుల్స్లో కొన్ని ఫ్లోట్ వేరియబుల్స్ను డిక్లేర్ చేసి నిర్వచించడం ద్వారా లూప్ విభాగాన్ని ప్రారంభిస్తాము. ACS712 మాడ్యూల్ ప్రస్తుత విలువలను ప్రతికూలంగా ఇవ్వగలదు కాబట్టి మేము సంబంధిత ఫంక్షన్లను పిన్_నోను ఆర్గ్యుమెంట్గా పిలుస్తాము. ప్రతికూల విలువను సానుకూలంగా చేయడానికి మేము గణిత లైబ్రరీ యొక్క ABS () ఫంక్షన్ను ఉపయోగిస్తాము. తరువాత, డీబగ్గింగ్ కోసం అన్ని విలువలను సీరియల్ ప్రింట్ చేస్తాము. తరువాత, మేము డిస్ప్లేని క్లియర్ చేస్తాము, కర్సర్ సెట్ చేసి విలువలను ప్రింట్ చేస్తాము. ప్రదర్శనలో చూపిన అన్ని అక్షరాల కోసం మేము దీన్ని చేస్తాము. ఇది లూప్ ఫంక్షన్ మరియు ప్రోగ్రామ్ ముగింపును సూచిస్తుంది.
Arduino మరియు ESP32 బేస్డ్ ఎఫిషియెన్సీ మీటర్ను పరీక్షిస్తోంది
పై చిత్రంలో నా పరీక్ష సెటప్ను మీరు చూడవచ్చు. నా 30V ట్రాన్స్ఫార్మర్ను ఇన్పుట్గా కలిగి ఉన్నాను మరియు నా మీటర్ను టెస్ట్ బోర్డు కోసం కట్టిపడేశాను. నేను LM2596 ఆధారిత బక్ కన్వర్టర్ బోర్డ్ మరియు లోడ్ కోసం ఉపయోగిస్తున్నాను మరియు నేను సమాంతరంగా మూడు 10 ఓంస్ రెసిస్టర్లను ఉపయోగిస్తున్నాను.
పై చిత్రంలో మీరు చూడగలిగినట్లుగా, ఇన్పుట్ మరియు అవుట్పుట్ వోల్టేజ్ను తనిఖీ చేయడానికి నేను బహుళ మీటర్లకు కనెక్ట్ చేసాను. ట్రాన్స్ఫార్మర్ దాదాపు 32 విని ఉత్పత్తి చేస్తుంది మరియు బక్ కన్వర్టర్ యొక్క అవుట్పుట్ 3.95 వి.
ఇక్కడ ఉన్న చిత్రం నా సామర్థ్య మీటర్ మరియు మల్టీమీటర్ ద్వారా కొలుస్తారు. మీరు చూడగలిగినట్లుగా, మల్టీమీటర్ చూపిస్తుంది.97 ఆంప్స్, మరియు మీరు కొంచెం జూమ్ చేస్తే, అది 1.0A ని చూపిస్తుంది, ఇది ACS712 మాడ్యూల్లో ఉన్న నాన్-లీనియారిటీ కారణంగా కొద్దిగా ఆఫ్లో ఉంది, కానీ ఇది మా ప్రయోజనానికి ఉపయోగపడుతుంది. వివరణాత్మక వివరణ మరియు పరీక్ష కోసం, మీరు మా వీడియో విభాగంలో వీడియోను చూడవచ్చు.
మరింత మెరుగుదలలు
ఈ ప్రదర్శన కోసం, సర్క్యూట్ చేతితో తయారు చేసిన పిసిబిలో తయారు చేయబడింది, అయితే సర్క్యూట్ను మంచి నాణ్యమైన పిసిబిలో సులభంగా నిర్మించవచ్చు. నా ప్రయోగంలో, భాగం పరిమాణం కారణంగా పిసిబి పరిమాణం నిజంగా పెద్దది, కానీ ఉత్పత్తి వాతావరణంలో, చౌకైన SMD భాగాలను ఉపయోగించడం ద్వారా దీనిని తగ్గించవచ్చు. సర్క్యూట్లో అంతర్నిర్మిత రక్షణ లక్షణం కూడా లేదు, కాబట్టి రక్షణ సర్క్యూట్తో సహా సర్క్యూట్ యొక్క మొత్తం భద్రతా అంశాన్ని మెరుగుపరుస్తుంది. అలాగే, కోడ్ రాసేటప్పుడు, ESP32 యొక్క ADC అంత గొప్పది కాదని నేను గమనించాను. ADS1115 మాడ్యూల్ వంటి బాహ్య ADC తో సహా మొత్తం స్థిరత్వం మరియు ఖచ్చితత్వాన్ని పెంచుతుంది.
మీరు ఈ కథనాన్ని ఇష్టపడ్డారని మరియు దాని నుండి క్రొత్తదాన్ని నేర్చుకున్నారని నేను ఆశిస్తున్నాను. మీకు ఏమైనా సందేహం ఉంటే, మీరు ఈ క్రింది వ్యాఖ్యలలో అడగవచ్చు లేదా వివరణాత్మక చర్చ కోసం మా ఫోరమ్లను ఉపయోగించవచ్చు.