Turinys:

„Pasidaryk pats“galios matavimo modulis „Arduino“: 9 žingsniai (su nuotraukomis)
„Pasidaryk pats“galios matavimo modulis „Arduino“: 9 žingsniai (su nuotraukomis)

Video: „Pasidaryk pats“galios matavimo modulis „Arduino“: 9 žingsniai (su nuotraukomis)

Video: „Pasidaryk pats“galios matavimo modulis „Arduino“: 9 žingsniai (su nuotraukomis)
Video: Gaminu elektra 🤘Off-Grid elektrinė😂 1 dalis 2024, Lapkritis
Anonim
„Pasidaryk pats“galios matavimo modulis „Arduino“
„Pasidaryk pats“galios matavimo modulis „Arduino“
„Pasidaryk pats“galios matavimo modulis „Arduino“
„Pasidaryk pats“galios matavimo modulis „Arduino“
„Pasidaryk pats“galios matavimo modulis „Arduino“
„Pasidaryk pats“galios matavimo modulis „Arduino“

Sveiki visi, tikiuosi, kad jums puikiai sekasi! Šioje pamokoje aš jums parodysiu, kaip sukūriau šį galios matuoklio/ vatmetro modulį, skirtą naudoti su „Arduino“plokšte. Šis galios matuoklis gali apskaičiuoti suvartotą galią ir nuolatinę apkrovą. Kartu su galia šis modulis taip pat gali mums pateikti tikslius įtampos ir srovės rodmenis. Jis gali lengvai išmatuoti žemą įtampą (apie 2 V) ir mažą srovę, iki 50 mA, o paklaida ne didesnė kaip 20 mA. Tikslumas priklauso nuo jūsų pasirinktų komponentų pasirinkimo.

Prekės

  • IC LM358 dvigubas OP-AMP
  • 8 kontaktų IC pagrindas
  • Šuntavimo rezistorius (mano atveju 8,6 mlnOhms)
  • Rezistoriai: 100K, 10K, 2.2K, 1K (1/2 vatai)
  • Kondensatoriai: 3 * 0,1uF keraminiai kondensatoriai
  • Veroboard arba nulinė lenta
  • Sraigtiniai gnybtai
  • Lituoklis ir lituoklis
  • „Arduino Uno“ar bet kuri kita suderinama plokštė
  • OLED ekranas
  • Duonos laidų prijungimas

1 žingsnis: Surinkite reikiamus komponentus

Reikalingų komponentų surinkimas
Reikalingų komponentų surinkimas

Šiame projekte naudojami labai paprasti ir lengvai gaunami komponentai: į juos įeina rezistoriai, keraminiai kondensatoriai, operacinis stiprintuvas ir prototipų kūrimo plokštė.

Komponentų pasirinkimas ir vertė priklauso nuo taikymo tipo ir galios diapazono, kurį norite išmatuoti.

2 žingsnis: darbo principas

Darbo principas
Darbo principas
Darbo principas
Darbo principas
Darbo principas
Darbo principas
Darbo principas
Darbo principas

Maitinimo modulio veikimas grindžiamas dviem grandinės teorijos ir pagrindinės elektros koncepcijomis: įtampos daliklio koncepcija, skirta įėjimo įtampai matuoti, ir Omo dėsnis, skirtas apskaičiuoti srovę, tekančią per grandinę. Mes naudojame šunto rezistorių, kad sukeltume labai mažą įtampos kritimą. Šis įtampos kritimas yra proporcingas srovės, tekančios per šuntą, kiekiui. Ši maža įtampa, kai ją sustiprina operacinis stiprintuvas, gali būti naudojama kaip įvestis į mikrovaldiklį, kuris gali būti užprogramuotas taip, kad suteiktų mums dabartinę vertę. Operacinis stiprintuvas naudojamas kaip neinvertuojantis stiprintuvas, kai padidėjimą lemia grįžtamojo ryšio vertės rezistorius R2 ir R1. Naudojant neinversinę konfigūraciją, matavimo atskaitos taškas yra bendras. Šiuo tikslu srovė matuojama žemoje grandinės pusėje. Savo programai aš pasirinkau 46 padidėjimą, naudodamas 100K ir 2,2K rezistorių kaip grįžtamojo ryšio tinklą. Įtampos matavimas atliekamas naudojant įtampos daliklio grandinę, kuri padalija įėjimo įtampą proporcingai naudojamam rezistorių tinklui.

Tiek srovės vertė iš OP-Amp, tiek įtampos vertė iš daliklio tinklo gali būti tiekiama į du analoginius „arduino“įėjimus, kad galėtume apskaičiuoti apkrovos sunaudotą galią.

3 žingsnis: surinkite dalis

Sujungiame dalis
Sujungiame dalis
Sujungiame dalis
Sujungiame dalis
Sujungiame dalis
Sujungiame dalis

Pradėkime savo maitinimo modulio konstrukciją, nuspręsdami įėjimo ir išvesties jungčių varžtų gnybtų padėtį. Pažymėję atitinkamas pozicijas, lituojame varžtų gnybtus ir šunto rezistorių.

4 žingsnis: įtampos jutimo tinklo dalių pridėjimas

Įtampos jutimo tinklo dalių pridėjimas
Įtampos jutimo tinklo dalių pridėjimas
Įtampos jutimo tinklo dalių pridėjimas
Įtampos jutimo tinklo dalių pridėjimas
Įtampos jutimo tinklo dalių pridėjimas
Įtampos jutimo tinklo dalių pridėjimas

Įvesties įtampos jutimui naudoju 10K ir 1K įtampos skirstytuvo tinklą. Aš taip pat pridėjau 0,1 uF kondensatorių per 1K rezistorių, kad išlygintų įtampą. Įtampos jutimo tinklas yra lituojamas šalia įvesties gnybto

5 veiksmas: dabartinio jutimo tinklo dalių pridėjimas

„Current Sense“tinklo dalių pridėjimas
„Current Sense“tinklo dalių pridėjimas
„Current Sense“tinklo dalių pridėjimas
„Current Sense“tinklo dalių pridėjimas
„Current Sense“tinklo dalių pridėjimas
„Current Sense“tinklo dalių pridėjimas
„Current Sense“tinklo dalių pridėjimas
„Current Sense“tinklo dalių pridėjimas

Srovė matuojama apskaičiuojant ir stiprinant įtampos kritimą per šuntavimo rezistorių su iš anksto nustatytu stiprinimu, kurį nustato rezistorių tinklas. Naudojamas neinvertuojantis stiprinimo režimas. Pageidautina, kad lydmetalio pėdsakai būtų nedideli, kad būtų išvengta nepageidaujamo įtampos kritimo.

6 veiksmas: likusių jungčių užbaigimas ir statybos užbaigimas

Likusių jungčių užbaigimas ir statybos užbaigimas
Likusių jungčių užbaigimas ir statybos užbaigimas
Likusių jungčių užbaigimas ir statybos užbaigimas
Likusių jungčių užbaigimas ir statybos užbaigimas
Likusių jungčių užbaigimas ir statybos užbaigimas
Likusių jungčių užbaigimas ir statybos užbaigimas

Kai įtampos ir srovės jutimo tinklai yra prijungti ir lituojami, atėjo laikas lituoti antgalio kaiščius ir atlikti reikiamus maitinimo ir signalo išėjimų sujungimus. Modulis bus maitinamas standartine 5 voltų darbine įtampa, kurią galime lengvai gauti iš arduino plokštės. Du įtampos jutimo išėjimai bus prijungti prie analoginių arduino įėjimų.

7 žingsnis: modulio prijungimas prie „Arduino“

Modulio prijungimas prie „Arduino“
Modulio prijungimas prie „Arduino“
Modulio prijungimas prie „Arduino“
Modulio prijungimas prie „Arduino“
Modulio prijungimas prie „Arduino“
Modulio prijungimas prie „Arduino“
Modulio prijungimas prie „Arduino“
Modulio prijungimas prie „Arduino“

Kai modulis yra baigtas, dabar pagaliau atėjo laikas jį prijungti prie „Arduino“ir paleisti. Norėdami pamatyti vertes, aš naudoju OLED ekraną, kuris naudojo I2C protokolą bendravimui su arduino. Ekrane rodomi parametrai yra įtampa, srovė ir galia.

8 žingsnis: projekto kodas ir grandinės schema

Projekto kodas ir grandinės schema
Projekto kodas ir grandinės schema

Šiame žingsnyje pridėjau maitinimo modulio grandinės schemą ir kodą (anksčiau prijungiau.ino ir.txt failus, kuriuose yra kodas, tačiau dėl serverio klaidos vartotojams kodas buvo neprieinamas arba neįskaitomas, todėl parašiau visą kodą šiame žingsnyje. Žinau, kad tai nėra geras būdas bendrinti kodą:(). Nesivaržykite keisti šio kodo pagal savo reikalavimus. Tikiuosi, kad šis projektas jums buvo naudingas. Pasidalykite savo atsiliepimais komentaruose. Sveikiname!

#įtraukti

#įtraukti

#įtraukti

#įtraukti

#define OLED_RESET 4 „Adafruit_SSD1306“ekranas (OLED_RESET);

plūdė val = 0;

plūdės srovė = 0;

plūdės įtampa = 0;

plūdės galia = 0;

void setup () {

pinMode (A0, INPUT);

pinMode (A1, INPUT);

display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // inicijuoti naudojant I2C addr 0x3C (128x32) display.display ();

vėlavimas (2000 m.);

// Išvalykite buferį.

display.clearDisplay ();

display.setTextSize (1);

display.setCursor (0, 0);

display.setTextColor (BALTA);

Serial.begin (9600); // Norėdami pamatyti vertes serijiniame monitoriuje

}

void loop () {

// atsižvelgiant į stabilių rodmenų vidurkį

už (int i = 0; i <20; i ++) {

srovė = srovė + analoginis skaitymas (A0);

įtampa = įtampa + analogRead (A1); }

srovė = (srovė/20); srovė = srovė * 0,0123 * 5,0; // kalibravimo vertė, turi būti keičiama atsižvelgiant į naudojamus komponentus

įtampa = (įtampa/20); įtampa = įtampa * 0,0508 * 5,0; // kalibravimo vertė, turi būti keičiama atsižvelgiant į naudojamus komponentus

galia = įtampa*srovė;

// verčių spausdinimas nuosekliajame monitoriuje

Serijinis atspaudas (įtampa);

Serial.print ("");

Serial.print (dabartinis);

Serial.print ("");

Serial.println (galia);

// verčių spausdinimas OLED ekrane

display.setCursor (0, 0);

display.print ("Įtampa:");

ekranas.spaudas (įtampa);

display.println ("V");

display.setCursor (0, 10);

display.print ("Dabartinis:");

display.print (dabartinis);

display.println ("A");

display.setCursor (0, 20);

display.print („Maitinimas:“);

ekranas.spaudas (galia);

display.println ("W");

display.display ();

vėlavimas (500); // atnaujinimo dažnis, nustatytas vėlavimo

display.clearDisplay ();

}

Rekomenduojamas: