- Mga Materyal na Kinakailangan
- Diagram ng Circuit
- Pagsukat ng Yunit
- Pagkalkula at display unit
- Programming ang Arduino
- Paano sukatin nang may higit na kawastuhan?
- Paggawa at Pagsubok
Bilang mga inhinyero ng electronics, palagi kaming umaasa sa mga metro / instrumento upang sukatin at pag-aralan ang pagtatrabaho ng isang circuit. Simula sa isang simpleng multimeter sa isang komplikadong mga tagasa ng kalidad ng kuryente o DSO ang lahat ay may kani-kanilang natatanging mga application. Karamihan sa mga metro na ito ay madaling magagamit at maaaring mabili batay sa mga parameter na susukat at ang kawastuhan nito. Ngunit kung minsan ay maaaring mapunta tayo sa isang sitwasyon kung saan kailangan nating bumuo ng aming sariling mga metro. Sabihin halimbawa na nagtatrabaho ka sa isang proyekto ng solar PV at nais mong kalkulahin ang pagkonsumo ng kuryente ng iyong karga, sa mga ganitong sitwasyon maaari naming mabuo ang aming sariling Wattmeter gamit ang isang simpleng platform ng microcontroller tulad ng Arduino.
Ang pagbuo ng iyong sariling mga metro ay hindi lamang nagbabawas ng gastos sa pagsubok, ngunit nagbibigay din sa amin ng puwang upang mapadali ang proseso ng pagsubok. Tulad ng, isang wattmeter na binuo gamit ang Arduino ay madaling mai-tweak upang masubaybayan ang mga resulta sa Serial monitor at magplano ng isang graph sa Serial plotter o magdagdag ng isang SD card upang awtomatikong i- log ang mga halaga ng boltahe, kasalukuyang at lakas sa paunang natukoy na mga agwat. Tunog nakakainteres diba !? Magsimula na tayo…
Mga Materyal na Kinakailangan
- Arduino Nano
- LM358 Op-Amp
- 7805 Boltahe regulator
- 16 * 2 LCD display
- 0.22 ohm 2Watt shunt risistor
- 10k Trimmer pot
- 10k, 20k, 2.2k, 1k Resistors
- 0.1uF Capacitors
- Load sa Pagsubok
- Perf board o breadboard
- Kit ng paghihinang (opsyonal)
Diagram ng Circuit
Ang kumpletong diagram ng circuit ng proyekto ng arduino wattmeter ay ibinibigay sa ibaba.
Para sa kadalian ng pag-unawa sa arduino wattmeter circuit ay nahahati sa dalawang mga yunit. Ang itaas na bahagi ng circuit ay ang yunit ng pagsukat at ang mas mababang bahagi ng circuit ay ang computation at display unit. Para sa mga taong bago sa ganitong uri ng mga circuit ay sumunod sa mga label. Ang halimbawang + 5V ay tatak na nangangahulugang ang lahat ng mga pin sa kung aling label ang nakakonekta ay dapat isaalang-alang habang magkakaugnay sila. Karaniwang ginagamit ang mga label upang gawing maayos ang diagram ng circuit.
Ang circuit ay idinisenyo upang magkasya sa mga system na tumatakbo sa pagitan ng 0-24V na may kasalukuyang saklaw na 0-1A na isinasaalang-alang ang pagtutukoy ng isang Solar PV. Ngunit madali mong mapapalawak ang saklaw sa sandaling maunawaan mo ang pagtatrabaho ng circuit. Ang pinagbabatayan na prinsipyo sa likod ng circuit ay upang sukatin ang boltahe sa kabuuan ng pagkarga at kasalukuyang sa pamamagitan nito upang makalkula ang kuryente na kumokonsumo nito. Ang lahat ng mga sinusukat na halaga ay ipapakita sa isang 16 * 2 Alphanumeric LCD.
Dagdag pa sa ibaba hatiin natin ang circuit sa maliliit na mga segment upang makakuha tayo ng isang malinaw na larawan kung paano naka-indent ang circuit upang gumana.
Pagsukat ng Yunit
Ang yunit ng pagsukat ay binubuo ng isang potensyal na divider upang matulungan kaming masukat ang boltahe at isang shut risistor na may isang Non-Inverting Op-amp ang ginagamit upang matulungan kaming masukat ang kasalukuyang sa pamamagitan ng circuit. Ang potensyal na bahagi ng divider mula sa itaas na circuit ay ipinapakita sa ibaba
Narito ang Input boltahe ay kinakatawan ng Vcc, tulad ng sinabi nang mas maaga ay dinisenyo namin ang circuit para sa isang saklaw ng boltahe mula 0V hanggang 24V. Ngunit ang isang microcontroller tulad ng Arduino ay hindi maaaring masukat tulad ng mataas na halaga ng boltahe; masusukat lamang nito ang boltahe mula sa 0-5V. Kaya kailangan nating mapa (convert) ang saklaw ng boltahe ng 0-24V hanggang 0-5V. Madali itong magagawa sa pamamagitan ng paggamit ng isang potensyal na divider circuit tulad ng ipinakita sa ibaba. Ang resistor 10k at 2.2k na magkasama ay bumubuo ng potensyal na divider circuit. Ang output boltahe ng isang potensyal na divider ay maaaring makalkula gamit ang mga formula sa ibaba. Ang parehong ginagamit upang magpasya ang halaga ng iyong mga resistors, maaari mong gamitin ang aming online calculator upang makalkula ang halaga ng risistor kung muling ididisenyo mo ang circuit.
Vout = (Vin × R2) / (R1 + R2)
Ang mapang 0-5V ay maaaring makuha mula sa gitnang bahagi na may label bilang Boltahe. Ang boltahe na nai-map na ito ay maaaring maipakain sa Arduino Analog pin sa paglaon.
Susunod kailangan nating sukatin ang kasalukuyang sa pamamagitan ng LOAD. Tulad ng alam natin na ang mga microcontroller ay makakabasa lamang ng analog boltahe, kaya kailangan nating kahit papaano ay i-convert ang halaga ng kasalukuyang sa boltahe. Maaari itong magawa sa pamamagitan lamang ng pagdaragdag ng isang risistor (shunt risistor) sa landas na alinsunod sa batas ni Ohm ay magbabagsak ng isang halaga ng boltahe sa kabuuan nito na proporsyonal sa kasalukuyang dumadaloy dito. Ang halaga ng pagbagsak ng boltahe na ito ay magiging mas mababa kaya gumagamit kami ng isang op-amp upang palakasin ito. Ang circuit para sa pareho ay ipinapakita sa ibaba
Dito ang halaga ng shunt resistor (SR1) ay 0.22 Ohms. Tulad ng sinabi nang mas maaga, dinidisenyo namin ang circuit para sa 0-1A kaya batay sa batas ng Ohms maaari nating kalkulahin ang pagbaba ng boltahe sa resistor na ito na nasa paligid ng 0.2V kapag ang isang maximum na 1A kasalukuyang dumadaan sa load. Ang boltahe na ito ay napakaliit para mabasa ng isang microcontroller, gumagamit kami ng isang Op-Amp sa mode na Non-Inverting Amplifier upang madagdagan ang boltahe mula sa 0.2V hanggang sa mas mataas na antas para mabasa ng Arduino.
Ang Op-Amp sa mode na Non-Inverting ay ipinapakita sa itaas. Ang amplifier ay idinisenyo upang magkaroon ng isang makakuha ng 21, upang ang 0.2 * 21 = 4.2V. Ang mga pormula upang makalkula ang nakuha ng Op-amp ay ibinibigay sa ibaba, maaari mo ring gamitin ang online gain calculator na ito upang makuha ang halaga ng iyong risistor kung muling ididisenyo mo ang circuit.
Makita = Vout / Vin = 1 + (Rf / Rin)
Dito sa aming kaso ang halaga ng Rf ay 20k at ang halaga ng Rin ay 1k na nagbibigay sa amin ng isang halaga ng gian na 21. Ang amplified boltahe form na Op-amp pagkatapos ay ibigay sa isang RC filter na may resistor 1k at isang capacitor na 0.1uF sa salain ang anumang ingay na isinama. Sa wakas ang boltahe ay pagkatapos ay pinakain sa Arduino analog pin.
Ang huling bahagi na naiwan sa panukat na yunit ay ang bahagi ng boltahe regulator. Dahil magbibigay kami ng isang variable na boltahe ng pag-input kailangan namin ng isang kinokontrol na 5V volt para sa Arduino at sa Op-amp upang gumana. Ang kinokontrol na boltahe ay ibibigay ng 7805 Voltage regulator. Ang isang kapasitor ay idinagdag sa output upang ma-filter ang ingay.
Pagkalkula at display unit
Sa panukat na yunit ay dinisenyo namin ang circuit upang baguhin ang Boltahe at Kasalukuyang mga parameter sa 0-5V na maaaring mapakain sa mga pin ng Arduino Analog. Ngayon sa bahaging ito ng circuit ikokonekta namin ang mga signal ng boltahe sa Arduino at i-interface din ang isang 16 × 2 alphanumeric display sa Arduino upang matingnan namin ang mga resulta. Ang circuit para sa pareho ay ipinapakita sa ibaba
Tulad ng nakikita mong ang Voltage pin ay konektado sa Analog pin A3 at ang kasalukuyang pin ay konektado sa Analog pin A4. Ang LCD ay pinalakas mula sa + 5V mula sa 7805 at nakakonekta sa mga digital na pin ng Arduino upang gumana sa 4-bit mode. Gumamit din kami ng isang potensyomiter (10k) na konektado sa Con pin upang ibahin ang kaibahan ng LCD.
Programming ang Arduino
Ngayon na mayroon kaming mahusay na pag-unawa sa hardware, buksan natin ang Arduino at simulan ang programa. Ang layunin ng code ay basahin ang boltahe ng analog sa pin A3 at A4 at kalkulahin ang Halaga ng Boltahe, Kasalukuyan at Lakas at sa wakas ay ipakita ito sa LCD screen. Ang kumpletong programa upang gawin ang pareho ay ibinibigay sa dulo ng pahina na maaaring magamit tulad ng para sa hardware na tinalakay sa itaas. Dagdag dito ang code ay nahahati sa maliit na mga snippet at ipinaliwanag.
Tulad ng lahat ng mga programa na nagsisimula kami, na tumutukoy sa mga pin na ginamit namin. Sa labas ng proyekto ang A3 at A4 pin ay ginagamit upang sukatin ang boltahe at kasalukuyang ayon sa pagkakabanggit at ang mga digital na pin na 3,4,8,9,10 at 11 ay ginagamit para sa interfacing ng LCD sa Arduino
int Read_Voltage = A3; int Read_Current = A4; Const int rs = 3, en = 4, d4 = 8, d5 = 9, d6 = 10, d7 = 11; // Nabanggit ang numero ng pin para sa koneksyon sa LCD LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
Nagsama rin kami ng isang header file na tinatawag na likidong kristal upang i-interface ang LCD sa Arduino. Pagkatapos sa loob ng pag-andar ng pag-setup pinasimuno namin ang LCD display at ipinapakita ang isang intro na teksto bilang "Arduino Wattmeter" at maghintay ng dalawang segundo bago i-clear ito. Ang code para sa pareho ay ipinapakita sa ibaba.
void setup () { lcd.begin (16, 2); // Initialise 16 * 2 LCD lcd.print ("Arduino Wattmeter"); // Intro Message line 1 lcd.setCursor (0, 1); lcd.print ("- Circuitdigest"); // Intro Message line 2 pagkaantala (2000); lcd.clear (); }
Sa loob ng pangunahing pag-andar ng loop, ginagamit namin ang analog read function upang mabasa ang halaga ng boltahe mula sa pin A3 at A4. Tulad ng alam natin ang halaga ng output ng Arduino ADC mula 0-1203 dahil mayroon itong 10-bit ADC. Ang halagang ito ay dapat na mai-convert sa 0-5V na maaaring gawin sa pamamagitan ng pagpaparami ng (5/1023). Pagkatapos ay muli nang mas maaga sa hardware na nai-map namin ang aktwal na halaga ng boltahe mula 0-24V hanggang 0-5V at ang aktwal na halaga ng kasalukuyang form 0-1A hanggang 0-5V. Kaya ngayon kailangan naming gumamit ng isang multiplier upang ibalik ang mga halagang ito pabalik sa aktwal na halaga. Magagawa ito sa pamamagitan ng pagpaparami nito ng isang multiplier na halaga. Ang halaga ng multiplier ay maaaring kalkulahin nang teoretikal gamit ang mga formula na ibinigay sa seksyon ng hardware o kung mayroon kang isang kilalang hanay ng boltahe at kasalukuyang mga halaga maaari mong kalkulahin ito nang praktikal.Sinundan ko ang huling pagpipilian dahil may kaugaliang mas tumpak ito sa real time. Kaya narito ang halaga ng mga multiplier ay 6.46 at 0.239. Samakatuwid ang code ay mukhang sa ibaba
float Voltage_Value = analogRead (Read_Voltage); float Current_Value = analogRead (Read_Current); Voltage_Value = Voltage_Value * (5.0 / 1023.0) * 6.46; Current_Value = Current_Value * (5.0 / 1023.0) * 0.239;
Paano sukatin nang may higit na kawastuhan?
Ang paraan sa itaas ng pagkalkula ng halaga ng Aktwal na Boltahe at kasalukuyang gagana nang maayos. Ngunit naghihirap mula sa isang sagabal, iyon ang ugnayan sa pagitan ng sinusukat na boltahe ng ADC at ang aktwal na boltahe ay hindi magiging linear samakatuwid ang isang solong multiplier ay hindi magbibigay ng tumpak na mga resulta, ang parehong inilapat para sa kasalukuyang pati na rin.
Kaya upang mapabuti ang kawastuhan maaari naming balangkas ng hanay ng mga sinusukat na halaga ng ADC na may aktwal na mga timog gamit ang isang kilalang hanay ng mga halaga at pagkatapos ay gamitin ang data na iyon upang magbalangkas ng isang grap at makuha ang multiplier equation gamit ang linear regression na pamamaraan. Maaari kang mag-refer sa Arduino dB meter kung saan nagamit ko ang isang katulad na pamamaraan.
Sa wakas, sa sandaling nakalkula ang halaga ng aktwal na boltahe at aktwal na kasalukuyang sa pamamagitan ng pagkarga, maaari nating kalkulahin ang Lakas gamit ang mga formula (P = V * I). Pagkatapos ay ipinapakita namin ang lahat ng tatlong mga halaga sa display ng LCD gamit ang code sa ibaba.
lcd.setCursor (0, 0); lcd.print ("V ="); lcd.print (Voltage_Value); lcd.print (""); lcd.print ("I ="); lcd.print (Current_Value); float Power_Value = Voltage_Value * Kasalukuyang_Value; lcd.setCursor (0, 1); lcd.print ("Lakas ="); lcd.print (Power_Value);
Paggawa at Pagsubok
Alang-alang sa tutorial na ginamit ko ang isang perf board upang maghinang ng lahat ng mga sangkap tulad ng ipinakita sa circuit. Gumamit ako ng isang terminal ng tornilyo sa Phoenix upang ikonekta ang pagkarga at normal na DC barong Jack upang ikonekta ang aking mapagkukunan ng kuryente. Ang Arduino Nano board at ang LCD ay naka-mount sa isang Babae Bergstik upang maaari silang magamit muli kung kinakailangan sa paglaon.
Matapos maihanda ang hardware, i-upload ang Arduino code sa iyong Nano board. Ayusin ang trimmer pot upang makontrol ang antas ng kaibahan ng LCD hanggang sa makita mo ang isang malinaw na intro text. Upang subukan ang board ikonekta ang pagkarga sa tornilyo ng terminal ng konektor at ang mapagkukunan sa Barrel jack. Ang pinagmulan ng boltahe ay dapat na higit sa 6V upang gumana ang proyektong ito, dahil kinakailangan ng Arduino ng + 5V upang gumana. KUNG ang lahat ay gumagana nang maayos dapat mong makita ang halaga ng Boltahe sa kabuuan ng pagkarga at ang kasalukuyang sa pamamagitan nito na ipinakita sa unang linya ng LCD at ang kinakalkula na kuryente na ipinapakita sa pangalawang linya ng LCD tulad ng ipinakita sa ibaba.
Ang nakakatuwang bahagi ng pagbuo ng isang bagay ay nakasalalay sa pagsubok nito upang suriin kung gaano kalayo ito gagana nang maayos. Upang magawa iyon ay gumamit ako ng 12V mga tagapagpahiwatig ng sasakyan na bubs bilang pagkarga at ang RPS bilang mapagkukunan. Dahil ang RPS mismo ay maaaring masukat at ipakita ang halaga ng kasalukuyang at boltahe magiging madali para sa amin na i-cross check ang kawastuhan at pagganap ng aming circuit. At oo, ginamit ko rin ang aking RPS upang i-calibrate ang aking halaga ng multiplier upang malapit ako sa tumpak na halaga.
Ang kumpletong pagtatrabaho ay matatagpuan sa video na ibinigay sa pagtatapos ng pahinang ito. Inaasahan kong naintindihan mo ang circuit at programa at natutunan ang isang bagay na kapaki-pakinabang. Kung mayroon kang anumang problema sa pagkuha ng ito upang gumana i-post ito sa seksyon ng komento sa ibaba o sumulat sa aming mga forum para sa higit pang tulong na panteknikal.
Ang proyektong Wattmeter na nakabatay sa Arduino ay may maraming mga pag-upgrade na maaaring idagdag upang madagdagan ang pagganap sa pag-log ng auto data, paglalagay ng grap, pag-abiso sa boltahe o sa mga kasalukuyang sitwasyon atbp. Kaya't manatiling mausisa at ipaalam sa akin kung ano ang gagamitin mo para rito.