Sadržaj:

Modul za mjerenje snage "uradi sam" za Arduino: 9 koraka (sa slikama)
Modul za mjerenje snage "uradi sam" za Arduino: 9 koraka (sa slikama)

Video: Modul za mjerenje snage "uradi sam" za Arduino: 9 koraka (sa slikama)

Video: Modul za mjerenje snage
Video: Auto RELEJI 2024, Juli
Anonim
Modul za mjerenje snage "uradi sam" za Arduino
Modul za mjerenje snage "uradi sam" za Arduino
Modul za mjerenje snage "uradi sam" za Arduino
Modul za mjerenje snage "uradi sam" za Arduino
Modul za mjerenje snage "uradi sam" za Arduino
Modul za mjerenje snage "uradi sam" 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 sa Arduino pločom. Ovaj mjerač snage može izračunati potrošnju energije i istosmjernog opterećenja. Uz snagu, ovaj modul može nam dati i tačna očitanja napona i struje. Lako može mjeriti niske napone (oko 2 V) i male struje, do 50 mA s greškom ne većom od 20 mA. Tačnost zavisi od izbora komponenti na osnovu vaših zahteva.

Supplies

  • IC LM358 dvostruki OP-AMP
  • 8 -polna IC baza
  • Šant 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čane stezaljke
  • Lemilica i lemljenje
  • Arduino Uno ili bilo koju drugu kompatibilnu ploču
  • OLED ekran
  • Priključivanje žica za žitne žice

Korak 1: Prikupljanje potrebnih komponenti

Prikupljanje potrebnih komponenti
Prikupljanje potrebnih komponenti

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

Izbor i vrijednost komponenti ovise o vrsti aplikacije 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 modula za napajanje zasnovan je na dva koncepta teorije kola i osnovne električne energije: Koncept razdjelnika napona za mjerenje ulaznog napona i Ohmov zakon za izračunavanje struje koja prolazi kroz kolo. 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 se koristi 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 kola. Za svoju aplikaciju odabrao sam dobitak od 46 koristeći 100K i 2.2K otpornik kao povratnu mrežu. Mjerenje napona vrši se pomoću kruga razdjelnika napona koji dijeli ulazni napon proporcionalno korištenoj mreži otpornika.

I 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: Spajanje dijelova zajedno

Spajanje delova
Spajanje delova
Spajanje delova
Spajanje delova
Spajanje delova
Spajanje delova

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, zalemimo vijčane stezaljke i otpornik za odvajanje.

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 0,1 uF kondenzator preko 1K otpornika kako bi se izgladili naponi. Mreža s naponom je lemljena u blizini ulaznog terminala

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 izgradnje

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

S povezivanjem i lemljenjem mreža osjetnika napona i struje, vrijeme je za lemljenje muških iglica zaglavlja i uspostavljanje potrebnih veza 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 završen, konačno je vrijeme da ga povežete s Arduinom i pokrenete. Da bih vidio vrijednosti, koristio sam OLED ekran 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

Kod projekta i dijagram kola
Kod projekta i dijagram kola

U ovaj sam korak 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 greš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!

#include

#include

#include

#include

#define OLED_RESET 4 Adafruit_SSD1306 ekran (OLED_RESET);

plovak val = 0;

plovna struja = 0;

plivajući napon = 0;

snaga plovka = 0;

void setup () {

pinMode (A0, INPUT);

pinMode (A1, INPUT);

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

kašnjenje (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 u skladu s korištenim komponentama

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

snaga = napon*struja;

// ispis vrijednosti na serijskom monitoru

Serial.print (napon);

Serial.print ("");

Serial.print (trenutni);

Serial.print ("");

Serial.println (napajanje);

// ispisuje vrijednosti na OLED ekranu

display.setCursor (0, 0);

display.print ("Napon:");

display.print (napon);

display.println ("V");

display.setCursor (0, 10);

display.print ("Trenutno:");

display.print (trenutno);

display.println ("A");

display.setCursor (0, 20);

display.print ("Napajanje:");

display.print (napajanje);

display.println ("W");

display.display ();

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

display.clearDisplay ();

}

Preporučuje se: