Sadržaj:

Modul za mjerenje snage DIY za Arduino: 9 koraka (sa slikama)
Modul za mjerenje snage DIY za Arduino: 9 koraka (sa slikama)

Video: Modul za mjerenje snage DIY za Arduino: 9 koraka (sa slikama)

Video: Modul za mjerenje snage DIY za Arduino: 9 koraka (sa slikama)
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Srpanj
Anonim
Modul za mjerenje snage DIY za Arduino
Modul za mjerenje snage DIY za Arduino
Modul za mjerenje snage DIY za Arduino
Modul za mjerenje snage DIY za Arduino
Modul za mjerenje snage DIY za Arduino
Modul za mjerenje snage DIY za Arduino

Pozdrav svima, nadam se da vam ide odlično! U ovom uputstvu ću vam pokazati kako sam napravio ovaj modul mjerača snage/ vatmetra za upotrebu s Arduino pločom. Ovaj mjerač snage može izračunati potrošnju energije istosmjernog opterećenja. Uz snagu, ovaj modul može nam dati i točna očitanja napona i struje. Lako može mjeriti niske napone (oko 2V) i male struje, čak do 50 mA s greškom ne većom od 20mA. Točnost ovisi o izboru komponenti na temelju vaših zahtjeva.

Pribor

  • IC LM358 dvostruki OP-AMP
  • 8 -polna IC baza
  • Shunt otpornik (8,6 miliOhma u mom slučaju)
  • Otpornici: 100K, 10K, 2.2K, 1K (1/2 vata)
  • Kondenzatori: 3 * 0,1uF keramički kondenzatori
  • Veroboard ili nulta tabla
  • Vijčani spojevi
  • Lemilica i lemljenje
  • Arduino Uno ili bilo koju drugu kompatibilnu ploču
  • OLED zaslon
  • Spajanje žica za žitne žice

Korak 1: Prikupljanje potrebnih komponenti

Prikupljanje potrebnih komponenti
Prikupljanje potrebnih komponenti

Ovaj projekt koristi vrlo jednostavne i lako dostupne komponente: oni uključuju otpornike, keramičke kondenzatore, operativno pojačalo i veroboard za izradu prototipova.

Izbor i vrijednost komponenti ovise o vrsti primjene i rasponu snage koju želite mjeriti.

Korak 2: Princip rada

Princip rada
Princip rada
Princip rada
Princip rada
Princip rada
Princip rada
Princip rada
Princip rada

Rad energetskog modula temelji se na dva koncepta teorije kruga i osnovne električne energije: Koncept razdjelnika napona za mjerenje ulaznog napona i Ohmov zakon za izračunavanje struje koja prolazi kroz krug. Koristimo odvojni otpornik za stvaranje vrlo malog pada napona na njemu. Ovaj pad napona je proporcionalan količini struje koja prolazi kroz šant. Ovaj mali napon kada se pojača operativnim pojačalom može se koristiti kao ulaz u mikrokontroler koji se može programirati da nam da trenutnu vrijednost. Operativno pojačalo koristi se kao neinvertirajuće pojačalo gdje je dobitak određen vrijednostima povratne sprege otpornik R2 i R1. Korištenje neinvertirajuće konfiguracije omogućuje nam da imamo zajedničku osnovu kao mjernu referencu. Za to se struja mjeri na donjoj strani kruga. Za svoju sam aplikaciju odabrao dobit od 46 korištenjem 100K i 2.2K otpornika kao povratne mreže. Mjerenje napona vrši se pomoću kruga razdjelnika napona koji dijeli ulazni napon proporcionalno korištenoj mreži otpornika.

Vrijednost struje iz OP-pojačala i vrijednost napona iz razdjelne mreže mogu se unijeti u dva analogna ulaza arduina tako da možemo izračunati potrošnju energije opterećenja.

Korak 3: Zbližavanje dijelova

Spajanje dijelova
Spajanje dijelova
Spajanje dijelova
Spajanje dijelova
Spajanje dijelova
Spajanje dijelova

Počnimo s izgradnjom našeg energetskog modula odlučivanjem o položaju vijčanih stezaljki za ulaznu i izlaznu vezu. Nakon označavanja odgovarajućih položaja, lemimo vijčane stezaljke i odvojni otpornik na mjestu.

Korak 4: Dodavanje dijelova za mrežu osjetnika napona

Dodavanje dijelova za mrežu osjetnika napona
Dodavanje dijelova za mrežu osjetnika napona
Dodavanje dijelova za mrežu osjetnika napona
Dodavanje dijelova za mrežu osjetnika napona
Dodavanje dijelova za mrežu osjetnika napona
Dodavanje dijelova za mrežu osjetnika napona

Za mjerenje ulaznog napona koristim mrežu razdjelnika napona od 10K i 1K. Dodao sam i kondenzator od 0,1 uF preko 1K otpornika kako bih ublažio napone. Mreža osjetnika napona lemljena je u blizini ulaznog priključka

Korak 5: Dodavanje dijelova za mrežu trenutnog smisla

Dodavanje dijelova za mrežu trenutnog smisla
Dodavanje dijelova za mrežu trenutnog smisla
Dodavanje dijelova za mrežu trenutnog smisla
Dodavanje dijelova za mrežu trenutnog smisla
Dodavanje dijelova za mrežu trenutnog smisla
Dodavanje dijelova za mrežu trenutnog smisla
Dodavanje dijelova za mrežu trenutnog smisla
Dodavanje dijelova za mrežu trenutnog smisla

Struja se mjeri izračunavanjem i pojačavanjem pada napona na šantu otpornika s unaprijed definiranim pojačanjem koje postavlja mreža otpornika. Koristi se način rada bez invertiranja pojačanja. Poželjno je da tragovi lemljenja budu mali kako bi se izbjegao neželjeni pad napona.

Korak 6: Dovršenje preostalih veza i dovršetak izrade

Dovršavanje preostalih veza i dovršetak izrade
Dovršavanje preostalih veza i dovršetak izrade
Dovršavanje preostalih veza i dovršetak izgradnje
Dovršavanje preostalih veza i dovršetak izgradnje
Dovršavanje preostalih veza i dovršetak izrade
Dovršavanje preostalih veza i dovršetak izrade

S povezivanjem i lemljenjem mreža osjetnika napona i struje, vrijeme je za lemljenje muških iglica zaglavlja i uspostavljanje potrebnih spojeva izlaza napajanja i signala. Modul će se napajati standardnim radnim naponom od 5 volti koji lako možemo dobiti s arduino ploče. Dva izlaza osjetnika napona bit će spojena na analogne ulaze arduina.

Korak 7: Povezivanje modula s Arduinom

Povezivanje modula s Arduinom
Povezivanje modula s Arduinom
Povezivanje modula s Arduinom
Povezivanje modula s Arduinom
Povezivanje modula s Arduinom
Povezivanje modula s Arduinom
Povezivanje modula s Arduinom
Povezivanje modula s Arduinom

Budući da je modul dovršen, konačno je vrijeme da ga povežete s Arduinom i pokrenete. Da bih vidio vrijednosti, koristio sam OLED zaslon koji je koristio I2C protokol za komunikaciju s arduinom. Parametri prikazani na ekranu su Voltage, Current i Power.

Korak 8: Kod projekta i kružni dijagram

Šifra projekta i dijagram kruga
Šifra projekta i dijagram kruga

U ovom sam koraku priložio dijagram kruga i kôd modula za napajanje (prethodno sam priložio.ino i.txt datoteku koja sadrži kôd, ali je zbog neke pogreške poslužitelja kôd bio nedostupan ili nečitljiv korisnicima, pa sam napisao cijeli koda u ovom koraku. Znam da to nije dobar način za dijeljenje koda:(). Slobodno izmijenite ovaj kôd u skladu sa svojim zahtjevima. Nadam se da vam je ovaj projekt bio od pomoći. Podijelite svoje povratne informacije u komentarima. Živjeli!

#uključi

#uključi

#uključi

#uključi

#define OLED_RESET 4 Adapruit_SSD1306 zaslon (OLED_RESET);

plovak val = 0;

plutajuća struja = 0;

plivajući napon = 0;

snaga plovka = 0;

void setup () {

pinMode (A0, INPUT);

pinMode (A1, INPUT);

display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // inicijalizirati sa I2C addr 0x3C (za 128x32) prikaz.display ();

odgoda (2000);

// Brisanje međuspremnika.

display.clearDisplay ();

display.setTextSize (1);

display.setCursor (0, 0);

display.setTextColor (BIJELO);

Serial.begin (9600); // Da biste vidjeli vrijednosti na serijskom monitoru

}

void loop () {{100} {101}

// uzimajući prosjek za stabilna očitanja

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

struja = struja + analogno čitanje (A0);

napon = napon + analogno čitanje (A1); }

struja = (struja/20); struja = struja * 0,0123 * 5,0; // kalibracijska vrijednost, koja se mijenja ovisno o korištenim komponentama

napon = (napon/20); napon = napon * 0,0508 * 5,0; // kalibracijska vrijednost, koja se mijenja ovisno o korištenim komponentama

snaga = napon*struja;

// ispis vrijednosti na serijskom monitoru

Serijski.ispis (napon);

Serial.print ("");

Serijski.ispis (trenutni);

Serial.print ("");

Serial.println (napajanje);

// ispis vrijednosti na OLED zaslonu

display.setCursor (0, 0);

display.print ("Napon:");

prikaz.tisak (napon);

display.println ("V");

display.setCursor (0, 10);

display.print ("Trenutni:");

display.print (trenutni);

display.println ("A");

display.setCursor (0, 20);

display.print ("Snaga:");

display.print (snaga);

display.println ("W");

display.display ();

kašnjenje (500); // učestalost osvježavanja određena kašnjenjem

display.clearDisplay ();

}

Preporučeni: