Satura rādītājs:

DIY jaudas mērīšanas modulis Arduino: 9 soļi (ar attēliem)
DIY jaudas mērīšanas modulis Arduino: 9 soļi (ar attēliem)

Video: DIY jaudas mērīšanas modulis Arduino: 9 soļi (ar attēliem)

Video: DIY jaudas mērīšanas modulis Arduino: 9 soļi (ar attēliem)
Video: Control 10 output pins or relay using 10 push button switch with 1 Arduino input pin ANPB-V2 2024, Jūlijs
Anonim
DIY jaudas mērīšanas modulis Arduino
DIY jaudas mērīšanas modulis Arduino
DIY jaudas mērīšanas modulis Arduino
DIY jaudas mērīšanas modulis Arduino
DIY jaudas mērīšanas modulis Arduino
DIY jaudas mērīšanas modulis Arduino

Sveiki visiem, es ceru, ka jums iet lieliski! Šajā pamācībā es jums parādīšu, kā es izveidoju šo jaudas mērītāja/ vatmetra moduli lietošanai ar Arduino plāksni. Šis jaudas mērītājs var aprēķināt patērēto jaudu un līdzstrāvas slodzi. Kopā ar jaudu šis modulis var arī sniegt precīzus sprieguma un strāvas rādījumus. Tas var viegli izmērīt zemu spriegumu (aptuveni 2 V) un zemu strāvu, pat 50 mA, ar kļūdu ne vairāk kā 20 mA. Precizitāte ir atkarīga no komponentu izvēles, pamatojoties uz jūsu prasībām.

Piegādes

  • IC LM358 dubultā OP-AMP
  • 8 kontaktu IC bāze
  • Šunta rezistors (manā gadījumā 8,6 milioh)
  • Rezistori: 100K, 10K, 2.2K, 1K (1/2 vati)
  • Kondensatori: 3 * 0,1uF keramikas kondensatori
  • Veroboard vai nulles dēlis
  • Skrūvju spailes
  • Lodāmurs un lodēt
  • Arduino Uno vai jebkura cita saderīga tāfele
  • OLED displejs
  • Rīvmaizes vadu savienošana

1. darbība. Nepieciešamo komponentu apkopošana

Nepieciešamo komponentu apkopošana
Nepieciešamo komponentu apkopošana

Šajā projektā tiek izmantoti ļoti vienkārši un viegli iegūstami komponenti: tie ietver rezistorus, keramikas kondensatorus, darbības pastiprinātāju un prototipu veidošanas karti.

Komponentu izvēle un vērtība ir atkarīga no lietojuma veida un jaudas diapazona, kuru vēlaties izmērīt.

2. darbība. Darba princips

Darba princips
Darba princips
Darba princips
Darba princips
Darba princips
Darba princips
Darba princips
Darba princips

Jaudas moduļa darbības pamatā ir divi ķēdes teorijas un pamata elektroenerģijas jēdzieni: Sprieguma dalītāja koncepcija ieejas sprieguma mērīšanai un Oma likums, lai aprēķinātu ķēdē plūstošo strāvu. Mēs izmantojam šunta rezistoru, lai tam radītu ļoti nelielu sprieguma kritumu. Šis sprieguma kritums ir proporcionāls strāvas daudzumam, kas plūst caur šuntu. Šo mazo spriegumu, ja to pastiprina operatīvais pastiprinātājs, var izmantot kā ievadi mikrokontrollerī, kuru var ieprogrammēt, lai iegūtu mums pašreizējo vērtību. Darbības pastiprinātājs tiek izmantots kā neinvertējošs pastiprinātājs, kur pastiprinājumu nosaka atgriezeniskās saites vērtības rezistors R2 un R1. Izmantojot neinvertējošu konfigurāciju, mēs varam iegūt kopīgu pamatu kā mērījumu atskaiti. Šim nolūkam strāva tiek mērīta ķēdes zemākajā pusē. Savam lietojumam esmu izvēlējies peļņu 46, izmantojot atgriezeniskās saites tīklu 100K un 2,2K rezistoru. Sprieguma mērīšanu veic, izmantojot sprieguma dalītāja ķēdi, kas sadala ieejas spriegumu proporcionāli izmantotajam rezistoru tīklam.

Gan pašreizējo vērtību no OP-Amp, gan sprieguma vērtību no dalītāja tīkla var ievadīt divās arduino analogās ieejās, lai mēs varētu aprēķināt slodzes patērēto jaudu.

3. darbība: detaļu salikšana kopā

Apvienojot detaļas
Apvienojot detaļas
Apvienojot detaļas
Apvienojot detaļas
Apvienojot detaļas
Apvienojot detaļas

Sāksim sava barošanas moduļa konstrukciju, izlemjot ieejas un izejas savienojuma skrūvju spaiļu stāvokli. Pēc atbilstošo pozīciju atzīmēšanas mēs pielodējam skrūvju spailes un šunta rezistoru.

4. solis: daļu pievienošana sprieguma sensoru tīklam

Sprieguma sensoru tīkla detaļu pievienošana
Sprieguma sensoru tīkla detaļu pievienošana
Sprieguma sensoru tīkla detaļu pievienošana
Sprieguma sensoru tīkla detaļu pievienošana
Sprieguma sensoru tīkla detaļu pievienošana
Sprieguma sensoru tīkla detaļu pievienošana

Ieejas sprieguma noteikšanai es izmantoju sprieguma dalītāju tīklu 10K un 1K. Es arī pievienoju 0,1 uF kondensatoru pāri 1K rezistoram, lai izlīdzinātu spriegumus. Sprieguma sajūtas tīkls ir pielodēts pie ieejas termināļa

5. darbība: pašreizējo sajūtu tīkla daļu pievienošana

Daļu pievienošana pašreizējo sajūtu tīklam
Daļu pievienošana pašreizējo sajūtu tīklam
Daļu pievienošana pašreizējo sajūtu tīklam
Daļu pievienošana pašreizējo sajūtu tīklam
Daļu pievienošana pašreizējo sajūtu tīklam
Daļu pievienošana pašreizējo sajūtu tīklam
Daļu pievienošana pašreizējo sajūtu tīklam
Daļu pievienošana pašreizējo sajūtu tīklam

Strāva tiek mērīta, aprēķinot un pastiprinot sprieguma kritumu šunta rezistorā ar iepriekš noteiktu pastiprinājumu, ko nosaka rezistoru tīkls. Tiek izmantots neinvertējošs pastiprināšanas režīms. Vēlams, lai lodēšanas pēdas būtu nelielas, lai izvairītos no nevēlamas sprieguma krituma.

6. darbība: atlikušo savienojumu pabeigšana un būves pabeigšana

Atlikušo savienojumu pabeigšana un būves pabeigšana
Atlikušo savienojumu pabeigšana un būves pabeigšana
Atlikušo savienojumu pabeigšana un būves pabeigšana
Atlikušo savienojumu pabeigšana un būves pabeigšana
Atlikušo savienojumu pabeigšana un būves pabeigšana
Atlikušo savienojumu pabeigšana un būves pabeigšana

Kad ir pievienoti un pielodēti sprieguma un strāvas uztveršanas tīkli, ir pienācis laiks pielodēt savienotājvada galvenes tapas un izveidot nepieciešamos strāvas un signāla izejas savienojumus. Modulis tiks darbināts ar standarta 5 voltu darba spriegumu, ko mēs varam viegli iegūt no arduino plates. Abas sprieguma uztveres izejas tiks savienotas ar arduino analogo ieeju.

7. solis: moduļa savienošana ar Arduino

Moduļa savienošana ar Arduino
Moduļa savienošana ar Arduino
Moduļa savienošana ar Arduino
Moduļa savienošana ar Arduino
Moduļa savienošana ar Arduino
Moduļa savienošana ar Arduino
Moduļa savienošana ar Arduino
Moduļa savienošana ar Arduino

Kad modulis ir pabeigts, beidzot ir pienācis laiks to savienot ar Arduino un sākt to darbināt. Lai redzētu vērtības, esmu izmantojis OLED displeju, kas izmantoja I2C protokolu, lai sazinātos ar arduino. Ekrānā parādītie parametri ir spriegums, strāva un jauda.

8. darbība: projekta kods un shēma

Projekta kods un shēma
Projekta kods un shēma

Šajā solī esmu pievienojis strāvas moduļa shēmu un kodu (iepriekš es biju pievienojis.ino un.txt failu, kas satur kodu, bet kāda servera kļūda izraisīja to, ka lietotāji nevarēja piekļūt kodam vai to nevarēja nolasīt, tāpēc es uzrakstīju visu kodu šajā solī. Es zinu, ka tas nav labs veids, kā koplietot kodu:(). Jūtieties brīvi mainīt šo kodu atbilstoši savām prasībām. Es ceru, ka šis projekts jums bija noderīgs. Lūdzu, kopīgojiet savas atsauksmes komentāros.

#iekļaut

#iekļaut

#iekļaut

#iekļaut

#define OLED_RESET 4 Adafruit_SSD1306 displejs (OLED_RESET);

pludiņš val = 0;

pludiņa strāva = 0;

pludiņa spriegums = 0;

pludiņa jauda = 0;

void setup () {

pinMode (A0, INPUT);

pinMode (A1, INPUT);

display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // inicializēt ar I2C addr 0x3C (128x32) display.display ();

kavēšanās (2000);

// Notīriet buferi.

display.clearDisplay ();

display.setTextSize (1);

display.setCursor (0, 0);

display.setTextColor (BALTS);

Sērijas sākums (9600); // Lai redzētu vērtības seriālajā monitorā

}

void loop () {

// ņemot vidējos rādītājus stabiliem rādījumiem

par (int i = 0; i <20; i ++) {

strāva = strāva + analogRead (A0);

spriegums = spriegums + analogRead (A1); }

strāva = (strāva/20); strāva = strāva * 0,0123 * 5,0; // kalibrēšanas vērtība, jāmaina atkarībā no izmantotajām sastāvdaļām

spriegums = (spriegums/20); spriegums = spriegums * 0,0508 * 5,0; // kalibrēšanas vērtība, jāmaina atkarībā no izmantotajām sastāvdaļām

jauda = spriegums*strāva;

// vērtību drukāšana seriālajā monitorā

Sērijas nospiedums (spriegums);

Serial.print ("");

Sērijas nospiedums (pašreizējais);

Serial.print ("");

Serial.println (jauda);

// vērtību drukāšana OLED displejā

display.setCursor (0, 0);

display.print ("Spriegums:");

displejs.druka (spriegums);

display.println ("V");

display.setCursor (0, 10);

display.print ("Pašreizējais:");

display.print (pašreizējais);

display.println ("A");

display.setCursor (0, 20);

display.print ("Jauda:");

displejs.druka (jauda);

display.println ("W");

display.display ();

kavēšanās (500); // atsvaidzes intensitāti nosaka aizkave

display.clearDisplay ();

}

Ieteicams: