- Nepieciešamie materiāli
- Ķēdes shēma
- Mērvienība
- Aprēķina un displeja vienība
- Arduino programmēšana
- Kā mērīt ar lielāku precizitāti?
- Darbs un testēšana
Kā elektronikas inženieri mēs vienmēr esam atkarīgi no skaitītājiem / instrumentiem, lai mērītu un analizētu ķēdes darbību. Sākot ar vienkāršu multimetru līdz sarežģītiem jaudas kvalitātes analizatoriem vai DSO, visam ir savi unikālie lietojumi. Lielākā daļa šo skaitītāju ir viegli pieejami, un tos var iegādāties, pamatojoties uz mērāmajiem parametriem un to precizitāti. Bet dažreiz mēs varam nonākt situācijā, kad mums pašiem jāveido skaitītāji. Pieņemsim, ka jūs, piemēram, strādājat saules enerģijas projektā un vēlaties aprēķināt savas slodzes enerģijas patēriņu, šādos gadījumos mēs varam izveidot savu vatmetru, izmantojot vienkāršu mikrokontrolleru platformu, piemēram, Arduino.
Pašu skaitītāju veidošana ne tikai samazina testēšanas izmaksas, bet arī dod mums iespēju atvieglot testēšanas procesu. Tāpat kā vatmetru, kas izveidots, izmantojot Arduino, var viegli pielāgot, lai uzraudzītu rezultātus Serial monitorā un uzzīmētu diagrammu Serial ploterī vai pievienotu SD karti, lai automātiski reģistrētu sprieguma, strāvas un jaudas vērtības iepriekš noteiktos intervālos. Izklausās interesanti labi !? Tātad sāksim…
Nepieciešamie materiāli
- Arduino Nano
- LM358 Op-Amp
- 7805 Sprieguma regulators
- 16 * 2 LCD displejs
- 0,22 omu 2 vatu šunta rezistors
- 10 k trimmera katls
- 10k, 20k, 2.2k, 1k rezistori
- 0,1uF kondensatori
- Pārbaudes slodze
- Perfekts dēlis vai maizes dēlis
- Lodēšanas komplekts (pēc izvēles)
Ķēdes shēma
Pilna arduino vatmetra projekta shēma ir dota zemāk.
Lai vieglāk saprastu, arduino vatmetra ķēde ir sadalīta divās vienībās. Kontūras augšējā daļa ir mērvienība, un ķēdes apakšējā daļa ir skaitļošanas un displeja vienība. Cilvēkiem, kuriem šāda veida shēmas ir jaunas, sekoja etiķetēm. Piemērs + 5V ir etiķete, kas nozīmē, ka jāņem vērā visas tapas, ar kurām ir pievienota etiķete, jo tās ir savienotas kopā. Etiķetes parasti tiek izmantotas, lai shēma būtu glīta.
Ķēde ir paredzēta, lai ietilptu sistēmās, kas darbojas starp 0-24V un strāvas diapazonu 0-1A, paturot prātā Saules PV specifikāciju. Bet jūs varat viegli paplašināt diapazonu, kad esat sapratis ķēdes darbību. Ķēdes pamatprincips ir izmērīt spriegumu pāri slodzei un strāvu caur to, lai aprēķinātu enerģijas patēriņu. Visas izmērītās vērtības tiks parādītas 16 * 2 burtciparu LCD.
Tālāk sadalīsim ķēdi mazos segmentos, lai mēs varētu gūt skaidru priekšstatu par to, kā ķēde ir darbināta.
Mērvienība
Mērvienība sastāv no potenciālā dalītāja, kas palīdz mums izmērīt spriegumu, un tiek izmantots slēgtais rezistors ar neinvertējošu Op-amp, lai palīdzētu mums izmērīt strāvu caur ķēdi. Potenciālā dalītāja daļa no iepriekš minētās shēmas ir parādīta zemāk
Šeit ieejas spriegumu attēlo Vcc, kā iepriekš teicām, mēs izstrādājam ķēdi sprieguma diapazonam no 0V līdz 24V. Bet tāds mikrokontrolleris kā Arduino nevar izmērīt tik lielas sprieguma vērtības; tas var izmērīt tikai spriegumu no 0-5V. Tāpēc mums ir jāattēlo (jāpārvērš) sprieguma diapazons no 0-24V līdz 0-5V. To var viegli izdarīt, izmantojot potenciālā dalītāja ķēdi, kā parādīts zemāk. Rezistors 10k un 2.2k kopā veido potenciāla dalītāja ķēdi. Potenciālā dalītāja izejas spriegumu var aprēķināt, izmantojot šādas formulas. To pašu izmanto, lai izlemtu rezistoru vērtību. Ja jūs pārveidojat ķēdi, varat izmantot mūsu tiešsaistes kalkulatoru, lai aprēķinātu rezistora vērtību.
Vout = (Vin × R2) / (R1 + R2)
Kartēto 0-5V var iegūt no vidusdaļas, kas apzīmēta kā Spriegums. Pēc tam šo kartēto spriegumu vēlāk var ievadīt Arduino Analog tapā.
Tālāk mums jāmēra strāva caur LOAD. Tā kā mēs zinām, ka mikrokontrolleri var nolasīt tikai analogo spriegumu, tāpēc mums strāvas vērtība kaut kā jāpārvērš spriegumā. To var izdarīt, vienkārši pievienojot rezistoru (šunta rezistoru) ceļā, kas saskaņā ar Ohma likumu visā tajā samazinās sprieguma vērtību, kas ir proporcionāla caur to plūstošajai strāvai. Šī sprieguma krituma vērtība būs ļoti mazāka, tāpēc mēs izmantojam op-amp, lai to pastiprinātu. Tā paša ķēde ir parādīta zemāk
Šunta rezistora (SR1) vērtība ir 0,22 omi. Kā minēts iepriekš, mēs projektējam ķēdi 0-1A, tāpēc, pamatojoties uz Ohma likumu, mēs varam aprēķināt sprieguma kritumu šajā rezistorā, kas būs aptuveni 0,2 V, ja caur slodzi iet maksimums 1A strāva. Šis spriegums ir ļoti mazs, lai lasītu mikrokontrolleru. Mēs izmantojam Op-Amp režīmā Neinvertējošs pastiprinātājs, lai palielinātu spriegumu no 0,2 V līdz augstākam līmenim, lai Arduino varētu lasīt.
Op-Amp režīmā Non-Inverting ir parādīts iepriekš. Pastiprinātājs ir paredzēts, lai iegūtu pastiprinājumu 21, lai 0,2 * 21 = 4,2 V. Formulas, lai aprēķinātu Op-amp pastiprinājumu, ir norādītas zemāk, jūs varat arī izmantot šo tiešsaistes pastiprināšanas kalkulatoru, lai iegūtu rezistora vērtību, ja jūs pārveidojat ķēdi.
Gain = Vout / Vin = 1 + (Rf / Rin)
Šeit mūsu gadījumā Rf vērtība ir 20k, bet Rin vērtība ir 1k, kas dod mums milzu vērtību 21. Op-amp pastiprinātais spriegums tiek piešķirts RC filtram ar rezistoru 1k un kondensatoru 0,1uF līdz filtrē visus savienotos trokšņus. Visbeidzot, spriegums tiek padots uz Arduino analogo tapu.
Pēdējā daļa, kas palikusi mērvienībā, ir sprieguma regulatora daļa. Tā kā mēs piešķirsim mainīgu ieejas spriegumu, mums ir nepieciešams regulēts + 5 V spriegums, lai darbotos Arduino un Op-amp. Šo regulēto spriegumu nodrošinās sprieguma regulators 7805. Lai filtrētu troksni, izejā tiek pievienots kondensators.
Aprēķina un displeja vienība
Mērvienībā mēs esam izveidojuši ķēdi, lai sprieguma un strāvas parametrus pārvērstu 0-5V, ko var ievadīt Arduino Analog tapām. Tagad šajā ķēdes daļā mēs savienosim šos sprieguma signālus ar Arduino un arī Arduino saskarnē 16 × 2 burtciparu displeju, lai mēs varētu apskatīt rezultātus. Tā paša ķēde ir parādīta zemāk
Kā redzat, sprieguma tapa ir savienota ar analogo tapu A3 un pašreizējā tapa ir savienota ar analogo tapu A4. LCD tiek darbināts no + 5V no 7805 un ir savienots ar Arduino digitālajām tapām, lai darbotos 4 bitu režīmā. Mēs arī izmantojām potenciometru (10k), kas savienots ar Con pin, lai mainītu LCD kontrastu.
Arduino programmēšana
Tagad, kad mums ir laba izpratne par aparatūru, atveriet Arduino un sāciet programmēt. Koda mērķis ir nolasīt analogo spriegumu uz tapām A3 un A4, aprēķināt sprieguma, strāvas un jaudas vērtību un visbeidzot parādīt to LCD ekrānā. Pilnīga programma, lai izdarītu to pašu, ir dota lapas beigās, ko kā tādu var izmantot iepriekš apspriestajai aparatūrai. Tālāk kods tiek sadalīts mazos fragmentos un paskaidrots.
Kā visas programmas mēs sākam, nosakot tapas, kuras esam izmantojuši. Izejas projektā sprieguma un strāvas mērīšanai izmanto attiecīgi A3 un A4 tapas, bet digitālās tapas 3,4,8,9,10 un 11 izmanto LCD saskarnei ar Arduino
int Lasīt_spriegums = A3; int Lasīt_strāva = A4; const int rs = 3, en = 4, d4 = 8, d5 = 9, d6 = 10, d7 = 11; // Pieminiet LCD savienojuma tapas numuru LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
Mēs esam iekļāvuši arī galvenes failu, ko sauc par šķidro kristālu, lai saskarne būtu LCD ar Arduino. Pēc tam iestatīšanas funkcijā mēs inicializējam LCD displeju un parādām ievadtekstu kā “Arduino Wattmeter” un pagaidām divas sekundes, pirms to notīriet. Tālāk ir parādīts tā paša kods.
void setup () { lcd.begin (16, 2); // Inicializējiet 16 * 2 LCD lcd.print ("Arduino Wattmeter"); // Intro Message line 1 lcd.setCursor (0, 1); lcd.print ("- Circuitdigest"); // Intro Message line 2. aizkave (2000); lcd.clear (); }
Galvenās cilpas funkcijas iekšpusē mēs izmantojam analogās lasīšanas funkciju, lai nolasītu sprieguma vērtību no tapām A3 un A4. Kā mēs zinām Arduino ADC izvades vērtību no 0-1203, jo tai ir 10 bitu ADC. Pēc tam šī vērtība jāpārvērš par 0-5V, ko var izdarīt, reizinot ar (5/1023). Tad atkal aparatūrā mēs esam kartējuši faktisko sprieguma vērtību no 0-24V līdz 0-5V un pašreizējās formas faktisko vērtību 0-1A līdz 0-5V. Tāpēc tagad mums ir jāizmanto reizinātājs, lai šīs vērtības atgrieztu faktiskajā vērtībā. To var izdarīt, reizinot to ar reizinātāja vērtību. Reizinātāja vērtību var aprēķināt teorētiski, izmantojot aparatūras sadaļā sniegtās formulas, vai, ja jums ir zināma sprieguma un strāvas vērtību kopa, varat to praktiski aprēķināt.Es esmu ievērojis pēdējo variantu, jo tas mēdz būt precīzāks reāllaikā. Tātad šeit reizinātāju vērtība ir 6,46 un 0,239. Tādējādi kods izskatās šādi
float Voltage_Value = analogRead (nolasīt_spriegumu); pludiņš Current_Value = analogRead (Read_Current); Sprieguma_Vērtība = Sprieguma_Vērtība * (5,0 / 1023,0) * 6,46; Pašreizējā_Vērtība = Pašreizējā_Vērtība * (5,0 / 1023,0) * 0,239;
Kā mērīt ar lielāku precizitāti?
Iepriekš minētais faktiskā sprieguma un strāvas vērtības aprēķināšanas veids darbosies lieliski. Bet cieš no viena trūkuma, tas ir, saistība starp izmērīto ADC spriegumu un faktisko spriegumu nebūs lineāra, tāpēc viens reizinātājs nedos ļoti precīzus rezultātus, tas pats, kas piemērots arī strāvai.
Lai uzlabotu precizitāti, mēs varam uzzīmēt izmērīto ADC vērtību kopu ar faktiskajiem lāpstiņām, izmantojot zināmu vērtību kopu, un pēc tam izmantot šos datus, lai uzzīmētu grafiku un atvasinātu reizinātāja vienādojumu, izmantojot lineārās regresijas metodi. Jūs varat atsaukties uz Arduino dB mērītāju, kurā esmu izmantojis līdzīgu metodi.
Visbeidzot, kad mēs esam aprēķinājuši faktiskā sprieguma un faktiskās strāvas vērtību caur slodzi, mēs varam aprēķināt jaudu, izmantojot formulas (P = V * I). Pēc tam mēs redzam visas trīs vērtības LCD displejā, izmantojot zemāk esošo kodu.
lcd.setCursor (0, 0); lcd.print ("V ="); lcd.print (Voltage_Value); lcd.print (""); lcd.print ("I ="); lcd.print (Current_Value); pludiņš Power_Value = Voltage_Value * Current_Value; lcd.setCursor (0, 1); lcd.print ("Jauda ="); lcd.print (jaudas_vērtība);
Darbs un testēšana
Apmācības labad es esmu izmantojis perf plāksni, lai lodētu visus komponentus, kā parādīts ķēdē. Esmu izmantojis Phoenix skrūves spaili, lai pievienotu slodzi, un parasto līdzstrāvas mucas domkratu, lai savienotu savu enerģijas avotu. Arduino Nano dēlis un LCD ir uzstādīti uz sievietes Bergstik, lai vēlāk tos varētu atkārtoti izmantot.
Pēc aparatūras sagatavošanas augšupielādējiet Arduino kodu savā Nano dēlī. Pielāgojiet trimmera trauku, lai kontrolētu LCD kontrasta līmeni, līdz redzat skaidru ievadtekstu. Lai pārbaudītu dēli, savienojiet slodzi ar skrūves spaiļu savienotāju un avotu ar Barrel domkratu. Avota spriegumam jābūt lielākam par 6 V, lai šis projekts darbotos, jo Arduino darbībai bija nepieciešams + 5 V. Ja viss darbojas labi, jums vajadzētu redzēt sprieguma vērtību visā slodzē un strāvu caur to, kas parādīta LCD pirmajā rindā, un aprēķināto jaudu, kas parādīta LCD otrajā rindā, kā parādīts zemāk.
Kaut kā veidošanas jautrība ir tā pārbaude, lai pārbaudītu, cik tālu tas darbosies pareizi. Lai to izdarītu, es izmantoju 12 V automobiļu indikatoru burbuļus kā slodzi un RPS kā avotu. Tā kā pati RPS var izmērīt un parādīt strāvas un sprieguma vērtību, mums būs viegli pārbaudīt mūsu ķēdes precizitāti un veiktspēju. Jā, es arī izmantoju RPS, lai kalibrētu savu reizinātāja vērtību, lai es tuvotos precīzai vērtībai.
Pilnīgu darbu var atrast video, kas sniegts šīs lapas beigās. Ceru, ka sapratāt ķēdi un programmu un uzzinājāt kaut ko noderīgu. Ja jums ir kādas problēmas iegūt šo darbu, ievietojiet to zemāk esošajā komentāru sadaļā vai rakstiet mūsu forumos, lai iegūtu vairāk tehniskas palīdzības.
Šajā Arduino bāzētajā Wattmeter projektā ir daudz vairāk jauninājumu, kurus var pievienot, lai palielinātu veiktspēju līdz automātiskai datu reģistrēšanai, diagrammu uzzīmēšanai, paziņošanai par spriegumu vai pašreizējām situācijām utt. Tāpēc esiet ziņkārīgs un dariet man zināmu, kādam nolūkam jūs to izmantosit.